ace-overseer 0.30.1 → 0.31.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +40 -0
- data/handbook/workflow-instructions/overseer/bootstrap-delegation.wf.md +35 -298
- data/handbook/workflow-instructions/overseer/lab-start.wf.md +69 -102
- data/handbook/workflow-instructions/overseer/queue.wf.md +39 -219
- data/handbook/workflow-instructions/overseer/start.wf.md +66 -240
- data/lib/ace/overseer/atoms/report_interpretation.rb +3 -0
- data/lib/ace/overseer/atoms/start_contract.rb +2 -2
- data/lib/ace/overseer/cli/commands/handoff.rb +15 -3
- data/lib/ace/overseer/cli/commands/process_reports.rb +33 -4
- data/lib/ace/overseer/cli/commands/start.rb +6 -1
- data/lib/ace/overseer/cli/commands/status.rb +1 -1
- data/lib/ace/overseer/cli/commands/work_on.rb +15 -3
- data/lib/ace/overseer/molecules/coworker_launcher.rb +236 -15
- data/lib/ace/overseer/molecules/event_observation.rb +4 -0
- data/lib/ace/overseer/molecules/eyes_configuration.rb +26 -0
- data/lib/ace/overseer/molecules/eyes_evidence.rb +6 -2
- data/lib/ace/overseer/molecules/eyes_readiness.rb +6 -1
- data/lib/ace/overseer/molecules/eyes_session_evidence.rb +2 -2
- data/lib/ace/overseer/molecules/handoff_probe.rb +2 -1
- data/lib/ace/overseer/molecules/hitl_inbox.rb +18 -5
- data/lib/ace/overseer/molecules/local_sources.rb +32 -6
- data/lib/ace/overseer/molecules/manager_binding.rb +138 -0
- data/lib/ace/overseer/molecules/project_observations.rb +19 -43
- data/lib/ace/overseer/molecules/project_sessions.rb +59 -6
- data/lib/ace/overseer/molecules/report_completion_check.rb +11 -3
- data/lib/ace/overseer/molecules/session_environment.rb +3 -8
- data/lib/ace/overseer/molecules/worktree_provisioner.rb +2 -2
- data/lib/ace/overseer/organisms/handoff_orchestrator.rb +43 -1
- data/lib/ace/overseer/organisms/report_processor.rb +145 -17
- data/lib/ace/overseer/organisms/start_orchestrator.rb +30 -8
- data/lib/ace/overseer/organisms/status_attention.rb +27 -3
- data/lib/ace/overseer/organisms/status_collector.rb +22 -2
- data/lib/ace/overseer/organisms/work_on_orchestrator.rb +33 -7
- data/lib/ace/overseer/version.rb +1 -1
- metadata +22 -20
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 66a8676da2ce6fa2dac349814b9e31ecf272bf69592d30144c0f51b5affc0f37
|
|
4
|
+
data.tar.gz: c16d235da8c75fd77afbf788278bf720315c09aa77c9b6a74d14c85eb54e9d8b
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: c2f7496b967aa4a8b1436eddc7535a84a348aff25527be213ac65938f228e818afb5dcd4326bf5e730eda194ea135c88366e177fe5b80a5a73c3726dd9fd8200
|
|
7
|
+
data.tar.gz: 6919f93fe0ba5c7a33e422cd840c8f6287ea4cc30adb3c89922276b429df9afd94e5f7fa0aa8ccd241fd827c10adb8ca8cd4d52ddd71e0bc9519a91f808a8aed
|
data/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,46 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.31.0] - 2026-11-12
|
|
11
|
+
|
|
12
|
+
### Changed
|
|
13
|
+
|
|
14
|
+
- Bind manager roles before dispatch, process exact report receipts, automatically arm scoped eyes, and close completed coordination through state owners.
|
|
15
|
+
- Require explicit commissions, scope lab observations to its recipients, validate duplicate reports and expose processing stage timings.
|
|
16
|
+
|
|
17
|
+
### Fixed
|
|
18
|
+
|
|
19
|
+
- Accept both `idle` and `done` agent statuses when resuming an interrupted executor session or recovering a replacement terminal.
|
|
20
|
+
- Unwrap the `HitlEvent` from `HitlManager#show` in `ReportProcessor#pending_decision` when checking if an advisor's decision case is already answered.
|
|
21
|
+
- Prepare project eyes with linked-worktree scope so executor reports reach their configured owner; require current revision/owner readback instead of stale key interpretations before acknowledgement.
|
|
22
|
+
- Keep completed private coordination families in their ignored owner folder and restore misplaced records through the existing task move operation, preserving status and report identities.
|
|
23
|
+
- Record the recommendation/decision lesson before closing HITL; retain an explicit owning-task gap when an earlier terminal case missed its lesson.
|
|
24
|
+
- Keep between-step paused/running transitions silent for the exact live native executor, including role-specific commissions; preserve actual readable states, failure, completion and missing-session signals.
|
|
25
|
+
- Specify the existing private allocation fields for advisor report acceptance and retirement, keeping the human-decision step open; unmatched reports cannot be replaced by a manual acceptance note.
|
|
26
|
+
- Defer project setup when Overseer provisions an executor checkout, including stale-worktree recovery. Reject Git-ignored coordination tasks before dispatch and distinguish the advisor's executable task from its private decision manager.
|
|
27
|
+
- Emit a stable, session-bound project readiness confirmation after the first turn and active eyes, so lab supervision can finish reconciliation without waking again for inconclusive transcript samples or ordinary project turns.
|
|
28
|
+
- Treat retained panels with zero live project agents as absent, allowing one fresh coordinator after a crash without deleting diagnostic panels. Multiple live owners still block start.
|
|
29
|
+
- Name the exact private coordination record and missing field when report acceptance lacks allocation metadata; include the commissioned role in the guide command.
|
|
30
|
+
- Preserve native terminal context for foreground Pi so Herdr receives session identity and readiness hooks; delegated launches still obtain their destination context from Herdr.
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
## [0.30.2] - 2026-11-12
|
|
34
|
+
|
|
35
|
+
### Fixed
|
|
36
|
+
|
|
37
|
+
- Resume a failed executor in a fresh pane after native terminal identity replacement, preserving assignment/session and reconciling uncertain dispatch without duplicates.
|
|
38
|
+
- Retry failed session resumption only after native proof that the original terminal contains only its shell.
|
|
39
|
+
- Retrying work-on resumes a positively dead executor's existing Pi transcript and running assignment in its original terminal with fresh role credentials; uncertain start or prompt outcomes cannot duplicate execution.
|
|
40
|
+
- Project-session observation recognizes one live replacement when a dead predecessor panel remains after restart, matching managed start ownership checks.
|
|
41
|
+
- Judge recovery progress from changed owner artifacts against the recorded baseline, rather than an unchanged native state-transition counter or missing final report.
|
|
42
|
+
- Distinguish same-session continuation after provider failure from duplicate startup dispatch; reconcile current owners before acknowledging completion and bound recovery with the existing eyes deadline.
|
|
43
|
+
- Observe native worker turn completions even when provider failures leave a live panel without an assignment report; unchanged completion sequences remain silent.
|
|
44
|
+
- Preserve native worker launch receipts while Pi publishes its session identity; resume the same verified idle executor without duplicating a process or an uncertain prompt.
|
|
45
|
+
- Direct Forgejo sessions to their configured client before treating anonymous API refusal as missing access or requesting temporary credentials.
|
|
46
|
+
- Namespace native overseer agent names by canonical root so lab and project sessions coexist on one Herdr server.
|
|
47
|
+
- Consume configured project reports from the lab, bind all outcomes to their project, and resolve completion and continuation in the project checkout while retaining the lab task owner.
|
|
48
|
+
- Specify the supported bootstrap workflow command and refuse substituting checkout instructions in installed mode.
|
|
49
|
+
|
|
10
50
|
## [0.30.1] - 2026-11-11
|
|
11
51
|
|
|
12
52
|
### Fixed
|
|
@@ -6,301 +6,38 @@ doc-type: workflow
|
|
|
6
6
|
title: Delegated Project Bootstrap
|
|
7
7
|
purpose: Complete one lab-owned startup commission without the overseer doing the repair.
|
|
8
8
|
---
|
|
9
|
-
# Delegated project bootstrap
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
ace-task create "Prepare <project>" --child-of <manager-ref>
|
|
45
|
-
ace-task create "Independently verify <project>" --child-of <manager-ref>
|
|
46
|
-
ace-task create "Confirm start <project>" --child-of <manager-ref>
|
|
47
|
-
ace-task update <verify-ref> --add dependencies=<prepare-ref>
|
|
48
|
-
ace-task update <confirm-ref> --add dependencies=<verify-ref>
|
|
49
|
-
ace-task show <manager-ref>
|
|
50
|
-
ace-task list --in _overseer
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
Use the full task IDs returned by the commands, not abbreviated references.
|
|
54
|
-
Children inherit the parent's location.
|
|
55
|
-
Before dispatch, verify the manager and its three direct children resolve
|
|
56
|
-
under `<lab>/.ace-tasks/_overseer/` and are gitignored. A manager in the public
|
|
57
|
-
task root does not satisfy this contract. Reconcile its location through the
|
|
58
|
-
task owner's public CLI before dispatch; do not create a duplicate commission
|
|
59
|
-
or treat a successful worker report as proof that the manager is private.
|
|
60
|
-
|
|
61
|
-
Create the executable bootstrap task through `ace-task` in the target project's
|
|
62
|
-
canonical root, linking it as the private lab manager's `project_task` and
|
|
63
|
-
recording `project_root`. Keep its specification in its project task folder.
|
|
64
|
-
Run executable-task creation, lookup, coworker preparation and role handoff
|
|
65
|
-
from that project. Run private coordination-task updates from the lab root.
|
|
66
|
-
Shell calls do not retain a preceding call's working directory. The worker receives
|
|
67
|
-
only the project mount and cannot read lab-private tasks. The lab's installed
|
|
68
|
-
observation reads configured project assignments and reports from their owners;
|
|
69
|
-
records remain in the project rather than being copied into lab state. Include the canonical target repository path, required
|
|
70
|
-
configuration, observed failure, desired outcome, allowed changes, runtime
|
|
71
|
-
mode, acceptance checks and report recipient. Assign diagnosis and reproduction
|
|
72
|
-
as well as preparation to the worker. This task describes infrastructure setup within the project, separate from its product issue backlog.
|
|
73
|
-
|
|
74
|
-
The preparation and verifier acceptance checks stop at a validated project
|
|
75
|
-
configuration and readiness to start. Do not require a running project
|
|
76
|
-
Overseer, a first turn, or active project eyes in either worker assignment:
|
|
77
|
-
those are the coordinator's confirm-start checks after verification. Workers
|
|
78
|
-
must not start the project Overseer themselves. This prevents a circular gate.
|
|
79
|
-
Worker/verifier checks must be executable with their commissioned session's
|
|
80
|
-
permissions. Validate the prepared configuration, installed CLI/gem paths and
|
|
81
|
-
owned project files. `ace-lab prepare`, `ace-lab install` and `ace-lab verify`
|
|
82
|
-
operate on the host deployment manifest even from the project directory.
|
|
83
|
-
The host operator owns them. Never include these commands in a project
|
|
84
|
-
commission or dispatch prompt, including as a dry run or acceptance check.
|
|
85
|
-
Name the exact project configuration files to prepare or validate and the
|
|
86
|
-
installed executable paths to check. If host convergence is required, record
|
|
87
|
-
the missing capability and route it to the host operator.
|
|
88
|
-
Do not require host D-Bus or systemd inspection, reading either overseer's
|
|
89
|
-
private task tree, or a healthy full `ace-overseer observe` projection from a
|
|
90
|
-
worker session. Those checks belong to the host or overseer role. The private
|
|
91
|
-
task tree is the coordinator's responsibility; ordinary same-user sessions do
|
|
92
|
-
not promise operating-system isolation from it.
|
|
93
|
-
Commission task-store checks for the worker or verifier in the execution
|
|
94
|
-
worktree. The project Overseer can audit its canonical private task store
|
|
95
|
-
after start. A worker reports
|
|
96
|
-
missing authority and the exact blocked check instead of repairing host services
|
|
97
|
-
or attempting to access the coordinator's private state. The coordinator proves
|
|
98
|
-
full observation from the authorized project Overseer during confirm-start.
|
|
99
|
-
`ace-coworker status` describes one commissioned executor, not whether a
|
|
100
|
-
project can host an Overseer. A canonical project without a default coworker
|
|
101
|
-
commission is not a bootstrap defect. Do not require or create a canonical
|
|
102
|
-
`.ace-local/coworker/config.yml` merely to make that query ready, and never copy
|
|
103
|
-
a worktree commission into another checkout where its assignment cannot resolve.
|
|
104
|
-
Read an executor's status in its returned worktree with its returned `--config`.
|
|
105
|
-
A configuration parse, exit zero or absence of the words "not ready" is not
|
|
106
|
-
proof of readiness: require the intended identity and resolved assignment.
|
|
107
|
-
Do not require a worker or verifier to rerun `prepare` as an acceptance check
|
|
108
|
-
while its assignment is active. Preparation coordinates executors; its active
|
|
109
|
-
executor conflict is not a configuration validation result. Accept project
|
|
110
|
-
configuration through its own documented schema and installed runtime checks.
|
|
111
|
-
|
|
112
|
-
The commission must include the target project's eyes configuration path
|
|
113
|
-
`<project>/.ace-local/overseer/eyes.json` and
|
|
114
|
-
the project Overseer's configured HITL recipient for its own eyes, separately
|
|
115
|
-
from the lab recipient that receives bootstrap reports: the worker prepares the configuration
|
|
116
|
-
and the independent verifier checks it before project start. Missing or
|
|
117
|
-
ambiguous recipient information is a blocker, never a guessed address. The
|
|
118
|
-
project Overseer arms the prepared configuration; it does not create or edit it.
|
|
119
|
-
Describe the required project observation and recipient in the commission.
|
|
120
|
-
Leave configuration syntax to the executor and its installed validator.
|
|
121
|
-
`scope: project` belongs to the Overseer start configuration. For the eyes
|
|
122
|
-
JSON, use `"scope": "current"` to observe the current project and set
|
|
123
|
-
`"recipient"` to that project's configured recipient. Add sync routes only
|
|
124
|
-
when the commission requires them.
|
|
125
|
-
The project's private task directory is `<project>/.ace-tasks/_overseer`;
|
|
126
|
-
never require or create a top-level `<project>/_overseer` directory.
|
|
127
|
-
|
|
128
|
-
Put all commission and supporting files in the executable task's own tracked
|
|
129
|
-
folder, never in the private `_overseer` tree. Before preparing its worktree,
|
|
130
|
-
commit those files and the task specification using the task/commit tools.
|
|
131
|
-
|
|
132
|
-
Resolve the executable task in its owner checkout and use the returned
|
|
133
|
-
file's parent directory:
|
|
134
|
-
|
|
135
|
-
```bash
|
|
136
|
-
cd "<canonical-project-root>" && ace-task show "<project-task-id>" --path
|
|
137
|
-
```
|
|
138
|
-
|
|
139
|
-
If lookup reports not found, check the command's working directory and the
|
|
140
|
-
task ID from the create result. Correct the lookup once. If it still fails,
|
|
141
|
-
record the blocker on the private coordination task and end the turn.
|
|
142
|
-
Check `git status --short -- <task-directory>` in the project: uncommitted
|
|
143
|
-
or untracked supporting files will not appear in the new worktree.
|
|
144
|
-
|
|
145
|
-
After preparation, verify every referenced commission file exists in the
|
|
146
|
-
returned worktree before launch. If one is missing, report a preparation
|
|
147
|
-
failure and keep the worker unstarted.
|
|
148
|
-
Workers must not edit the private coordination tree. Resolve each task
|
|
149
|
-
folder from its owner's checkout before writing commission, dispatch or
|
|
150
|
-
receipt notes. Use the returned path even when it differs from the title slug.
|
|
151
|
-
|
|
152
|
-
Explicit `ACE_TOOLCHAIN=installed` remains installed in every subprocess,
|
|
153
|
-
worker and resumed session. The project checkout is domain data. Never modify
|
|
154
|
-
tracked binstubs to bypass this selection. In auto mode retain the project's
|
|
155
|
-
own dependency model. If package code is defective, commission its repair;
|
|
156
|
-
do not patch installed gems. Preserve unrelated changes.
|
|
157
|
-
|
|
158
|
-
## Arm eyes before dispatch
|
|
159
|
-
|
|
160
|
-
Use the lab's existing eyes JSON configuration, including its configured
|
|
161
|
-
project observations. Start it once with the `ace_eyes` tool using
|
|
162
|
-
`{"action":"start","configPath":"<absolute eyes JSON path>"}`. If eyes is
|
|
163
|
-
already armed for the same configuration, read `{"action":"status"}`
|
|
164
|
-
and reuse the running observer. A worker-to-verifier handoff does not
|
|
165
|
-
require rearming an observer that remains healthy.
|
|
166
|
-
Inspect the returned state: enabled=true, breaker=null, errors=0 and at least
|
|
167
|
-
one observation. Read pending revisions from their original owners, reconcile
|
|
168
|
-
existing commissions, and ack each exact key/revision only after acceptance.
|
|
169
|
-
A missing extension, invalid configuration or degraded source blocks dispatch;
|
|
170
|
-
report that capability gap. Do not claim that mentioning `/eyes` armed it.
|
|
171
|
-
|
|
172
|
-
## Prepare and actually launch a worker
|
|
173
|
-
|
|
174
|
-
Read the lab's armed eyes configuration to identify the commissioning
|
|
175
|
-
coordinator's recipient, then resolve that address in the target project's
|
|
176
|
-
HITL configuration. Use the target configuration's key for THAT same lab
|
|
177
|
-
address, not its project Overseer address. Lab and project coordinators must
|
|
178
|
-
have distinct configured addresses, with absolute folder paths when using
|
|
179
|
-
folder-form addresses. A relative `.ace-local/hitl` repeated across roots does
|
|
180
|
-
not identify which coordinator owns the report. The task specification, `--to`, and returned start configs
|
|
181
|
-
must agree; do not invent an address or append a machine suffix. If no valid
|
|
182
|
-
recipient is configured, report a blocking gap before dispatch.
|
|
183
|
-
|
|
184
|
-
Bootstrap uses `reporting.delivery: observe`. The recipient is
|
|
185
|
-
a report address, not permission to edit the coordinator's private tasks. Executors publish
|
|
186
|
-
with `ace-coworker report` in their assignment worktree. Lab eyes observes that
|
|
187
|
-
publication on the project side and the Lab Overseer accepts it. Neither
|
|
188
|
-
commission may require the worker or verifier to find, touch, or write the
|
|
189
|
-
Lab Overseer's inbox (for example `/lab/.ace-local/hitl`). Check the configured
|
|
190
|
-
address in the start brief, and prove publication and acceptance at the
|
|
191
|
-
report handoff after execution. Do not turn inbox access into a prerequisite
|
|
192
|
-
for project preparation.
|
|
193
|
-
|
|
194
|
-
From the target project root, use `ace-coworker prepare --task <executable-task> --roles bootstrap-worker,bootstrap-verifier
|
|
195
|
-
--to <configured-lab-recipient> --format json`. Read its returned worktree,
|
|
196
|
-
assignment IDs and start-config paths; record these on the matching private
|
|
197
|
-
steps before launch through the task API, not only in prose:
|
|
198
|
-
|
|
199
|
-
```bash
|
|
200
|
-
ace-task update <prepare-step> --set assignment=<worker-assignment> --set role=bootstrap-worker --set worktree=<returned-worktree>
|
|
201
|
-
ace-task update <verify-step> --set assignment=<verifier-assignment> --set role=bootstrap-verifier --set worktree=<returned-worktree>
|
|
202
|
-
ace-task update <confirm-step> --set role=confirm-start
|
|
203
|
-
```
|
|
204
|
-
|
|
205
|
-
Start-config paths returned by preparation are relative to the returned
|
|
206
|
-
execution worktree, not the canonical project root. Pass the returned path with
|
|
207
|
-
that worktree as cwd, or join it to that worktree for an absolute path. Verify
|
|
208
|
-
that exact file exists before dispatch; use the same rule for the verifier's
|
|
209
|
-
handoff config. Never replace its base directory with the canonical project.
|
|
210
|
-
|
|
211
|
-
Read back the steps with `ace-task show` and verify exact returned identities.
|
|
212
|
-
A preparation readiness report is not worker completion. It does not complete
|
|
213
|
-
any of these three steps; never label bootstrap execution as `role=planner`.
|
|
214
|
-
Only a separate, explicitly commissioned planner preparation allocation may
|
|
215
|
-
accept an unassigned readiness report.
|
|
216
|
-
The task must be present in the execution worktree before any agent starts.
|
|
217
|
-
|
|
218
|
-
`ace-coworker start --config <returned-path>` validates and prints a brief.
|
|
219
|
-
Launch the first prepared leg with `ace-overseer handoff --task <executable-task>
|
|
220
|
-
--runtime herdr` from the target project. This operation starts the actual
|
|
221
|
-
process in the returned worktree with the role's explicit environment and
|
|
222
|
-
records its native identity on the existing commission. No prompt file,
|
|
223
|
-
service setup or shell workaround is needed from the coordinator.
|
|
224
|
-
|
|
225
|
-
Record the returned terminal and assignment on the matching private step.
|
|
226
|
-
End the turn with eyes armed. A repeated command reuses recorded work or
|
|
227
|
-
reports an explicit blocker; an uncertain start must not be bypassed by
|
|
228
|
-
another dispatch. Worker or observation failure is delegated/escalated,
|
|
229
|
-
never repaired by the Lab Overseer.
|
|
230
|
-
|
|
231
|
-
## Receive, verify, start
|
|
232
|
-
|
|
233
|
-
On wake, read the original report and current assignment. Require matching
|
|
234
|
-
report ID, task, assignment and role; a preparation report, process exit or
|
|
235
|
-
unmatched message is not success. The observation carries `project_root` and
|
|
236
|
-
the original report ID; read the report and `ace-coworker status` through their
|
|
237
|
-
public CLI in that project/worktree. Only accept worker success with a completed
|
|
238
|
-
non-empty assignment and the promised evidence. The private coordination tree
|
|
239
|
-
stays in the lab: do not run a project-local report processor against lab task
|
|
240
|
-
IDs or infer completion from a report file alone.
|
|
241
|
-
Record the actual accepted HITL event ID and result in step metadata through
|
|
242
|
-
`ace-task update <step> --set processed_report=<event-id> --set report_result=<result>`
|
|
243
|
-
using the lab task owner.
|
|
244
|
-
Mark done only after acceptance; errors keep the step open. If the executor
|
|
245
|
-
observation loses the recorded terminal while its assignment is incomplete,
|
|
246
|
-
verify the absence in Herdr and record the interruption before reconciling
|
|
247
|
-
that assignment. A disappeared session cannot complete a bootstrap leg. Receipt notes in
|
|
248
|
-
the path returned by `ace-task show` supplement these fields, never replace them.
|
|
249
|
-
Read back the recorded identity before acknowledging the eyes revision.
|
|
250
|
-
Never put a preparation readiness ID on a worker, verifier or confirm-start step.
|
|
251
|
-
|
|
252
|
-
After accepting the worker's report, use `ace-overseer process-reports` to
|
|
253
|
-
retire its recorded executor and continue the prepared sequence. Preserve
|
|
254
|
-
the exact report and assignment identity before starting the verifier.
|
|
255
|
-
Do not launch a second executor while a predecessor is active or unknown.
|
|
256
|
-
Repeated reports reconcile the same commission; they do not repeat the work.
|
|
257
|
-
|
|
258
|
-
Only after accepted worker completion and independent verification does the
|
|
259
|
-
overseer perform this commission's project-start coordination operation `ace-overseer start --reconcile`. Confirm the target's session, first
|
|
260
|
-
turn and active eyes through that command's native-session readiness result.
|
|
261
|
-
For the target project, `ready=true` proves the matching session's
|
|
262
|
-
first turn and active eyes; a terminal's `done` or `interactive_ready` alone
|
|
263
|
-
does not. Record the returned target identity and readiness on confirm-start.
|
|
264
|
-
|
|
265
|
-
When the target returns `ready=false`, preserve its session. Arm one eyes
|
|
266
|
-
first-turn deadline (`key=confirm-start-<project-id>`, `revision=<terminal-id>`,
|
|
267
|
-
`at=now_unix_ms + 60000`) and end the turn. On a project-session revision or
|
|
268
|
-
that deadline, rerun `ace-overseer start --reconcile` from the lab root once.
|
|
269
|
-
It reuses the existing session and checks its evidence without resending the
|
|
270
|
-
prompt. Cancel the deadline when readiness is confirmed. The deadline is an
|
|
271
|
-
observation checkpoint, not a startup failure threshold. If it fires while
|
|
272
|
-
readiness remains false, reconcile the actual session activity through Herdr's
|
|
273
|
-
public agent state. A matching session still working on its first turn remains
|
|
274
|
-
pending: record that fact, acknowledge the handled project-session revision,
|
|
275
|
-
cancel the consumed deadline and keep project-session observation armed.
|
|
276
|
-
At this first pending checkpoint, arm one separate startup watchdog
|
|
277
|
-
(`key=confirm-stall-<project-id>`, `revision=<terminal-id>`,
|
|
278
|
-
`at=now_unix_ms + 1800000`) and record its identity on confirm-start before ending the turn. Never
|
|
279
|
-
rearm it on subsequent revisions or after session resume. On its expiry,
|
|
280
|
-
reconcile readiness and, if still unconfirmed, delegate diagnosis while
|
|
281
|
-
preserving the existing session; elapsed time alone never authorizes restart.
|
|
282
|
-
Cancel this watchdog when readiness is confirmed or diagnosis takes ownership.
|
|
283
|
-
On the next project-session revision, check authenticated readiness again.
|
|
284
|
-
Do not ask the Captain whether to keep
|
|
285
|
-
waiting for an active session, repeatedly rearm deadlines or poll.
|
|
286
|
-
|
|
287
|
-
If the session has finished its turn without readiness, exited, or is blocked,
|
|
288
|
-
delegate diagnosis with the observed state and readiness result. Unknown
|
|
289
|
-
activity or unavailable observation is an explicit unresolved state, never
|
|
290
|
-
permission to launch a duplicate or declare success. Escalate only an actual
|
|
291
|
-
decision or missing authority; ordinary first-turn latency needs neither.
|
|
292
|
-
|
|
293
|
-
Do not read implementation files, inspect another session's private files, or
|
|
294
|
-
infer another agent's eyes from your own `ace_eyes status`. The public readiness
|
|
295
|
-
result is the proof boundary; inability to obtain it is a blocker for the
|
|
296
|
-
executor to diagnose. Close the confirmation step and managing task only with
|
|
297
|
-
these proofs; the worker report alone cannot close the family.
|
|
298
|
-
If first-prompt delivery is unconfirmed, preserve the existing session and do
|
|
299
|
-
not submit the prompt again. Inspect its actual activity and escalate an
|
|
300
|
-
unresolved delivery through HITL. The project-session observation can wake you
|
|
301
|
-
on a configured project's Herdr state change; that state alone does not prove
|
|
302
|
-
the project has armed eyes.
|
|
303
|
-
|
|
304
|
-
On error, keep the step open and route repair to the worker. Missing authority
|
|
305
|
-
or an actual Captain decision becomes a precise HITL question; end the turn
|
|
306
|
-
armed for its answer. Never self-repair or use sleep-poll while waiting.
|
|
9
|
+
# Delegated project bootstrap or configuration repair
|
|
10
|
+
|
|
11
|
+
Read the known symptom, canonical target and existing commission. Do not diagnose
|
|
12
|
+
implementation before dispatch. Reuse the same task and manager after interruption.
|
|
13
|
+
The lab can commission a worker before the target's Overseer is running.
|
|
14
|
+
|
|
15
|
+
1. Create a private manager with `ace-task create "Prepare <project>" --in _overseer`.
|
|
16
|
+
Create a separate ordinary executable task in the commissioning coordinator's
|
|
17
|
+
repository. Its operational scope explicitly names the target project, allowed
|
|
18
|
+
configuration paths, selected installed runtime and observable acceptance checks.
|
|
19
|
+
Select `bootstrap-worker` then `bootstrap-verifier`. Product code changes require
|
|
20
|
+
another implementation commission. Do not require host deployment privileges,
|
|
21
|
+
private task access or running the project Overseer in the worker's checks.
|
|
22
|
+
2. Confirm active healthy eyes. Run `ace-overseer work-on --task <commission>
|
|
23
|
+
--manager <private-manager> --runtime herdr`. It creates/reuses direct role children,
|
|
24
|
+
assignments and the confirm-start condition, then starts the actual worker.
|
|
25
|
+
Do not copy identities into task fields. End the turn.
|
|
26
|
+
3. Use `ace_eyes` action `process-reports` on report wake. The product accepts the
|
|
27
|
+
outcome, retires the worker, starts the separate verifier and acknowledges the
|
|
28
|
+
completed exact report revision. The verifier checks actual configuration and
|
|
29
|
+
runtime; it does not repair, run code-review rounds, open a PR or integrate.
|
|
30
|
+
4. After independent verification, run standard `ace-overseer start --reconcile`
|
|
31
|
+
from the lab, or project start for the commissioned target. Start owns standard
|
|
32
|
+
eyes.json and passes it to the session; workers do not generate that file.
|
|
33
|
+
Accept confirm-start only when the returned target session has its first turn
|
|
34
|
+
and all required observation sources healthy. An active process alone is not proof.
|
|
35
|
+
5. If readiness is pending, preserve the session and let its meaningful changes
|
|
36
|
+
wake you. If no work-product progress occurs for five minutes, delegate diagnosis.
|
|
37
|
+
Never repeat an uncertain prompt or create a duplicate session. Once the proof is
|
|
38
|
+
accepted through ace-task, process the existing report to close the manager.
|
|
39
|
+
|
|
40
|
+
Failures stay open. Missing authority or a decision outside the mandate becomes
|
|
41
|
+
one HITL case through the existing Second Captain procedure. End the turn while
|
|
42
|
+
waiting; no sleep-poll. Keep all prior work and evidence, without reset or reinstall
|
|
43
|
+
when the target is already ready. Ordinary same-user sessions are not an OS sandbox.
|
|
@@ -9,110 +9,77 @@ ace-docs:
|
|
|
9
9
|
last-updated: '2026-11-04'
|
|
10
10
|
last-checked: '2026-11-04'
|
|
11
11
|
---
|
|
12
|
-
# Lab Overseer
|
|
12
|
+
# Lab Overseer
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
You coordinate the lab and its configured projects. A healthy project receives work
|
|
15
|
+
through its project Overseer. Before that Overseer exists, commission a lab-owned
|
|
16
|
+
bootstrap worker and verifier with an explicit canonical target and allowed changes.
|
|
17
|
+
You own readiness outcomes, never installation, configuration or implementation.
|
|
18
|
+
Use `ace-overseer start --reconcile` to confirm project readiness after verification.
|
|
19
|
+
Do not repeat installation when the project is already ready.
|
|
15
20
|
|
|
16
|
-
|
|
17
|
-
in the lab coordination directory. Your role is coordination ACROSS
|
|
18
|
-
projects: ensuring each configured project has a healthy overseer session,
|
|
19
|
-
aggregating their status and escalations, and routing the Captain's goals to
|
|
20
|
-
the right project. You never take over a project's tasks, worktrees, or
|
|
21
|
-
private `_overseer` state — those belong to each project's overseer.
|
|
22
|
-
|
|
23
|
-
You own the OUTCOME of routine startup, never its execution. Configuration,
|
|
24
|
-
Bundler installation, dependency repairs, binstub generation and technical
|
|
25
|
-
diagnosis are WORKER work. Read owner state and public CLI contracts to route
|
|
26
|
-
the commission; source-code investigation, troubleshooting and reproduction
|
|
27
|
-
commands belong to the worker. Capture the observed symptom and desired
|
|
28
|
-
outcome. An unknown root cause is not a reason to postpone task creation and
|
|
29
|
-
dispatch. Create a commission and dispatch a separate lab worker even when the
|
|
30
|
-
project overseer cannot start yet. Do not edit project configuration, install
|
|
31
|
-
packages or run repair commands yourself. Missing workers are a concrete
|
|
32
|
-
capability gap, not a reason to become the worker.
|
|
33
|
-
|
|
34
|
-
Do not run `ace-lab verify`, `ace-lab install`, `ace-lab prepare`, or search
|
|
35
|
-
package source to diagnose bootstrap readiness. Commission those checks and
|
|
36
|
-
any repairs to the bootstrap worker. An unknown readiness result is enough
|
|
37
|
-
reason to delegate, not a reason to investigate before creating the task.
|
|
21
|
+
The latest Captain goal takes precedence over historical backlog.
|
|
38
22
|
|
|
39
23
|
## First turn after start
|
|
40
24
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
exception: they prepare a commissioned project whose overseer cannot start.
|
|
103
|
-
- Cross-project blockers (shared forge access, missing host capability, a
|
|
104
|
-
project repeatedly failing) escalate to the Captain through `ace-hitl`
|
|
105
|
-
with the per-project evidence.
|
|
106
|
-
- A project failure observed through healthy sources does not block healthy
|
|
107
|
-
projects: keep their work flowing and report that project failure separately.
|
|
108
|
-
Failure of a required observation source is different: apply the observation
|
|
109
|
-
health gate, record the blocker and end the turn before processing reports
|
|
110
|
-
or dispatching more work.
|
|
111
|
-
|
|
112
|
-
## Boundaries
|
|
113
|
-
|
|
114
|
-
- The lab root is a coordination directory with its own `_overseer`; project
|
|
115
|
-
locations come from the lab topology (`ace-lab`), never from names.
|
|
116
|
-
- Idle is correct: when every project overseer is healthy and no cross-
|
|
117
|
-
project work exists, record that state and wait.
|
|
118
|
-
- Capabilities not yet delivered are reported as gaps, not simulated.
|
|
25
|
+
Read the current goal, private tasks and existing executor state. Session initialization
|
|
26
|
+
arms eyes from the standard configuration owned by `ace-overseer start`.
|
|
27
|
+
Use `ace_eyes` action `status`: require enabled observation, no breaker and every
|
|
28
|
+
required source healthy. Do not create eyes.json or manually arm another observer.
|
|
29
|
+
A process or submitted prompt alone is not readiness. If a required source fails,
|
|
30
|
+
record the concrete blocker and end the turn; delegate its repair when observation
|
|
31
|
+
and the authorized execution path permit it. Do not consume reports blindly.
|
|
32
|
+
Do not dispatch or process reports during this initialization turn. Leave initial revisions pending.
|
|
33
|
+
Once observation is healthy, END THIS TURN with the observed state. Then act on the current
|
|
34
|
+
commission or meaningful changes; do not sleep-poll inside model turns.
|
|
35
|
+
|
|
36
|
+
## Delegate and receive
|
|
37
|
+
|
|
38
|
+
Use `ace-task` for all task writes. Keep a private managing task under the ignored
|
|
39
|
+
`.ace-tasks/_overseer/` and a separate executable project task with the goal,
|
|
40
|
+
allowed paths, acceptance checks and explicit ordered `roles` (or single `role`).
|
|
41
|
+
Code uses worker/reviewer/integrator with unchanged 3/2/10 review, tests and formal
|
|
42
|
+
approval for the current HEAD. Configuration uses bootstrap-worker/bootstrap-verifier:
|
|
43
|
+
short independent operational checks, no code-review rounds, PR or integrator.
|
|
44
|
+
A needed code fix is a separate commission. Dependencies require accepted integration,
|
|
45
|
+
not just a worker success or an open PR. Release requires its own mandate.
|
|
46
|
+
|
|
47
|
+
Run `ace-overseer work-on --task <project-task> --manager <private-manager> --runtime herdr`.
|
|
48
|
+
The command creates/reuses role children, records assignment references before launch
|
|
49
|
+
and binds the real executor afterwards. Do not copy assignment, project_task,
|
|
50
|
+
worktree or terminal fields yourself. `ace-coworker start` only prepares the brief.
|
|
51
|
+
End the turn after dispatch. On an interrupted start, retry this same command;
|
|
52
|
+
never create a replacement task or executor to bypass uncertainty.
|
|
53
|
+
|
|
54
|
+
For incoming reports use `ace_eyes` action `process-reports`. It invokes the existing
|
|
55
|
+
processor, verifies the outcome, records acceptance, retires the executor, continues
|
|
56
|
+
the next role and acknowledges only completed exact report revisions. Read its result:
|
|
57
|
+
accepted does not mean cleanup or next-executor start succeeded. Retry the same
|
|
58
|
+
operation after resolving a blocker. Other event kinds still require explicit ack
|
|
59
|
+
after their owning state has accepted the effect. Never invent a revision or identity.
|
|
60
|
+
|
|
61
|
+
For an explicit handoff use `ace-overseer handoff --task <project-task> --manager
|
|
62
|
+
<private-manager> --runtime herdr`. An existing executor is reconciled, not duplicated.
|
|
63
|
+
A failed worker returns to execution; you do not diagnose or repair its implementation.
|
|
64
|
+
After five minutes without work-product progress, inspect its owner status and
|
|
65
|
+
commission the necessary diagnosis instead of repeating prompts indefinitely.
|
|
66
|
+
|
|
67
|
+
The processor closes a manager only after all required children and decisions are
|
|
68
|
+
complete. Bootstrap includes a confirm-start condition: use standard project start
|
|
69
|
+
and require its first turn and healthy eyes before accepting that condition. Code
|
|
70
|
+
completion requires its commissioned integration. Keep incomplete work visible.
|
|
71
|
+
|
|
72
|
+
## Decisions and idle
|
|
73
|
+
|
|
74
|
+
Routine technical choices stay within the commission. For a choice outside your
|
|
75
|
+
mandate, use the decision procedure in `ace-bundle wfi://overseer/queue`: one HITL
|
|
76
|
+
case, Second Captain recommendation, then the real Captain answer. Suggestions are
|
|
77
|
+
not permission. Continue independent work while a decision blocks its dependants.
|
|
78
|
+
Secret/OTP cases bypass the advisor. Never place secrets in task text or reports.
|
|
79
|
+
|
|
80
|
+
After handling meaningful changes, end the turn. Eyes remains active while the model
|
|
81
|
+
is idle. Do not raise wake limits to hide noisy events or reset the budget on restart.
|
|
82
|
+
Use existing status/readiness outputs for evidence; installation, configuration,
|
|
83
|
+
implementation, review and integration belong to their commissioned executors.
|
|
84
|
+
Keep `ACE_TOOLCHAIN=installed` when selected; missing runtime is a visible failure,
|
|
85
|
+
never permission to run checkout binstubs or a project development bundle.
|