ace-overseer 0.21.0 → 0.22.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/.ace-defaults/nav/protocols/skill-sources/ace-overseer.yml +0 -0
- data/CHANGELOG.md +13 -0
- data/LICENSE +0 -0
- data/Rakefile +0 -0
- data/docs/demo/ace-overseer-getting-started.gif +0 -0
- data/docs/demo/ace-overseer-getting-started.tape.yml +0 -0
- data/docs/demo/fixtures/README.md +0 -0
- data/docs/demo/fixtures/sample.txt +0 -0
- data/docs/getting-started.md +0 -0
- data/docs/handbook.md +6 -0
- data/handbook/skills/as-overseer/SKILL.md +0 -0
- data/handbook/workflow-instructions/overseer/configure-project.wf.md +36 -9
- data/handbook/workflow-instructions/overseer/maintain-continuation.wf.md +115 -0
- data/handbook/workflow-instructions/roles/lab-coordinator.wf.md +10 -3
- data/handbook/workflow-instructions/roles/project-overseer.wf.md +84 -5
- data/handbook/workflow-instructions/roles/second-commander.wf.md +5 -3
- data/lib/ace/overseer/atoms/preset_resolver.rb +0 -0
- data/lib/ace/overseer/atoms/repo_guard.rb +0 -0
- data/lib/ace/overseer/models/work_context.rb +0 -0
- data/lib/ace/overseer/molecules/assignment_launcher.rb +0 -0
- data/lib/ace/overseer/molecules/worktree_provisioner.rb +0 -0
- data/lib/ace/overseer/organisms/status_collector.rb +0 -0
- data/lib/ace/overseer/version.rb +1 -1
- metadata +13 -12
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 3913e2fb5bdc611dec02a5cb33fca48a5395e216a09ae477e4bb452e8e4ec3ef
|
|
4
|
+
data.tar.gz: fffdbb4d1b7cd1c28ad81595ce9bb064a23e8a7c708e1c693ccad7c1d54d99a1
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 979a9f3a8f9eff1155f458fa0c54112b01c234078a93f9e4c3eddc1b1b758b3608c30694ce9054b94b27c907cce0efd3fede25c37ba12e1ce85e1810f6820373
|
|
7
|
+
data.tar.gz: 4853d86cf0df5b06f3b5ed689ccd94483ea017c006836b358b1c805a337f85cccff266e353079766ac84bf4ffacb76508bf79f91ecf421429e57d145b6ab52d9
|
|
File without changes
|
data/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,19 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.22.0] - 2026-10-16
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- Package native continuation duties with ten-minute progress and hourly cleanup audits, exact session restoration, independent project progress and explicit unknown outcomes. Align role workflows with canonical Assign ownership and accepted-head review.
|
|
15
|
+
|
|
16
|
+
## [0.21.1] - 2026-10-14
|
|
17
|
+
|
|
18
|
+
### Changed
|
|
19
|
+
|
|
20
|
+
- Package the coordination-contract role-guide updates in the project-overseer and configure-project workflows: serial preparation and serial integration per delivery candidate, queue-item closure as reconciled merge receipt, release-batch lifecycle with separate publication authority, and overseer-owned close-on-accept for delegated panes and worktabs.
|
|
21
|
+
- Follow the ace-lab 0.6 producer line in the dependency manifest; no code or behavior change (constraint-only correction so the coordinated h8x graph resolves).
|
|
22
|
+
|
|
10
23
|
## [0.21.0] - 2026-10-12
|
|
11
24
|
|
|
12
25
|
### Added
|
data/LICENSE
CHANGED
|
File without changes
|
data/Rakefile
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
data/docs/getting-started.md
CHANGED
|
File without changes
|
data/docs/handbook.md
CHANGED
|
@@ -37,6 +37,12 @@ ace-docs:
|
|
|
37
37
|
- Purpose: resolve and review effective delivery presets, workflows, and decision guides, then apply repeatable project-local adaptation while preserving customization
|
|
38
38
|
- Output: per-asset `CREATED`, `UPDATED`, `KEPT`, or `BLOCKED` evidence plus a repeat-run zero-write check
|
|
39
39
|
|
|
40
|
+
### `wfi://overseer/maintain-continuation`
|
|
41
|
+
|
|
42
|
+
- Path: `handbook/workflow-instructions/overseer/maintain-continuation.wf.md`
|
|
43
|
+
- Purpose: bootstrap native 600-second progress and 3600-second cleanup duties, then restore the exact persisted session without duplicate registration
|
|
44
|
+
- Evidence: real model turn, persisted ace-wake entries, exact-session restart and consumed wake; Assign remains execution owner
|
|
45
|
+
|
|
40
46
|
## Related Documentation
|
|
41
47
|
|
|
42
48
|
- [Getting Started](getting-started.md)
|
|
File without changes
|
|
@@ -6,8 +6,8 @@ doc-type: workflow
|
|
|
6
6
|
title: Configure Project Delivery Supervision
|
|
7
7
|
purpose: Resolve and safely adapt project delivery supervision without replacing project policy or duplicating canonical work.
|
|
8
8
|
ace-docs:
|
|
9
|
-
last-updated: '2026-10-
|
|
10
|
-
last-checked: '2026-10-
|
|
9
|
+
last-updated: '2026-10-12'
|
|
10
|
+
last-checked: '2026-10-12'
|
|
11
11
|
---
|
|
12
12
|
|
|
13
13
|
# Configure Project Delivery Supervision
|
|
@@ -40,7 +40,7 @@ Read existing project-owned sources before proposing a change:
|
|
|
40
40
|
- Current task, Assign, review, release, and delivery records that already own work.
|
|
41
41
|
- Repository guidance such as `AGENTS.md`, architecture decisions, and delivery docs.
|
|
42
42
|
|
|
43
|
-
Resolve rather than infer protocol ownership. Run `ace-nav
|
|
43
|
+
Resolve rather than infer protocol ownership. Run `ace-nav resolve <URI> --why` followed by
|
|
44
44
|
`ace-nav resolve <URI>` for every applicable `wfi://` workflow and for
|
|
45
45
|
`guide://delivery-supervision`. Load resolved workflow content with `ace-bundle <URI>`.
|
|
46
46
|
If the expected project decision guide uses another registered URI, record that URI
|
|
@@ -87,21 +87,26 @@ contract. Preserve stronger project requirements. Require these minimum invarian
|
|
|
87
87
|
|
|
88
88
|
- Worker and implementation-parent terminal behavior remains PR-ready; delivery stays
|
|
89
89
|
a separate explicit decision scope.
|
|
90
|
-
- One canonical Assign tree and attempt/evidence ledger owns state.
|
|
91
|
-
journal, daemon, timer, or fabricated runtime context is introduced.
|
|
90
|
+
- One canonical Assign tree and attempt/evidence ledger owns state. Local objective queues contain goals, next actions, blockers and references only;
|
|
91
|
+
no duplicate execution state, journal, daemon, timer, or fabricated runtime context is introduced.
|
|
92
92
|
- Integration decisions record the ordered eligible set, selected entry, every
|
|
93
93
|
deferred entry with reason, actor, timestamp, evidence references, and policy/plan
|
|
94
94
|
revision. Completion order is never integration order.
|
|
95
95
|
- Dependency, candidate head, target head, evidence, authority, or transport movement
|
|
96
|
-
triggers a fresh decision.
|
|
97
|
-
|
|
96
|
+
triggers a fresh decision. Require an initial independent review and fresh relevant
|
|
97
|
+
tests. For every moved head, record a delta/context/risk assessment: executed content
|
|
98
|
+
identity may carry review across an identical rebase; minor safe corrections need
|
|
99
|
+
integrator reasoning/tests; material or uncertain changes need independent delta
|
|
100
|
+
review. Patch-id alone cannot carry review. Bind the accepted head to the server-side
|
|
101
|
+
merge guard, and keep formal forge approval distinct from the assessment.
|
|
98
102
|
- `WAIT(reference, next-check)` requires an existing durable operation reference and
|
|
99
103
|
exact reconciliation path. Missing provision is `BLOCKED(provision, owner)`.
|
|
100
104
|
Uncertain effects are reconciled through the original operation and never replayed
|
|
101
105
|
blindly.
|
|
102
106
|
- Release preparation binds the exact accepted source set, package versions, and
|
|
103
107
|
artifact digests. Later merges cannot enter an accepted cut silently. Publication
|
|
104
|
-
|
|
108
|
+
invokes the existing project-bound workflow through its separate authorized executor;
|
|
109
|
+
absent executable binding remains BLOCKED with its owner.
|
|
105
110
|
- Closure preserves evidence and work, positively proves no surviving writers, keeps
|
|
106
111
|
producer references and delivery tags discoverable, and closes only accepted scope.
|
|
107
112
|
Host-owned root effects remain referenced external operations.
|
|
@@ -147,11 +152,25 @@ The adaptation may select and specialize supervision behavior, but it does not g
|
|
|
147
152
|
permissions, does not publish, and does not exercise merge, deployment, installation,
|
|
148
153
|
or root authority.
|
|
149
154
|
|
|
155
|
+
Executable population rule (Captain lifecycle audit, 2026-10-12): project
|
|
156
|
+
adaptation must POPULATE an executable project-specific delivery template +
|
|
157
|
+
decision guide -- not prose placeholders -- and ACTUAL service/capability
|
|
158
|
+
checks: every configured service or command is verified to exist and run in
|
|
159
|
+
the project runtime (invoke its status/read-only path and record the
|
|
160
|
+
observed result; a configured-but-nonfunctional entry is `BLOCKED` with the
|
|
161
|
+
observed failure, never shipped as if working). Release and publication
|
|
162
|
+
REUSE the existing canonical skills as the execution mechanisms -- `as-release`,
|
|
163
|
+
`as-release-bump-version`, `as-release-rubygems-publish`,
|
|
164
|
+
`as-github-release-publish` -- the adaptation configures and binds them to
|
|
165
|
+
the project; it never duplicates or re-implements them. Workers stay
|
|
166
|
+
prepare-only (PR-ready terminal); publication remains the separately
|
|
167
|
+
authorized overseer step.
|
|
168
|
+
|
|
150
169
|
### 5. Verify resolution and repeatability
|
|
151
170
|
|
|
152
171
|
Repeat the complete source inventory after edits:
|
|
153
172
|
|
|
154
|
-
1. Run `ace-nav
|
|
173
|
+
1. Run `ace-nav resolve --why` and `ace-nav resolve` for every selected `wfi://` and
|
|
155
174
|
`guide://` URI.
|
|
156
175
|
2. Load every selected workflow with `ace-bundle` and verify it came from the intended
|
|
157
176
|
owner.
|
|
@@ -160,6 +179,10 @@ Repeat the complete source inventory after edits:
|
|
|
160
179
|
writes and no duplicate paths, steps, mappings, registrations, or task references.
|
|
161
180
|
5. Keep genuine unresolved policy or provisioning as `BLOCKED`; idempotence never
|
|
162
181
|
turns a blocker into assumed success.
|
|
182
|
+
6. For every configured service/command or bound release/publication skill,
|
|
183
|
+
execute its read-only/status path once and record the observed result as
|
|
184
|
+
executable evidence; a failed or missing executable is `BLOCKED` with the
|
|
185
|
+
exact failure and responsible owner.
|
|
163
186
|
|
|
164
187
|
## Required Report
|
|
165
188
|
|
|
@@ -195,6 +218,10 @@ installation, deployment, or root-operation gates separately from source adaptat
|
|
|
195
218
|
- The report names every concrete change and every unresolved blocker with its owner
|
|
196
219
|
and evidence; it claims no permission, publication, deployment, installation, or
|
|
197
220
|
host-owned root effect.
|
|
221
|
+
- The adapted delivery template and decision guide are executable (real steps,
|
|
222
|
+
bound release/publication skills, verified service/command checks) -- every
|
|
223
|
+
configured service or command has recorded observed-run evidence, and no
|
|
224
|
+
release/publication skill is duplicated or re-implemented.
|
|
198
225
|
|
|
199
226
|
## Error Handling
|
|
200
227
|
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: maintain-continuation
|
|
3
|
+
description: Bootstrap and resume native coordinator duties without duplicating execution.
|
|
4
|
+
doc-type: workflow
|
|
5
|
+
title: Maintain Coordinator Continuation
|
|
6
|
+
purpose: Own progress audits and cleanup through the existing in-process wake extension.
|
|
7
|
+
ace-docs:
|
|
8
|
+
last-updated: '2026-10-16'
|
|
9
|
+
last-checked: '2026-10-16'
|
|
10
|
+
---
|
|
11
|
+
# Maintain Coordinator Continuation
|
|
12
|
+
|
|
13
|
+
## Goal
|
|
14
|
+
|
|
15
|
+
Keep authorized project work advancing through native wakes and canonical Assign evidence across coordinator restarts.
|
|
16
|
+
|
|
17
|
+
## Prerequisites
|
|
18
|
+
|
|
19
|
+
Use the installed Pi ace-wake extension and the project's reviewed coordinator
|
|
20
|
+
role. The domain launcher owns process startup and its exact session path; ACE
|
|
21
|
+
owns the duty definitions below. A wake adds no execution or cleanup authority.
|
|
22
|
+
The selected runtime must load the reviewed package and effective project guide.
|
|
23
|
+
|
|
24
|
+
## Project Context Loading
|
|
25
|
+
|
|
26
|
+
Load the current role, effective `guide://project-delivery`, reviewed objectives,
|
|
27
|
+
and existing Assign, HITL and native runtime status. Resolve assets from the
|
|
28
|
+
selected installed bundle; source files or remembered versions do not prove
|
|
29
|
+
installation. Keep the objective queue's goal, next action, blocker and references
|
|
30
|
+
separate from Assign's execution ownership.
|
|
31
|
+
|
|
32
|
+
## High-Level Execution Plan
|
|
33
|
+
|
|
34
|
+
- Inspect the selected session and installed extension.
|
|
35
|
+
- Bootstrap duties only in a deliberately new coordinator session.
|
|
36
|
+
- Resume the exact existing session and verify its persisted subscriptions.
|
|
37
|
+
- Reconcile outcomes on each wake without repeating uncertain execution.
|
|
38
|
+
|
|
39
|
+
## Process Steps
|
|
40
|
+
|
|
41
|
+
### 1. Establish the native duties
|
|
42
|
+
|
|
43
|
+
For a deliberately NEW coordinator session, supply these two complete messages
|
|
44
|
+
to Pi's native command dispatcher before the role prompt. A supported launcher
|
|
45
|
+
may pass each as a separate positional initial message. They are Pi commands,
|
|
46
|
+
not shell commands or messages sent through the inbox/sendUserMessage API:
|
|
47
|
+
|
|
48
|
+
```text
|
|
49
|
+
/loop add progress-audit --interval 600 --message Run one bounded progress audit under wfi://overseer/maintain-continuation. Reconcile current project objectives with canonical Assign attempts, results and HITL decisions; continue the next authorized action using original references. Keep unknown outcomes open and do not repeat an uncertain effect.
|
|
50
|
+
/loop add lifecycle-cleanup --interval 3600 --message Run one bounded cleanup audit under wfi://overseer/maintain-continuation. Reconcile owned panes and worktrees with accepted Assign results and preserved work; use the existing cleanup owner only when its preservation and no-writer gates pass. Retain active or uncertain work.
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
Run one harmless model turn to persist the session. Verify the real session file
|
|
54
|
+
contains the extension's custom entries and `/loop list` reports one copy of each
|
|
55
|
+
duty with intervals 600 and 3600. A started process, successful prompt send or
|
|
56
|
+
in-memory definition alone is insufficient. Never synthesize session entries.
|
|
57
|
+
|
|
58
|
+
### 2. Resume without re-registering
|
|
59
|
+
|
|
60
|
+
Before stopping an idle coordinator, verify its current session ID and exact
|
|
61
|
+
persisted session file through the native runtime. Use the launcher's supported
|
|
62
|
+
exact-session resume (`--session` with that verified path in Pi). Do not use a
|
|
63
|
+
latest-session selector or create a new session with the old ID.
|
|
64
|
+
|
|
65
|
+
On resume, let ace-wake restore its existing session entries once. Do not replay
|
|
66
|
+
`/loop add`, reconstruct definitions from these defaults, or recreate deliberately
|
|
67
|
+
removed duties. Report the restored effective subscriptions, including deliberate
|
|
68
|
+
removals. No missed-tick replay, second timer service or alternate scheduler.
|
|
69
|
+
|
|
70
|
+
### 3. Audit progress every ten minutes
|
|
71
|
+
|
|
72
|
+
Inspect each selected project's objectives, canonical attempt state, native
|
|
73
|
+
liveness, pending review/integration and delivered HITL outcomes. Observe actual
|
|
74
|
+
process start and accepted results separately from dispatch acknowledgment.
|
|
75
|
+
Reuse the original assignment, attempt, request and mutation after a lost reply;
|
|
76
|
+
query/reconcile before any retry. An uncertain attempt retains its slot.
|
|
77
|
+
|
|
78
|
+
Update only the objective's next action, blocker and evidence references. Advance
|
|
79
|
+
one serial integration candidate after the previous canonical result; do not
|
|
80
|
+
rebase the entire queue. A blocked project must not prevent an independently
|
|
81
|
+
authorized project from progressing. Report meaningful changes or required human
|
|
82
|
+
action through the existing authorized project route; unchanged state stays quiet.
|
|
83
|
+
|
|
84
|
+
### 4. Audit cleanup every hour
|
|
85
|
+
|
|
86
|
+
Reconcile exact pane/session/assignment/attempt identities. Close an owned pane
|
|
87
|
+
only after its result is accepted and work is durably preserved; close its tab
|
|
88
|
+
when that was its last pane. Worktree removal separately requires the existing
|
|
89
|
+
preservation and no-writer checks, including commits and valuable untracked files.
|
|
90
|
+
Use the existing cleanup owner's preview and accepted operation. Do not infer
|
|
91
|
+
permission from apparent idleness, a disappeared process or a closed pane.
|
|
92
|
+
|
|
93
|
+
### 5. Maintain project watches
|
|
94
|
+
|
|
95
|
+
When continuation depends on a known local queue or result path, register a named
|
|
96
|
+
`/watch add NAME --path PATH --message TEXT` through the same native dispatcher.
|
|
97
|
+
Use the exact selected project's path and reconcile actual canonical state when
|
|
98
|
+
woken. Watches are hints, not execution receipts. Persist and resume them through
|
|
99
|
+
the same session mechanism; do not create an external poller to replace them.
|
|
100
|
+
|
|
101
|
+
## Success Criteria
|
|
102
|
+
|
|
103
|
+
- The installed native session persists and restores each effective duty once.
|
|
104
|
+
- A real wake is consumed by the original session and produces an attributable audit.
|
|
105
|
+
- Repeated wakes and lost replies do not launch a second execution.
|
|
106
|
+
- Active or uncertain work remains preserved; cleanup uses its existing owner.
|
|
107
|
+
- Independent project progress and user conversation remain responsive.
|
|
108
|
+
|
|
109
|
+
## Error Handling
|
|
110
|
+
|
|
111
|
+
Missing extension, unresolved effective guide, unavailable canonical state or a
|
|
112
|
+
mismatched session is an explicit blocker. Preserve the original references and
|
|
113
|
+
session file; do not manufacture subscriptions, silently change harness/model or
|
|
114
|
+
claim that a dead process will wake itself. Use the existing domain lifecycle
|
|
115
|
+
owner for a controlled restart and verify the resulting native session.
|
|
@@ -29,6 +29,11 @@ state, applicable scoped service grants, and existing HITL proposal history.
|
|
|
29
29
|
Use `ace-task show TASK` and the installed public status/history interfaces for
|
|
30
30
|
the actual selected project. Do not treat remembered status as current evidence.
|
|
31
31
|
|
|
32
|
+
For native progress and cleanup duties, follow
|
|
33
|
+
`wfi://overseer/maintain-continuation`: bootstrap 600-second progress and
|
|
34
|
+
3600-second cleanup loops in a new session, then resume its exact persisted
|
|
35
|
+
session without re-adding definitions. Verify real wake consumption and results.
|
|
36
|
+
|
|
32
37
|
## High-Level Execution Plan
|
|
33
38
|
|
|
34
39
|
- [ ] Reconcile current scope, existing executions and proposals.
|
|
@@ -75,9 +80,11 @@ the actual selected project. Do not treat remembered status as current evidence.
|
|
|
75
80
|
|
|
76
81
|
## Shared Decision and Responsiveness Contract
|
|
77
82
|
|
|
78
|
-
Confirmed Hermes delivery starts the sixteen-hour proposal window
|
|
79
|
-
|
|
80
|
-
|
|
83
|
+
Confirmed Hermes delivery starts the sixteen-hour proposal window only for a
|
|
84
|
+
project/operation class delegated before proposal creation. The existing HITL
|
|
85
|
+
owner must recheck that grant during healthy, drained reconciliation; revocation
|
|
86
|
+
or a missing prior delegation prevents silent approval. Elapsed time alone never
|
|
87
|
+
authorizes a decision. Preserve approve/veto/clarify and revised/superseded history.
|
|
81
88
|
A stalled resolver is deferred visibly; keep status and conversation usable and
|
|
82
89
|
coalesce wakes through the existing bounded tick owner. Never wait for long
|
|
83
90
|
implementation or review in the conversation handler. Selecting a role adds no
|
|
@@ -5,8 +5,8 @@ doc-type: workflow
|
|
|
5
5
|
title: Coordinate Project Work
|
|
6
6
|
purpose: Canonical project-overseer role charter for scoped ACE orchestration.
|
|
7
7
|
ace-docs:
|
|
8
|
-
last-updated: '2026-10-
|
|
9
|
-
last-checked: '2026-10-
|
|
8
|
+
last-updated: '2026-10-14'
|
|
9
|
+
last-checked: '2026-10-14'
|
|
10
10
|
---
|
|
11
11
|
# Coordinate Project Work
|
|
12
12
|
|
|
@@ -29,6 +29,11 @@ state, applicable scoped service grants, and existing HITL proposal history.
|
|
|
29
29
|
Use `ace-task show TASK` and the installed public status/history interfaces for
|
|
30
30
|
the actual selected project. Do not treat remembered status as current evidence.
|
|
31
31
|
|
|
32
|
+
For native progress and cleanup duties, follow
|
|
33
|
+
`wfi://overseer/maintain-continuation`: bootstrap 600-second progress and
|
|
34
|
+
3600-second cleanup loops in a new session, then resume its exact persisted
|
|
35
|
+
session without re-adding definitions. Verify real wake consumption and results.
|
|
36
|
+
|
|
32
37
|
## High-Level Execution Plan
|
|
33
38
|
|
|
34
39
|
- [ ] Reconcile current scope, existing executions and proposals.
|
|
@@ -50,6 +55,14 @@ the actual selected project. Do not treat remembered status as current evidence.
|
|
|
50
55
|
effects. After a lost reply, inspect those identities without repeating the
|
|
51
56
|
launch. Automatic selection advances only after attributable zero-effect
|
|
52
57
|
refusal before registration; explicit mapping selection never substitutes.
|
|
58
|
+
Launch defaults (Captain, 2026-10-12): workers run Pi `zai/glm-5.3-flash:high`;
|
|
59
|
+
independent reviewers run Pi `zai/glm-5.3:high` under their own separate agent
|
|
60
|
+
identity. Codex or any other harness is NOT a default or silent fallback and
|
|
61
|
+
requires an explicit Captain exception. Selection precedence: Captain policy
|
|
62
|
+
defaults > project launch overrides > explicit Captain exception. Every
|
|
63
|
+
dispatch receipt records the ACTUAL harness, provider/model (incl. thinking
|
|
64
|
+
level) and agent/pane/session; a documented default without a matching actual
|
|
65
|
+
launch violates this policy.
|
|
53
66
|
3. Keep conversation available while delegates work. On each wake, inspect the
|
|
54
67
|
task queue, canonical execution evidence and scoped HITL proposal/callback
|
|
55
68
|
state. Report unavailable observations and deferred resolution explicitly;
|
|
@@ -77,11 +90,77 @@ the actual selected project. Do not treat remembered status as current evidence.
|
|
|
77
90
|
scope, missing evidence and requested decision. Preserve failed callbacks;
|
|
78
91
|
unavailable delivery is not a policy refusal or successful handoff.
|
|
79
92
|
|
|
93
|
+
## Integration Coordination Contract
|
|
94
|
+
|
|
95
|
+
Every integration invocation — native integrate command, service call or
|
|
96
|
+
assignment integration step — resolves FRESH repository, PR, candidate exact
|
|
97
|
+
head, target base/head, review/test evidence, dependencies and the authorized
|
|
98
|
+
executor before any mutation, and rechecks target/head immediately before the
|
|
99
|
+
mutation. A detected race invalidates eligibility for that invocation.
|
|
100
|
+
|
|
101
|
+
If the target (current main) is NOT an ancestor of the candidate head, the
|
|
102
|
+
integration MUST NOT merge and MUST NOT silently rewrite: it returns an
|
|
103
|
+
actionable typed `needs-rebase` outcome to the queue owner. The queue owner
|
|
104
|
+
then delegates `wfi://git/rebase` (as-git-rebase, including CHANGELOG
|
|
105
|
+
preservation) in the candidate's ISOLATED worktree, obtains new exact-head
|
|
106
|
+
checks and a recorded assessment of the head change, updates the PR,
|
|
107
|
+
verifies remote candidate identity and resubmits. A common old base does NOT
|
|
108
|
+
make sibling heads sequentially fast-forwardable.
|
|
109
|
+
|
|
110
|
+
The low-level privileged integrator ENFORCES gates and returns typed outcomes
|
|
111
|
+
(`merged` / `needs-rebase` / `blocked` / `uncertain`); it never authors,
|
|
112
|
+
rebases or reviews its own candidate. Relay alone is not execution — the queue
|
|
113
|
+
owner monitors until receipt and continuation. An `uncertain` outcome triggers
|
|
114
|
+
reconciliation against the original durable reference, never blind retry.
|
|
115
|
+
|
|
116
|
+
The project overseer continuously owns and watches the integration queue.
|
|
117
|
+
States `ready` / `needs-rebase` / `reviewing` / `integrating` / `merged` /
|
|
118
|
+
`blocked` / `uncertain` reconcile against actual forge/process receipts; a
|
|
119
|
+
persisted queue adopts on restart without duplicate execution; worker PR-ready
|
|
120
|
+
remains distinct from delivery done. Use the existing goal/wake/watch
|
|
121
|
+
primitives — no new heartbeat service or alternate scheduler.
|
|
122
|
+
|
|
123
|
+
Integration is serial in PREPARATION as well as in effect — not merely a
|
|
124
|
+
serial merge. The accepted receipt for one candidate causes preparation of
|
|
125
|
+
ONLY the next selected candidate — never a mass rebase of the remaining
|
|
126
|
+
queue. Each candidate, on its turn, runs the full cycle: resolve fresh
|
|
127
|
+
target main; delegate `wfi://git/rebase` in that candidate's isolated
|
|
128
|
+
worktree IF the target moved; run the applicable checks; retain the initial independent review and record an assessment of the new head;
|
|
129
|
+
carry acceptance only with executed evidence of an identical rebase; obtain an
|
|
130
|
+
independent delta review for material or uncertain changes, including security
|
|
131
|
+
changes; verify the remote PR head/base; issue ONE scoped integrator
|
|
132
|
+
request; wait/reconcile the actual integration receipt; refresh main; then
|
|
133
|
+
select and prepare ONLY the next candidate. Queued later PRs keep their
|
|
134
|
+
existing branches and heads untouched until their turn, and prior batch work
|
|
135
|
+
is never rolled back or reset.
|
|
136
|
+
|
|
137
|
+
Pane and worktab lifecycle is OVERSEER-OWNED cleanup duty — not user or host
|
|
138
|
+
babysitting: the project overseer cleans up its own worker/reviewer panes and
|
|
139
|
+
worktabs as a lifecycle duty; the Lab coordinator owns only its own
|
|
140
|
+
coordination panes/routes. CLOSE-ON-ACCEPT: close an accepted work pane — and
|
|
141
|
+
close the tab when that was its last pane; keep at most 4 panes per tab; and
|
|
142
|
+
never hold an idle tab merely reserved for pending work. The closure gate
|
|
143
|
+
binds to identity and ACTUAL state, never to visual idleness: reconcile the
|
|
144
|
+
exact pane/session/assignment/attempt identity and the actual process state;
|
|
145
|
+
close only after the result is ACCEPTED and the work/evidence is durably
|
|
146
|
+
preserved; never close an active or uncertain attempt merely because it looks
|
|
147
|
+
idle. Review-completed MAY allow pane closure while the PR still waits for
|
|
148
|
+
merge — the review record persists; WORKTREE cleanup is SEPARATE and happens
|
|
149
|
+
only when the preservation/delivery criteria are met. Each wake and restart
|
|
150
|
+
runs a BOUNDED reconcile pass that reports orphan/stale pane/session IDs — it
|
|
151
|
+
never blind-closes.
|
|
152
|
+
|
|
153
|
+
Hard prohibitions: never push directly to main; never switch the canonical
|
|
154
|
+
checkout to a topic branch; never reuse a stale review as approval for a
|
|
155
|
+
different or moved head without the recorded assessment and required evidence.
|
|
156
|
+
|
|
80
157
|
## Shared Decision and Responsiveness Contract
|
|
81
158
|
|
|
82
|
-
Confirmed Hermes delivery starts the sixteen-hour proposal window
|
|
83
|
-
|
|
84
|
-
|
|
159
|
+
Confirmed Hermes delivery starts the sixteen-hour proposal window only for a
|
|
160
|
+
project/operation class delegated before proposal creation. The existing HITL
|
|
161
|
+
owner must recheck that grant during healthy, drained reconciliation; revocation
|
|
162
|
+
or a missing prior delegation prevents silent approval. Elapsed time alone never
|
|
163
|
+
authorizes a decision. Preserve approve/veto/clarify and revised/superseded history.
|
|
85
164
|
A stalled resolver is deferred visibly; keep status and conversation usable and
|
|
86
165
|
coalesce wakes through the existing bounded tick owner. Never wait for long
|
|
87
166
|
implementation or review in the conversation handler. Selecting a role adds no
|
|
@@ -69,9 +69,11 @@ the actual selected project. Do not treat remembered status as current evidence.
|
|
|
69
69
|
|
|
70
70
|
## Shared Decision and Responsiveness Contract
|
|
71
71
|
|
|
72
|
-
Confirmed Hermes delivery starts the sixteen-hour proposal window
|
|
73
|
-
|
|
74
|
-
|
|
72
|
+
Confirmed Hermes delivery starts the sixteen-hour proposal window only for a
|
|
73
|
+
project/operation class delegated before proposal creation. The existing HITL
|
|
74
|
+
owner must recheck that grant during healthy, drained reconciliation; revocation
|
|
75
|
+
or a missing prior delegation prevents silent approval. Elapsed time alone never
|
|
76
|
+
authorizes a decision. Preserve approve/veto/clarify and revised/superseded history.
|
|
75
77
|
A stalled resolver is deferred visibly; keep status and conversation usable and
|
|
76
78
|
coalesce wakes through the existing bounded tick owner. Never wait for long
|
|
77
79
|
implementation or review in the conversation handler. Selecting a role adds no
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
data/lib/ace/overseer/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: ace-overseer
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.22.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Michal Czyz
|
|
8
8
|
bindir: exe
|
|
9
9
|
cert_chain: []
|
|
10
|
-
date: 2026-10-
|
|
10
|
+
date: 2026-10-16 00:00:00.000000000 Z
|
|
11
11
|
dependencies:
|
|
12
12
|
- !ruby/object:Gem::Dependency
|
|
13
13
|
name: ace-support-cli
|
|
@@ -71,14 +71,14 @@ dependencies:
|
|
|
71
71
|
requirements:
|
|
72
72
|
- - "~>"
|
|
73
73
|
- !ruby/object:Gem::Version
|
|
74
|
-
version: '0.
|
|
74
|
+
version: '0.70'
|
|
75
75
|
type: :runtime
|
|
76
76
|
prerelease: false
|
|
77
77
|
version_requirements: !ruby/object:Gem::Requirement
|
|
78
78
|
requirements:
|
|
79
79
|
- - "~>"
|
|
80
80
|
- !ruby/object:Gem::Version
|
|
81
|
-
version: '0.
|
|
81
|
+
version: '0.70'
|
|
82
82
|
- !ruby/object:Gem::Dependency
|
|
83
83
|
name: ace-git
|
|
84
84
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -113,14 +113,14 @@ dependencies:
|
|
|
113
113
|
requirements:
|
|
114
114
|
- - "~>"
|
|
115
115
|
- !ruby/object:Gem::Version
|
|
116
|
-
version: '0.
|
|
116
|
+
version: '0.40'
|
|
117
117
|
type: :runtime
|
|
118
118
|
prerelease: false
|
|
119
119
|
version_requirements: !ruby/object:Gem::Requirement
|
|
120
120
|
requirements:
|
|
121
121
|
- - "~>"
|
|
122
122
|
- !ruby/object:Gem::Version
|
|
123
|
-
version: '0.
|
|
123
|
+
version: '0.40'
|
|
124
124
|
- !ruby/object:Gem::Dependency
|
|
125
125
|
name: ace-runtime
|
|
126
126
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -155,42 +155,42 @@ dependencies:
|
|
|
155
155
|
requirements:
|
|
156
156
|
- - "~>"
|
|
157
157
|
- !ruby/object:Gem::Version
|
|
158
|
-
version: 0.
|
|
158
|
+
version: '0.6'
|
|
159
159
|
type: :runtime
|
|
160
160
|
prerelease: false
|
|
161
161
|
version_requirements: !ruby/object:Gem::Requirement
|
|
162
162
|
requirements:
|
|
163
163
|
- - "~>"
|
|
164
164
|
- !ruby/object:Gem::Version
|
|
165
|
-
version: 0.
|
|
165
|
+
version: '0.6'
|
|
166
166
|
- !ruby/object:Gem::Dependency
|
|
167
167
|
name: ace-lab
|
|
168
168
|
requirement: !ruby/object:Gem::Requirement
|
|
169
169
|
requirements:
|
|
170
170
|
- - "~>"
|
|
171
171
|
- !ruby/object:Gem::Version
|
|
172
|
-
version: 0.
|
|
172
|
+
version: '0.8'
|
|
173
173
|
type: :runtime
|
|
174
174
|
prerelease: false
|
|
175
175
|
version_requirements: !ruby/object:Gem::Requirement
|
|
176
176
|
requirements:
|
|
177
177
|
- - "~>"
|
|
178
178
|
- !ruby/object:Gem::Version
|
|
179
|
-
version: 0.
|
|
179
|
+
version: '0.8'
|
|
180
180
|
- !ruby/object:Gem::Dependency
|
|
181
181
|
name: ace-review
|
|
182
182
|
requirement: !ruby/object:Gem::Requirement
|
|
183
183
|
requirements:
|
|
184
184
|
- - "~>"
|
|
185
185
|
- !ruby/object:Gem::Version
|
|
186
|
-
version: 0.60.
|
|
186
|
+
version: 0.60.3
|
|
187
187
|
type: :runtime
|
|
188
188
|
prerelease: false
|
|
189
189
|
version_requirements: !ruby/object:Gem::Requirement
|
|
190
190
|
requirements:
|
|
191
191
|
- - "~>"
|
|
192
192
|
- !ruby/object:Gem::Version
|
|
193
|
-
version: 0.60.
|
|
193
|
+
version: 0.60.3
|
|
194
194
|
- !ruby/object:Gem::Dependency
|
|
195
195
|
name: ace-support-test-helpers
|
|
196
196
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -275,6 +275,7 @@ files:
|
|
|
275
275
|
- handbook/skills/as-overseer/SKILL.md
|
|
276
276
|
- handbook/workflow-instructions/overseer.wf.md
|
|
277
277
|
- handbook/workflow-instructions/overseer/configure-project.wf.md
|
|
278
|
+
- handbook/workflow-instructions/overseer/maintain-continuation.wf.md
|
|
278
279
|
- handbook/workflow-instructions/roles/lab-coordinator.wf.md
|
|
279
280
|
- handbook/workflow-instructions/roles/project-overseer.wf.md
|
|
280
281
|
- handbook/workflow-instructions/roles/second-commander.wf.md
|