ace-overseer 0.20.0 → 0.20.2
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 +4 -4
- data/.ace-defaults/nav/protocols/wfi-sources/ace-overseer.yml +1 -1
- data/CHANGELOG.md +27 -0
- data/README.md +14 -14
- data/docs/usage.md +66 -41
- data/handbook/workflow-instructions/overseer.wf.md +13 -9
- data/handbook/workflow-instructions/roles/lab-coordinator.wf.md +99 -0
- data/handbook/workflow-instructions/roles/project-overseer.wf.md +103 -0
- data/handbook/workflow-instructions/roles/second-commander.wf.md +93 -0
- data/lib/ace/overseer/cli/commands/agents.rb +12 -7
- data/lib/ace/overseer/cli/commands/projects.rb +11 -7
- data/lib/ace/overseer/cli/commands/prompt.rb +44 -16
- data/lib/ace/overseer/cli/commands/prune.rb +51 -123
- data/lib/ace/overseer/cli/commands/review.rb +28 -8
- data/lib/ace/overseer/cli/commands/status.rb +33 -19
- data/lib/ace/overseer/cli/commands/stop.rb +18 -8
- data/lib/ace/overseer/cli/commands/work_on.rb +52 -16
- data/lib/ace/overseer/cli.rb +6 -9
- data/lib/ace/overseer/molecules/launch_request.rb +216 -0
- data/lib/ace/overseer/molecules/original_launch_child.rb +165 -0
- data/lib/ace/overseer/molecules/proposal_tick.rb +37 -9
- data/lib/ace/overseer/molecules/protected_selection.rb +46 -0
- data/lib/ace/overseer/molecules/window_opener.rb +9 -2
- data/lib/ace/overseer/organisms/launch_recovery.rb +65 -0
- data/lib/ace/overseer/organisms/protected_prune.rb +116 -0
- data/lib/ace/overseer/organisms/protected_review.rb +167 -0
- data/lib/ace/overseer/organisms/protected_status.rb +157 -0
- data/lib/ace/overseer/organisms/protected_steering.rb +78 -0
- data/lib/ace/overseer/organisms/protected_work_on.rb +102 -0
- data/lib/ace/overseer/organisms/work_on_orchestrator.rb +4 -5
- data/lib/ace/overseer/version.rb +1 -1
- data/lib/ace/overseer.rb +1 -2
- metadata +50 -13
- data/lib/ace/overseer/cli/commands/prepare.rb +0 -38
- data/lib/ace/overseer/molecules/lab_client.rb +0 -56
- data/lib/ace/overseer/molecules/lab_prune_safety_checker.rb +0 -69
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 6e3a4a8238f2c6d3918f0969096daf1487799948a6f9f9699fda45ebc3c601e2
|
|
4
|
+
data.tar.gz: e68abeacd2ac6b7f17366e420146c3906c999be87c8bf1eef66fde2afc026c64
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: dfb6ec252b2b70ea209115f2e4ea9dbae5c30e78b4c399daeb23e1a5977f87d312830112a11055d2b2121a776e140dbc57d7a39a49773dc5a6c1faf63293e8bc
|
|
7
|
+
data.tar.gz: '01385d38011ba32f632622f18931bcbfff19639cbe03c25f70655888b9e6e5041576622bbf73d94be252f21c468742207b8ae780e7345b5ec17a1969a0e08820'
|
data/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,33 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.20.2] - 2026-10-10
|
|
11
|
+
|
|
12
|
+
### Fixed
|
|
13
|
+
|
|
14
|
+
- Require the published producer and consumer patch versions containing the protected context and managed-attempt APIs; exclude incompatible prior dependency graphs.
|
|
15
|
+
|
|
16
|
+
## [0.20.1] - 2026-10-08
|
|
17
|
+
|
|
18
|
+
### Changed
|
|
19
|
+
|
|
20
|
+
- Require the coordinated Assign, Herdr, Lab and Review producer versions for ordinary CLI worker launch and current protected delivery contracts.
|
|
21
|
+
|
|
22
|
+
- Repair protected work-on composition fixtures to retain the originally provisioned workspace lifecycle resource, exercise the real worker reader, and return the simulated fork before post-readiness steering without changing product admission.
|
|
23
|
+
|
|
24
|
+
- Route protected delivery through original worker merge request, canonical status and exact result consumption while preserving ordinary delivery and unresolved protected PR policy.
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
### Added
|
|
28
|
+
|
|
29
|
+
- Consume protected prune preview through the fixed service receiver, persist its complete result for explicitly authorized apply, and query canonical service status without repeating cleanup.
|
|
30
|
+
|
|
31
|
+
- Package canonical project-overseer, Lab coordinator and second-commander role workflows with scoped authority, responsive delegation and the existing confirmed-delivery decision policy.
|
|
32
|
+
|
|
33
|
+
- Execute protected candidate review through original launcher delegation, immutable Git snapshot, the maintained review engine and canonical receipt acceptance; expose explicit status/cancel modes without labd forwarding or automatic replay.
|
|
34
|
+
|
|
35
|
+
- Discover protected project assignments through the actual authority inventory and public topology, preserving pinned pages, restart metadata and partial visibility without a local-journal fallback or proposal effects during status reads.
|
|
36
|
+
|
|
10
37
|
## [0.20.0] - 2026-10-05
|
|
11
38
|
|
|
12
39
|
### Added
|
data/README.md
CHANGED
|
@@ -20,9 +20,9 @@
|
|
|
20
20
|
|
|
21
21
|
Starting task work means creating a worktree, opening a terminal window, and preparing an assignment - three manual steps before you even begin coding. ace-overseer collapses that into a single command, tracks what is running where, and cleans up finished worktrees so nothing lingers. You can jump straight to a focused worktree any time with a single invocation.
|
|
22
22
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
23
|
+
Explicit `--project` selects provisioned protected Assign execution. Omitting it
|
|
24
|
+
preserves ordinary local worktree/assignment mode. Runtime selects a terminal
|
|
25
|
+
backend; it cannot select credentials or execution authority.
|
|
26
26
|
|
|
27
27
|
## How It Works
|
|
28
28
|
|
|
@@ -46,21 +46,21 @@ ace-overseer work-on --task 8q4 --preset work-on-task
|
|
|
46
46
|
ace-overseer status --watch
|
|
47
47
|
```
|
|
48
48
|
|
|
49
|
-
**
|
|
50
|
-
|
|
49
|
+
**Start protected work** - prepare one reviewed leaf under the explicit project,
|
|
50
|
+
retain exact inputs, and keep its original foreground launcher:
|
|
51
51
|
|
|
52
52
|
```bash
|
|
53
|
-
ace-overseer
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
ace-overseer work-on --runtime lab --work W142 --agent builder-codex
|
|
57
|
-
ace-overseer status --runtime lab --project nervus
|
|
53
|
+
ace-overseer work-on --task TASK --project ace --agent builder --runtime herdr
|
|
54
|
+
ace-overseer status --project ace --agent builder --format json
|
|
55
|
+
ace-overseer work-on --recover-request .ace-local/overseer/launch-requests/INVOCATION.json
|
|
58
56
|
```
|
|
59
57
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
58
|
+
The start command prints and flushes retained request, definition and bundle
|
|
59
|
+
identity even under `--quiet`. It observes the same original child through
|
|
60
|
+
uncertainty; use independent status/steering invocations while that foreground
|
|
61
|
+
owner remains alive. Recovery is read-only and never rebuilds inputs or relaunches.
|
|
62
|
+
Domain installation supplies credentials and fixed entries; ACE's existing
|
|
63
|
+
Assign authority owns admission, execution evidence and progress.
|
|
64
64
|
|
|
65
65
|
**Clean up finished work** - [`ace-overseer prune`](docs/usage.md#ace-overseer-prune) removes completed worktrees safely. It checks three conditions before removing: assignment completed, task marked done, and git working tree clean. Use `--dry-run` to preview what would be pruned, `--force` for worktrees that fail safety checks, or `--assignment` to prune a single stale assignment.
|
|
66
66
|
|
data/docs/usage.md
CHANGED
|
@@ -16,29 +16,43 @@ ace-docs:
|
|
|
16
16
|
- `ace-overseer prune`
|
|
17
17
|
- `ace-overseer projects`
|
|
18
18
|
- `ace-overseer agents`
|
|
19
|
-
- `ace-overseer prepare`
|
|
20
19
|
- `ace-overseer prompt`
|
|
21
20
|
- `ace-overseer review`
|
|
22
21
|
- `ace-overseer stop`
|
|
23
22
|
|
|
24
23
|
## `ace-overseer work-on`
|
|
25
24
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
- `--
|
|
33
|
-
- `--
|
|
34
|
-
- `--
|
|
35
|
-
- `--
|
|
36
|
-
- `--
|
|
37
|
-
- `--
|
|
38
|
-
- `--
|
|
39
|
-
- `--
|
|
40
|
-
|
|
41
|
-
|
|
25
|
+
Without `--project`, create/reuse local worktrees and prepare assignments.
|
|
26
|
+
With `--project`, prepare exactly one reviewed leaf and retain its original
|
|
27
|
+
foreground protected launcher; no local fallback occurs on protected refusal.
|
|
28
|
+
|
|
29
|
+
- `--task`, `-t`: local repeatable/comma-separated task refs; protected mode requires one leaf.
|
|
30
|
+
- `--preset`, `-p`: local assignment preset; forbidden in protected mode.
|
|
31
|
+
- `--runtime`: terminal backend `auto`, `tmux` or `herdr`; overrides existing config. Protected tmux refuses before allocation.
|
|
32
|
+
- `--project`: explicit protected project ID.
|
|
33
|
+
- `--agent`: exact visible protected mapping ID, requiring project. Automatic selection is ordered and advances only after attributable readonly preflight denial.
|
|
34
|
+
- `--mutation`: stable invocation ID; otherwise generated once and printed before effects.
|
|
35
|
+
- `--base-head`: optional explicit reviewed code HEAD; must match the captured source HEAD, which is rechecked after preparation and before fork.
|
|
36
|
+
- `--dependency-report`: repeatable `task:assignment:step` identities for selected dependency reports; omission is an explicit empty selection.
|
|
37
|
+
- `--recover-request FILE`: readonly original canonical attribution from retained inputs; rejects all launch/mode overrides.
|
|
38
|
+
- `--quiet`, `-q`: suppress nonessential output; retained input identity and original child observation remain visible.
|
|
39
|
+
- `--debug`, `-d`, `--help`, `-h`: diagnostics/help.
|
|
40
|
+
|
|
41
|
+
Fresh protected start exclusively publishes private request JSON, derived exact
|
|
42
|
+
definition sidecar and original prepared Git bundle, then prints their paths and
|
|
43
|
+
hashes before any child. Missing/corrupt input or changed code HEAD refuses.
|
|
44
|
+
The living coordinator retains and observes the same original child through
|
|
45
|
+
readiness/uncertainty without a lifetime timeout, replacement or cancellation.
|
|
46
|
+
The fixed launch driver uses one 30-second phase budget; each protocol call
|
|
47
|
+
receives only the remaining time. The parent separately retains its earlier
|
|
48
|
+
30-second total readiness deadline, including CLI input reads and canonical
|
|
49
|
+
ready verification; neither deadline refreshes. Late readiness preserves the
|
|
50
|
+
same original child as uncertain, without a retry or replacement.
|
|
51
|
+
|
|
52
|
+
Use independent status/steering while it remains foreground. Reap is local
|
|
53
|
+
observation, never canonical terminal/release or physical cleanup permission.
|
|
54
|
+
Recovery reports absent/mismatched local inputs separately from original canonical
|
|
55
|
+
reservation attribution, without upload, reconstruction or retry.
|
|
42
56
|
|
|
43
57
|
## `ace-overseer status`
|
|
44
58
|
|
|
@@ -50,8 +64,8 @@ Options:
|
|
|
50
64
|
|
|
51
65
|
- `--format`: output format (`table`, `json`)
|
|
52
66
|
- `--watch`, `-w`: auto-refresh dashboard
|
|
53
|
-
- `--runtime`:
|
|
54
|
-
- `--project`:
|
|
67
|
+
- `--runtime`: local backend selection; protected inventory is runtime-independent
|
|
68
|
+
- `--project`: select protected canonical assignment inventory for this explicit project
|
|
55
69
|
- `--quiet`, `-q`: suppress non-essential output
|
|
56
70
|
- `--debug`, `-d`: show debug output
|
|
57
71
|
- `--help`, `-h`: show help
|
|
@@ -73,7 +87,7 @@ Options:
|
|
|
73
87
|
- `--yes`, `-y`: skip interactive confirmation
|
|
74
88
|
- `--dry-run`: run the same proof classification as apply, changing no worktrees, refs, assignment state or metadata (a dry-run receipt is not reusable authorization)
|
|
75
89
|
- `--preservation FILE`: YAML manifest (`version: 1`, `candidates:`) declaring cross-repository destinations for migrated work; a claim to verify, never proof by itself
|
|
76
|
-
-
|
|
90
|
+
- Local prune uses the configured runtime; protected physical cleanup uses its canonical cleanup owner.
|
|
77
91
|
- `--quiet`, `-q`: suppress progress output; blocked/failed results still print and signal through the exit code
|
|
78
92
|
- `--debug`, `-d`: show debug output
|
|
79
93
|
- `--help`, `-h`: show help
|
|
@@ -139,32 +153,27 @@ YAML
|
|
|
139
153
|
ace-overseer prune task.230 --preservation .ace-local/prune/destinations.yml --dry-run
|
|
140
154
|
```
|
|
141
155
|
|
|
142
|
-
##
|
|
143
|
-
|
|
144
|
-
Lab commands are available only where `/usr/local/bin/lab` is installed. ACE
|
|
145
|
-
does not read Lab credentials and does not call Podman or Herdr directly.
|
|
146
|
-
|
|
147
|
-
- `ace-overseer projects`: list registered Lab projects.
|
|
148
|
-
- `ace-overseer agents`: list registered Lab agents and concurrency limits.
|
|
149
|
-
- `ace-overseer prepare --runtime lab --project PROJECT --source KIND:ID --work WORK --planner AGENT --title TITLE`: create a reviewed Work and its isolated worktree.
|
|
150
|
-
- `ace-overseer work-on --runtime lab --work WORK --agent AGENT`: reserve the agent, create or reuse its Herdr workspace, and dispatch it.
|
|
151
|
-
- `ace-overseer status --runtime lab [--project PROJECT] [--format table|json]`: show Lab Work state. Failed proposal ticks defer resolution and report a diagnostic on stderr while status remains available. Object JSON also includes `proposal_resolution.status: "deferred"`; legacy array JSON keeps its schema and uses the stderr diagnostic. Continuous status lives in each project Herdr session, so `--watch` is intentionally rejected for Lab.
|
|
152
|
-
- `ace-overseer prompt --work WORK --file PATH`: forward prompt text from a file to the Work pane. Piped stdin is also supported; prompt text is never passed as a process argument.
|
|
153
|
-
- `ace-overseer review --work WORK --pr NUMBER`: prepare an exact-head admin review checkout and pane.
|
|
154
|
-
- `ace-overseer stop --work WORK`: stop the assigned process without destroying Work state.
|
|
155
|
-
- `ace-overseer prune WORK... --runtime lab --dry-run`: classify each Work -- documented terminal state, no in-flight work, and preservation data (`repo`/`head`/`branch`) provable in the hosted repository. Apply with `--yes` re-verifies state immediately before delegating each destruction to `lab work destroy WORK --confirm`; blocked Works are never destroyed and the run exits nonzero. The raw Lab CLI cannot make the state check and the destruction atomic, so this adapter reports the path unsupported and preserves the Work; only a Lab surface with an atomic guarded destroy delegates.
|
|
156
|
+
## Protected execution and review
|
|
156
157
|
|
|
157
|
-
|
|
158
|
+
The existing Assign authority and installed mapping grant admit execution. Public
|
|
159
|
+
topology supplies visible IDs only. Runtime names and charter selection cannot
|
|
160
|
+
change OS credentials, grants or reviewer identity.
|
|
158
161
|
|
|
159
162
|
```bash
|
|
160
|
-
ace-overseer
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
ace-overseer work-on --runtime lab --work W321 --agent builder-codex
|
|
164
|
-
ace-overseer prompt --work W321 --file .ace-local/prompts/W321.md
|
|
165
|
-
ace-overseer status --runtime lab --project nervus --format json
|
|
163
|
+
ace-overseer work-on --task TASK --project ace --agent builder --runtime herdr
|
|
164
|
+
ace-overseer status --project ace --agent builder --format json
|
|
165
|
+
ace-overseer work-on --recover-request .ace-local/overseer/launch-requests/INVOCATION.json
|
|
166
166
|
```
|
|
167
167
|
|
|
168
|
+
Retain the printed input paths/hashes and original mapping/invocation. Missing
|
|
169
|
+
readiness, lost output, child exit or pane state never authorize replacement or
|
|
170
|
+
physical cleanup. Recovery is strictly read-only. Protected physical cleanup
|
|
171
|
+
requires its designated preservation/no-writer owner.
|
|
172
|
+
|
|
173
|
+
- `ace-overseer review --project PROJECT --agent AGENT --assignment A --attempt T --head HEAD --candidate-generation N --expected-generation G --mutation REQUEST --accept-mutation ACCEPT`: request independent review of the exact canonical candidate and submit its executed receipt. Run under the installed reviewer principal. `accepted` means the authority accepted that receipt; `uncertain` requires explicit status inspection.
|
|
174
|
+
- `ace-overseer review --status --project PROJECT --agent AGENT --assignment A --attempt T --mutation REQUEST`: inspect the original request without rerunning review or uploading anything.
|
|
175
|
+
- `ace-overseer review --cancel --project PROJECT --agent AGENT --assignment A --attempt T --head HEAD --candidate-generation N --review-event EVENT --expected-generation G --mutation CANCEL`: revoke the exact reservation using its status-provided event. Cancellation does not terminate the old reviewer. After cancellation, start a new review explicitly with new mutation IDs and the observed generation.
|
|
176
|
+
|
|
168
177
|
## Public Verification Paths
|
|
169
178
|
|
|
170
179
|
Use these user-visible checks when validating behavior end-to-end:
|
|
@@ -190,3 +199,19 @@ Use these user-visible checks when validating behavior end-to-end:
|
|
|
190
199
|
5. `ace-overseer prune --dry-run` to confirm no remaining safe candidates
|
|
191
200
|
|
|
192
201
|
Assignment JSON includes `recovery`: current liveness, recovery decision/reason, last verified observation, exact attempt identities, checkpoints and unresolved effect/inbox references. Unreadable evidence is explicitly unknown; dashboard rows needing reconciliation use a question mark instead of a success indicator. An older verified observation remains audit history and does not make a current unknown observation live.
|
|
202
|
+
|
|
203
|
+
## Exact protected steering (reviewed target interface)
|
|
204
|
+
|
|
205
|
+
`ace-overseer prompt --project ace --agent builder --assignment A --attempt T --mutation steer-001 --expected-generation 12 --file instruction.txt`
|
|
206
|
+
|
|
207
|
+
Use exactly one explicit `--file PATH` or `--stdin` input selection. Prompt text remains bounded UTF-8 (16,384 bytes), preserved exactly and omitted from operational output. Redirecting stdin alone does not select input.
|
|
208
|
+
|
|
209
|
+
`ace-overseer prompt --status --project ace --agent builder --assignment A --attempt T --mutation steer-001`
|
|
210
|
+
|
|
211
|
+
Status rejects both input selectors and expected generation before reading input; it uses the original prompt mutation and never resends. An explicit identical replay retains the original generation and text; changed input refuses.
|
|
212
|
+
|
|
213
|
+
`ace-overseer stop --project ace --agent builder --assignment A --attempt T --mutation stop-001 --expected-generation 14`
|
|
214
|
+
|
|
215
|
+
Exact project/mapping/assignment/attempt selection is mandatory. Immutable stop replay does not refresh settlement. Canonical terminal plus reservation release remains separate from local child exit. Legacy Lab Work forwarding and prepare/prune delegation are removed.
|
|
216
|
+
|
|
217
|
+
Public topology: `ace-overseer projects` and `ace-overseer agents --project PROJECT` emit the maintained classified topology envelope for the verified caller. Visibility grants no execution authority. Local prune uses the configured runtime and existing preservation/no-writer owner; it accepts no protected cleanup or legacy runtime selector.
|
|
@@ -36,7 +36,9 @@ ace-overseer work-on --task <task-ref>
|
|
|
36
36
|
- Repeatable/comma-separated refs fan out into the same batch: `ace-overseer work-on --task 230 --task 231,232`
|
|
37
37
|
- Optional preset: `ace-overseer work-on --task <task-ref> --preset <preset-name>`
|
|
38
38
|
- After launch, switch to the tmux window and run `/ace-assign-drive`.
|
|
39
|
-
-
|
|
39
|
+
- Protected reviewed leaf: `ace-overseer work-on --task TASK --project PROJECT --agent MAPPING --runtime herdr`.
|
|
40
|
+
- Retain the mandatory printed request/definition/bundle identity even under quiet mode. The original foreground owner remains alive through uncertainty; use independent status/steering invocations, never replace it on a missing reply.
|
|
41
|
+
- Readonly recovery: `ace-overseer work-on --recover-request FILE`; no reconstruction, upload or launch.
|
|
40
42
|
|
|
41
43
|
Never improvise worktree provisioning by hand when `work-on` exists; ad-hoc
|
|
42
44
|
worktrees bypass the assignment lifecycle that `status` and `prune` rely on.
|
|
@@ -48,8 +50,10 @@ ace-overseer status # table dashboard
|
|
|
48
50
|
ace-overseer status --format json # machine-readable snapshot
|
|
49
51
|
```
|
|
50
52
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
+
Protected canonical snapshot: `ace-overseer status --project PROJECT --agent MAPPING --format json` (no `--watch`).
|
|
54
|
+
|
|
55
|
+
Exact original steering: `ace-overseer prompt --project PROJECT --agent MAPPING --assignment A --attempt T --mutation ID --expected-generation N --file FILE` (or explicit --stdin). Prompt status uses the same tuple/mutation with --status and rejects input selectors/generation before reads. Stop uses the same exact tuple with its own stable mutation/generation. Never infer consumption from submitted; immutable explicit replay never refreshes generation or resends automatically. Canonical terminal plus reservation release is required separately from local child exit. Public projects/agents use maintained topology; no lab/labd forwarding or Work-ID prepare/prune path remains.
|
|
56
|
+
|
|
53
57
|
|
|
54
58
|
#### Status truth (non-negotiable executed check)
|
|
55
59
|
|
|
@@ -78,7 +82,7 @@ ace-overseer prune --yes
|
|
|
78
82
|
```
|
|
79
83
|
|
|
80
84
|
- Targeted: `ace-overseer prune <task-ref|folder>...` or `ace-overseer prune --assignment <assignment-id>`
|
|
81
|
-
-
|
|
85
|
+
- Protected physical cleanup belongs to its designated canonical cleanup owner. Local prune, readiness, pane closure and child reap never substitute for its preservation/no-writer proof.
|
|
82
86
|
|
|
83
87
|
#### Prune safety (non-negotiable executed check)
|
|
84
88
|
|
|
@@ -130,9 +134,9 @@ candidate:
|
|
|
130
134
|
ace-overseer status --format json
|
|
131
135
|
```
|
|
132
136
|
|
|
133
|
-
For assignment-backed candidates also check `ace-assign status`; for
|
|
134
|
-
|
|
135
|
-
assignment, an active or uncertain attempt,
|
|
137
|
+
For assignment-backed candidates also check `ace-assign status`; for protected
|
|
138
|
+
work check `ace-overseer status --project PROJECT --agent MAPPING`. A running
|
|
139
|
+
assignment, an active or uncertain attempt, unreleased protected work, or any
|
|
136
140
|
unaccounted writer blocks the prune. Missing or unreadable lifecycle
|
|
137
141
|
state counts as an active writer -- preserve. `ace-overseer prune`
|
|
138
142
|
enforces this itself: apply holds a durable exclusion shared with every
|
|
@@ -153,12 +157,12 @@ candidate:
|
|
|
153
157
|
|
|
154
158
|
| Contract | Claim | Executed proof |
|
|
155
159
|
|--------------|-------|----------------|
|
|
156
|
-
| Prune safety | "The work is preserved and nothing is actively writing" | `git merge-base --is-ancestor <work-head> <base>` (rc=0), or a verified declared destination (--preservation) with tree/artifact or exact content-transition equivalence; plus the executed no-writer reconciliation (overseer/assignment
|
|
160
|
+
| Prune safety | "The work is preserved and nothing is actively writing" | `git merge-base --is-ancestor <work-head> <base>` (rc=0), or a verified declared destination (--preservation) with tree/artifact or exact content-transition equivalence; plus the executed no-writer reconciliation (overseer/assignment canonical status, terminal attempts, durable prune/start exclusion) |
|
|
157
161
|
| Status truth | "The task is blocked on the owner" | An executable non-secret check run in this session; stale tasks closed/corrected in the same change |
|
|
158
162
|
|
|
159
163
|
## Success Criteria
|
|
160
164
|
|
|
161
|
-
- Work starts only through `ace-overseer work-on` (
|
|
165
|
+
- Work starts only through `ace-overseer work-on` (with explicit project for protected work), never through ad-hoc manual worktree provisioning.
|
|
162
166
|
- Every status review re-verified pending owner-blocked tasks with an executed check and corrected stale state in the same change.
|
|
163
167
|
- Every pruned worktree/branch had an executed preservation proof (ancestor containment, or a verified destination with tree/artifact or exact content-transition equivalence) and an executed no-active-writer check; candidates without complete proof were reported as blocked, not removed; `--force` and `--yes` never bypassed a safety block.
|
|
164
168
|
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: lab-coordinator
|
|
3
|
+
description: Coordinate cross-project dependencies and scoped services without taking ownership of project execution evidence.
|
|
4
|
+
doc-type: workflow
|
|
5
|
+
title: Coordinate Lab Capabilities
|
|
6
|
+
purpose: Canonical lab-coordinator role charter for scoped ACE orchestration.
|
|
7
|
+
ace-docs:
|
|
8
|
+
last-updated: '2026-10-07'
|
|
9
|
+
last-checked: '2026-10-07'
|
|
10
|
+
---
|
|
11
|
+
# Coordinate Lab Capabilities
|
|
12
|
+
|
|
13
|
+
## Goal
|
|
14
|
+
|
|
15
|
+
Coordinate cross-project dependencies and scoped services without taking ownership of project execution evidence.
|
|
16
|
+
|
|
17
|
+
## Prerequisites
|
|
18
|
+
|
|
19
|
+
Use the current reviewed task scope, actual provisioned credentials and installed
|
|
20
|
+
public interfaces. Selecting this charter changes instructions only: it does not
|
|
21
|
+
change OS credentials, project grants, reviewer identity or authority permissions.
|
|
22
|
+
Missing capability must remain a visible blocker; never fall back to lab/labd,
|
|
23
|
+
impersonation, detached brokers or direct authority-journal writes.
|
|
24
|
+
|
|
25
|
+
## Project Context Loading
|
|
26
|
+
|
|
27
|
+
Read the selected project's task/dependency records, current canonical Assign
|
|
28
|
+
state, applicable scoped service grants, and existing HITL proposal history.
|
|
29
|
+
Use `ace-task show TASK` and the installed public status/history interfaces for
|
|
30
|
+
the actual selected project. Do not treat remembered status as current evidence.
|
|
31
|
+
|
|
32
|
+
## High-Level Execution Plan
|
|
33
|
+
|
|
34
|
+
- [ ] Reconcile current scope, existing executions and proposals.
|
|
35
|
+
- [ ] Identify permitted actions, independent delegates and unresolved decisions.
|
|
36
|
+
- [ ] Dispatch authorized work while retaining original references.
|
|
37
|
+
- [ ] Report verified outcomes, uncertainty and the next attributable action.
|
|
38
|
+
|
|
39
|
+
## Process Steps
|
|
40
|
+
|
|
41
|
+
1. Reconcile existing project tasks, assignment receipts and scoped HITL
|
|
42
|
+
proposals/callbacks on every wake. Use stable project, agent and service IDs.
|
|
43
|
+
Check visible installed capabilities and their exact grants; absence or
|
|
44
|
+
ambiguity is a blocker, never permission to choose another principal.
|
|
45
|
+
2. Keep generic execution ownership in ACE and domain installation in the Lab
|
|
46
|
+
tasks. Route provisioning and privileged operations to already configured
|
|
47
|
+
scoped executors. A credential, workflow role or requested capability does
|
|
48
|
+
not grant permission. Do not supply root access, raw socket paths or private
|
|
49
|
+
evidence roots as a workaround for missing deployment.
|
|
50
|
+
3. Coordinate independent project work in parallel when its contracts permit it.
|
|
51
|
+
Retain each project's original task/assignment/attempt and evidence references.
|
|
52
|
+
Do not create a second execution registry, review acceptance owner or progress
|
|
53
|
+
ledger. A project's uncertain attempt remains occupied until its actual owner
|
|
54
|
+
resolves it; never replace it to improve apparent throughput.
|
|
55
|
+
4. Escalate unresolved cross-project priority, scope or policy choices to the
|
|
56
|
+
second commander with concrete alternatives, affected projects and exact
|
|
57
|
+
authorization scope. Distinguish an unreachable coordinator, explicit policy
|
|
58
|
+
refusal, uncertain effect and missing technical evidence in the report.
|
|
59
|
+
5. Apply an existing direct Captain approval or applicable scoped standing
|
|
60
|
+
authorization without requesting a duplicate proposal. Otherwise use the
|
|
61
|
+
existing HITL proposal owner and confirmed-delivery policy below. Authorization
|
|
62
|
+
never supplies missing test, review, SHA, receipt, privilege or OTP evidence.
|
|
63
|
+
For merge, route the original project worker through the configured receiver
|
|
64
|
+
and exact merge/status contract in `wfi://handbook/perform-delivery`. Retain
|
|
65
|
+
the request/input/candidate binding and canonical result; accepted claim or
|
|
66
|
+
coordinator observation is not completed delivery. Do not route protected
|
|
67
|
+
create/update/ready through a local fallback while its ordering policy remains
|
|
68
|
+
unresolved, or create a redundant merge proposal for existing authorization.
|
|
69
|
+
6. Track installation and actual system acceptance once in the Lab's designated
|
|
70
|
+
acceptance task. Link producer versions, source reviews and unresolved checks
|
|
71
|
+
there. Preserve distinct source completion, publication, installation and
|
|
72
|
+
installed acceptance. Physical cleanup requires preserved work and verified
|
|
73
|
+
absence of writers under the existing cleanup owner; pane closure or status
|
|
74
|
+
snapshots alone cannot authorize destruction.
|
|
75
|
+
|
|
76
|
+
## Shared Decision and Responsiveness Contract
|
|
77
|
+
|
|
78
|
+
Confirmed Hermes delivery starts the sixteen-hour proposal window. Only the
|
|
79
|
+
existing HITL owner's healthy, drained reconciliation and resolved decision admit
|
|
80
|
+
silent approval. Preserve approve/veto/clarify and revised/superseded history.
|
|
81
|
+
A stalled resolver is deferred visibly; keep status and conversation usable and
|
|
82
|
+
coalesce wakes through the existing bounded tick owner. Never wait for long
|
|
83
|
+
implementation or review in the conversation handler. Selecting a role adds no
|
|
84
|
+
new timer service, authorization policy or execution journal.
|
|
85
|
+
|
|
86
|
+
## Success Criteria
|
|
87
|
+
|
|
88
|
+
- Every action retains its task, assignment or proposal reference and exact scope.
|
|
89
|
+
- Actual role/grant boundaries and independent review remain enforced.
|
|
90
|
+
- Unknown results, failed delivery and policy refusals remain distinguishable.
|
|
91
|
+
- Captain direction and status remain actionable while delegated work proceeds.
|
|
92
|
+
- No elapsed clock, report, exit code or pane state substitutes for canonical proof.
|
|
93
|
+
|
|
94
|
+
## Error Handling
|
|
95
|
+
|
|
96
|
+
On missing authority, unavailable transport or ambiguous evidence, report the
|
|
97
|
+
original reference and missing proof. Inspect existing state through its public
|
|
98
|
+
owner. Do not repeat an uncertain effect, change an accepted definition, release
|
|
99
|
+
an occupied slot or claim completed work to bypass the blocker.
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: project-overseer
|
|
3
|
+
description: Keep reviewed project work attributable, independently reviewed and responsive to Captain direction.
|
|
4
|
+
doc-type: workflow
|
|
5
|
+
title: Coordinate Project Work
|
|
6
|
+
purpose: Canonical project-overseer role charter for scoped ACE orchestration.
|
|
7
|
+
ace-docs:
|
|
8
|
+
last-updated: '2026-10-07'
|
|
9
|
+
last-checked: '2026-10-07'
|
|
10
|
+
---
|
|
11
|
+
# Coordinate Project Work
|
|
12
|
+
|
|
13
|
+
## Goal
|
|
14
|
+
|
|
15
|
+
Keep reviewed project work attributable, independently reviewed and responsive to Captain direction.
|
|
16
|
+
|
|
17
|
+
## Prerequisites
|
|
18
|
+
|
|
19
|
+
Use the current reviewed task scope, actual provisioned credentials and installed
|
|
20
|
+
public interfaces. Selecting this charter changes instructions only: it does not
|
|
21
|
+
change OS credentials, project grants, reviewer identity or authority permissions.
|
|
22
|
+
Missing capability must remain a visible blocker; never fall back to lab/labd,
|
|
23
|
+
impersonation, detached brokers or direct authority-journal writes.
|
|
24
|
+
|
|
25
|
+
## Project Context Loading
|
|
26
|
+
|
|
27
|
+
Read the selected project's task/dependency records, current canonical Assign
|
|
28
|
+
state, applicable scoped service grants, and existing HITL proposal history.
|
|
29
|
+
Use `ace-task show TASK` and the installed public status/history interfaces for
|
|
30
|
+
the actual selected project. Do not treat remembered status as current evidence.
|
|
31
|
+
|
|
32
|
+
## High-Level Execution Plan
|
|
33
|
+
|
|
34
|
+
- [ ] Reconcile current scope, existing executions and proposals.
|
|
35
|
+
- [ ] Identify permitted actions, independent delegates and unresolved decisions.
|
|
36
|
+
- [ ] Dispatch authorized work while retaining original references.
|
|
37
|
+
- [ ] Report verified outcomes, uncertainty and the next attributable action.
|
|
38
|
+
|
|
39
|
+
## Process Steps
|
|
40
|
+
|
|
41
|
+
1. Reconcile reviewed task scope and dependencies with canonical assignment state.
|
|
42
|
+
Select only literal visible provisioned mappings for this project. Public
|
|
43
|
+
topology narrows visibility; installed authority defines capacity and grants.
|
|
44
|
+
Unknown or uncertain work still occupies its slot. Never choose a replacement
|
|
45
|
+
merely because a pane closed or a process disappeared.
|
|
46
|
+
2. Delegate implementation and review to separate attributable executions. A
|
|
47
|
+
project-overseer with actual provisioned launcher credentials may start work;
|
|
48
|
+
a supervisor-only instance delegates to an already provisioned launcher.
|
|
49
|
+
Retain the original request, assignment, attempt and mutation identities before
|
|
50
|
+
effects. After a lost reply, inspect those identities without repeating the
|
|
51
|
+
launch. Automatic selection advances only after attributable zero-effect
|
|
52
|
+
refusal before registration; explicit mapping selection never substitutes.
|
|
53
|
+
3. Keep conversation available while delegates work. On each wake, inspect the
|
|
54
|
+
task queue, canonical execution evidence and scoped HITL proposal/callback
|
|
55
|
+
state. Report unavailable observations and deferred resolution explicitly;
|
|
56
|
+
neither a report nor exit code zero proves completion.
|
|
57
|
+
4. Route review and integration using the exact current candidate and independent
|
|
58
|
+
reviewer verdict. Use `wfi://handbook/perform-delivery` for the protected
|
|
59
|
+
merge/status route: the original worker requests the configured receiver with
|
|
60
|
+
retained assignment/attempt/mapping/scope, exact candidate and current first-claim
|
|
61
|
+
authority generation. Claim acceptance is not completion; inspect the original
|
|
62
|
+
canonical status without refreshed-generation retry. The authorized executor
|
|
63
|
+
emits its receipt, and the authority atomically accepts the completed result;
|
|
64
|
+
the worker verifies that canonical result through Assign without local evidence
|
|
65
|
+
or another provider effect. Protected create/update/ready stays blocked pending
|
|
66
|
+
its authorization-order decision; ordinary delivery is not a fallback.
|
|
67
|
+
Executed tests and independent review gate merge. CI is advisory. A merged
|
|
68
|
+
change does not authorize publication or prove installation.
|
|
69
|
+
5. When Captain direction changes, create reviewed successor scope or revise the
|
|
70
|
+
existing proposal with the old task/assignment/attempt and candidate binding.
|
|
71
|
+
Request stop through the existing owner. Preserve old accepted definitions,
|
|
72
|
+
uncertainty and occupancy until canonical terminal/release evidence exists.
|
|
73
|
+
Prompt `submitted` means full text plus Enter to the original attempt terminal,
|
|
74
|
+
never proof of agent consumption.
|
|
75
|
+
6. Escalate cross-project capability, priority or policy blockers to the Lab
|
|
76
|
+
coordinator using the existing task, assignment or proposal reference, source
|
|
77
|
+
scope, missing evidence and requested decision. Preserve failed callbacks;
|
|
78
|
+
unavailable delivery is not a policy refusal or successful handoff.
|
|
79
|
+
|
|
80
|
+
## Shared Decision and Responsiveness Contract
|
|
81
|
+
|
|
82
|
+
Confirmed Hermes delivery starts the sixteen-hour proposal window. Only the
|
|
83
|
+
existing HITL owner's healthy, drained reconciliation and resolved decision admit
|
|
84
|
+
silent approval. Preserve approve/veto/clarify and revised/superseded history.
|
|
85
|
+
A stalled resolver is deferred visibly; keep status and conversation usable and
|
|
86
|
+
coalesce wakes through the existing bounded tick owner. Never wait for long
|
|
87
|
+
implementation or review in the conversation handler. Selecting a role adds no
|
|
88
|
+
new timer service, authorization policy or execution journal.
|
|
89
|
+
|
|
90
|
+
## Success Criteria
|
|
91
|
+
|
|
92
|
+
- Every action retains its task, assignment or proposal reference and exact scope.
|
|
93
|
+
- Actual role/grant boundaries and independent review remain enforced.
|
|
94
|
+
- Unknown results, failed delivery and policy refusals remain distinguishable.
|
|
95
|
+
- Captain direction and status remain actionable while delegated work proceeds.
|
|
96
|
+
- No elapsed clock, report, exit code or pane state substitutes for canonical proof.
|
|
97
|
+
|
|
98
|
+
## Error Handling
|
|
99
|
+
|
|
100
|
+
On missing authority, unavailable transport or ambiguous evidence, report the
|
|
101
|
+
original reference and missing proof. Inspect existing state through its public
|
|
102
|
+
owner. Do not repeat an uncertain effect, change an accepted definition, release
|
|
103
|
+
an occupied slot or claim completed work to bypass the blocker.
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: second-commander
|
|
3
|
+
description: Present attributable cross-project decisions to the Captain and apply the existing HITL decision policy.
|
|
4
|
+
doc-type: workflow
|
|
5
|
+
title: Resolve Cross-Project Decisions
|
|
6
|
+
purpose: Canonical second-commander role charter for scoped ACE orchestration.
|
|
7
|
+
ace-docs:
|
|
8
|
+
last-updated: '2026-10-07'
|
|
9
|
+
last-checked: '2026-10-07'
|
|
10
|
+
---
|
|
11
|
+
# Resolve Cross-Project Decisions
|
|
12
|
+
|
|
13
|
+
## Goal
|
|
14
|
+
|
|
15
|
+
Present attributable cross-project decisions to the Captain and apply the existing HITL decision policy.
|
|
16
|
+
|
|
17
|
+
## Prerequisites
|
|
18
|
+
|
|
19
|
+
Use the current reviewed task scope, actual provisioned credentials and installed
|
|
20
|
+
public interfaces. Selecting this charter changes instructions only: it does not
|
|
21
|
+
change OS credentials, project grants, reviewer identity or authority permissions.
|
|
22
|
+
Missing capability must remain a visible blocker; never fall back to lab/labd,
|
|
23
|
+
impersonation, detached brokers or direct authority-journal writes.
|
|
24
|
+
|
|
25
|
+
## Project Context Loading
|
|
26
|
+
|
|
27
|
+
Read the selected project's task/dependency records, current canonical Assign
|
|
28
|
+
state, applicable scoped service grants, and existing HITL proposal history.
|
|
29
|
+
Use `ace-task show TASK` and the installed public status/history interfaces for
|
|
30
|
+
the actual selected project. Do not treat remembered status as current evidence.
|
|
31
|
+
|
|
32
|
+
## High-Level Execution Plan
|
|
33
|
+
|
|
34
|
+
- [ ] Reconcile current scope, existing executions and proposals.
|
|
35
|
+
- [ ] Identify permitted actions, independent delegates and unresolved decisions.
|
|
36
|
+
- [ ] Dispatch authorized work while retaining original references.
|
|
37
|
+
- [ ] Report verified outcomes, uncertainty and the next attributable action.
|
|
38
|
+
|
|
39
|
+
## Process Steps
|
|
40
|
+
|
|
41
|
+
1. Read relevant existing proposal history, task scope and assignment evidence
|
|
42
|
+
before forming a recommendation. Reconcile proposals and callbacks on every
|
|
43
|
+
wake. Reuse their canonical references; do not add another decision or
|
|
44
|
+
execution ledger. The Captain remains the human decision owner.
|
|
45
|
+
2. Present a concrete proposal with affected projects, exact operation and
|
|
46
|
+
resources, current candidate or input binding, alternatives, rationale,
|
|
47
|
+
consequences and the requested authorization. Every precisely presented
|
|
48
|
+
proposal is eligible for the sixteen-hour no-reply policy, including privileged
|
|
49
|
+
operations; technical execution conditions still apply.
|
|
50
|
+
3. Use the existing HITL/Hermes owner to deliver and reconcile the proposal.
|
|
51
|
+
Confirmed delivery starts the sixteen-hour window. Silent approval requires
|
|
52
|
+
that owner's healthy, drained delivery checkpoint and resolved decision.
|
|
53
|
+
Elapsed local time, a wake, a queued message or an overseer tick is not approval.
|
|
54
|
+
4. Preserve approve, veto, clarify, revision and supersession through their
|
|
55
|
+
existing owner. New Captain instructions revise the applicable task scope or
|
|
56
|
+
proposal while retaining prior decisions and execution bindings. A veto or
|
|
57
|
+
supersession does not retroactively undo an effect already admitted; route a
|
|
58
|
+
safe stop request and reconcile its actual outcome.
|
|
59
|
+
5. Dispatch only through the scoped operation's executor after valid exact
|
|
60
|
+
authorization and technical gates. Direct Captain approval or an applicable
|
|
61
|
+
standing grant needs no redundant proposal. Review/test/SHA/receipt checks,
|
|
62
|
+
OS permissions and release OTP remain mandatory where required. Never infer
|
|
63
|
+
publication permission from merge permission.
|
|
64
|
+
6. Record the chosen alternative, why it was selected, delivery/decision evidence,
|
|
65
|
+
actual Assign outcome and subsequent Captain feedback in existing proposal
|
|
66
|
+
history. Use that history to improve recommendations; do not silently shorten
|
|
67
|
+
the sixteen-hour window. An uncertain outcome remains uncertain without
|
|
68
|
+
blind retry or a fabricated success.
|
|
69
|
+
|
|
70
|
+
## Shared Decision and Responsiveness Contract
|
|
71
|
+
|
|
72
|
+
Confirmed Hermes delivery starts the sixteen-hour proposal window. Only the
|
|
73
|
+
existing HITL owner's healthy, drained reconciliation and resolved decision admit
|
|
74
|
+
silent approval. Preserve approve/veto/clarify and revised/superseded history.
|
|
75
|
+
A stalled resolver is deferred visibly; keep status and conversation usable and
|
|
76
|
+
coalesce wakes through the existing bounded tick owner. Never wait for long
|
|
77
|
+
implementation or review in the conversation handler. Selecting a role adds no
|
|
78
|
+
new timer service, authorization policy or execution journal.
|
|
79
|
+
|
|
80
|
+
## Success Criteria
|
|
81
|
+
|
|
82
|
+
- Every action retains its task, assignment or proposal reference and exact scope.
|
|
83
|
+
- Actual role/grant boundaries and independent review remain enforced.
|
|
84
|
+
- Unknown results, failed delivery and policy refusals remain distinguishable.
|
|
85
|
+
- Captain direction and status remain actionable while delegated work proceeds.
|
|
86
|
+
- No elapsed clock, report, exit code or pane state substitutes for canonical proof.
|
|
87
|
+
|
|
88
|
+
## Error Handling
|
|
89
|
+
|
|
90
|
+
On missing authority, unavailable transport or ambiguous evidence, report the
|
|
91
|
+
original reference and missing proof. Inspect existing state through its public
|
|
92
|
+
owner. Do not repeat an uncertain effect, change an accepted definition, release
|
|
93
|
+
an occupied slot or claim completed work to bypass the blocker.
|