ace-overseer 0.20.0 → 0.20.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 (36) hide show
  1. checksums.yaml +4 -4
  2. data/.ace-defaults/nav/protocols/wfi-sources/ace-overseer.yml +1 -1
  3. data/CHANGELOG.md +21 -0
  4. data/README.md +14 -14
  5. data/docs/usage.md +66 -41
  6. data/handbook/workflow-instructions/overseer.wf.md +13 -9
  7. data/handbook/workflow-instructions/roles/lab-coordinator.wf.md +99 -0
  8. data/handbook/workflow-instructions/roles/project-overseer.wf.md +103 -0
  9. data/handbook/workflow-instructions/roles/second-commander.wf.md +93 -0
  10. data/lib/ace/overseer/cli/commands/agents.rb +12 -7
  11. data/lib/ace/overseer/cli/commands/projects.rb +11 -7
  12. data/lib/ace/overseer/cli/commands/prompt.rb +44 -16
  13. data/lib/ace/overseer/cli/commands/prune.rb +51 -123
  14. data/lib/ace/overseer/cli/commands/review.rb +28 -8
  15. data/lib/ace/overseer/cli/commands/status.rb +33 -19
  16. data/lib/ace/overseer/cli/commands/stop.rb +18 -8
  17. data/lib/ace/overseer/cli/commands/work_on.rb +52 -16
  18. data/lib/ace/overseer/cli.rb +6 -9
  19. data/lib/ace/overseer/molecules/launch_request.rb +216 -0
  20. data/lib/ace/overseer/molecules/original_launch_child.rb +165 -0
  21. data/lib/ace/overseer/molecules/proposal_tick.rb +37 -9
  22. data/lib/ace/overseer/molecules/protected_selection.rb +46 -0
  23. data/lib/ace/overseer/molecules/window_opener.rb +9 -2
  24. data/lib/ace/overseer/organisms/launch_recovery.rb +65 -0
  25. data/lib/ace/overseer/organisms/protected_prune.rb +116 -0
  26. data/lib/ace/overseer/organisms/protected_review.rb +167 -0
  27. data/lib/ace/overseer/organisms/protected_status.rb +157 -0
  28. data/lib/ace/overseer/organisms/protected_steering.rb +78 -0
  29. data/lib/ace/overseer/organisms/protected_work_on.rb +102 -0
  30. data/lib/ace/overseer/organisms/work_on_orchestrator.rb +4 -5
  31. data/lib/ace/overseer/version.rb +1 -1
  32. data/lib/ace/overseer.rb +1 -2
  33. metadata +48 -11
  34. data/lib/ace/overseer/cli/commands/prepare.rb +0 -38
  35. data/lib/ace/overseer/molecules/lab_client.rb +0 -56
  36. 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: 7afa7d878680232ac2f7800973b1dec72b7991a9ecd6ce3c498c73d6d8264b21
4
- data.tar.gz: 124e8f19e7aa46504760813344459124a630db4263e9a2f4bf08133409036e94
3
+ metadata.gz: a295b89da7b7dfa9878c4bee713637b790eb75aa6c3116887feac63893e6783a
4
+ data.tar.gz: 92e4629661696347d8c9b2e75f8295b4698cf4139cc51f5a0c80ef61e6d7c22f
5
5
  SHA512:
6
- metadata.gz: 86a724ae87399315af6cbce345ec911f62ea7ec28e57ab660652056d99bcda986fd8cb571bb031071e6971b4bbd78f39b697fa02c393ed4a562c594306b012b5
7
- data.tar.gz: 15ae48aea39c596a2fb3fd639f04f72b8f669872a9a4cce365ff5cca9eefbd8d2322df523b5b6974d56e9253011dd12b4aa72f8243f7d7f1264248b548cc2a8e
6
+ metadata.gz: 16e8f719474ec2090c1463d4341d4199e17d74692da8c0f31fdbc329671e5af2edfe7516a19496ac4706bedb9b823b62f16f82a9829e7c4ef1fdbd906294f7fe
7
+ data.tar.gz: f952e354ce7aba3bdde0dc55df80fce89b6b360763b5e6c98e4853e95bcb9a33dfbeb38b3c910e131fe7979b574b4298c1931e0460c7627ec677da304579e88e
@@ -9,5 +9,5 @@ priority: 10
9
9
 
10
10
  config:
11
11
  relative_path: handbook/workflow-instructions
12
- pattern: "*.wf.md"
12
+ pattern: "**/*.wf.md"
13
13
  enabled: true
data/CHANGELOG.md CHANGED
@@ -7,6 +7,27 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.20.1] - 2026-10-08
11
+
12
+ ### Changed
13
+
14
+ - Require the coordinated Assign, Herdr, Lab and Review producer versions for ordinary CLI worker launch and current protected delivery contracts.
15
+
16
+ - 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.
17
+
18
+ - Route protected delivery through original worker merge request, canonical status and exact result consumption while preserving ordinary delivery and unresolved protected PR policy.
19
+
20
+
21
+ ### Added
22
+
23
+ - 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.
24
+
25
+ - Package canonical project-overseer, Lab coordinator and second-commander role workflows with scoped authority, responsive delegation and the existing confirmed-delivery decision policy.
26
+
27
+ - 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.
28
+
29
+ - 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.
30
+
10
31
  ## [0.20.0] - 2026-10-05
11
32
 
12
33
  ### 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
- On a configured Lab machine, the same CLI can prepare and dispatch the Lab's
24
- system-owned `Work` objects. The default remains the existing tmux runtime;
25
- using Lab always requires an explicit `--runtime lab` or a Lab-only command.
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
- **Operate Lab workers** - prepare a reviewed Work, dispatch it to a configured
50
- agent, and inspect it without teaching ACE how to manage containers or Herdr:
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 prepare --runtime lab --project nervus \
54
- --source lab-plan:oauth-callback --work W142 \
55
- --planner admin-agy --title "OAuth callback validation"
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
- Lab owns worktrees, credentials, Podman, and Herdr. Overseer decides what to
61
- run and delegates only through the absolute `/usr/local/bin/lab` boundary.
62
- Use `ace-overseer prune WORK... --runtime lab --dry-run` to preview exact Work
63
- destruction, then repeat with `--yes` to delegate it to Lab.
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
- Create or reuse task worktrees, open tmux windows, and prepare assignments.
27
-
28
- Invocation: `ace-overseer work-on --task <task-ref>`.
29
-
30
- Options:
31
-
32
- - `--task`, `-t` (required for tmux): task reference(s); repeatable and comma-separated values supported
33
- - `--preset`, `-p`: assignment preset name
34
- - `--runtime`: `tmux` (default) or `lab`
35
- - `--work`: existing Lab Work ID; required with `--runtime lab`
36
- - `--agent`: configured Lab agent ID; required with `--runtime lab`
37
- - `--quiet`, `-q`: suppress non-essential output
38
- - `--debug`, `-d`: show debug output
39
- - `--help`, `-h`: show help
40
-
41
- Internally, `work-on` now routes assignment creation through `ace-assign create --task ...`, so direct `ace-assign` and `ace-overseer` task flows use the same preset expansion behavior.
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`: `tmux` (default) or `lab`
54
- - `--project`: filter Lab Works by 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
- - `--runtime`: `tmux` (default) or `lab`
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
- ## Lab Runtime
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
- Example:
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 prepare --runtime lab --project nervus \
161
- --source nervus-thread:67611c0b-f44c-4ac4-ae4e-55773b175617 \
162
- --work W321 --planner admin-agy --title "Reviewed task title"
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
- - Lab runtime variant (reserved agent + Herdr workspace): `ace-overseer work-on --runtime lab --work <work-id> --agent <agent-id>` -- `--task`/`--preset` are not supported with the Lab runtime.
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
- Lab runtime: `ace-overseer status --runtime lab [--project <project>]` (no
52
- `--watch`; continuous status lives in each project Herdr session).
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
- - Lab runtime: `ace-overseer prune <work-id>... --runtime lab --dry-run`, rerun with `--yes` to delegate each destruction to Lab. The raw Lab CLI cannot make the no-writer check and the destruction atomic, so it is classified unsupported and preserved; only a Lab surface with an atomic guarded destroy delegates.
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 Lab
134
- runtime candidates check `ace-overseer status --runtime lab`. A running
135
- assignment, an active or uncertain attempt, an in-flight Lab work, or any
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/Lab status, terminal attempts, durable prune/start exclusion) |
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` (or the Lab-runtime equivalent), never through ad-hoc manual worktree provisioning.
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.