ace-overseer 0.15.6 → 0.16.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
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 9f1239c62289b213199cac3a316f72301a82477c6d688a70d991eea76880f2cc
|
|
4
|
+
data.tar.gz: 4b847ed09a40f56ad43fc52b74db62325230f8c2cd393f2a175491fe21fd262f
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 6babe8200aa8f1c2275218d038dc6764a1d64e2af1a252659a38f0445ffd1c8bacfd23be81ae62c99eb22b37be34577a30fa4dc1ec2532a8a995d0c4339b4518
|
|
7
|
+
data.tar.gz: 668e65a1f12a922b02f1884d1e51eaec6aaf3bfd8fe5647911b1731ce51d4070dab43e79a98069ae8b93ef9fb7c357d168bc05d9af905cd1bbaa070d91f15812
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
---
|
|
2
|
+
# WFI Sources Protocol Configuration for ace-overseer gem
|
|
3
|
+
# This enables workflow discovery from the installed ace-overseer gem
|
|
4
|
+
|
|
5
|
+
name: ace-overseer
|
|
6
|
+
type: gem
|
|
7
|
+
description: Overseer workflow instructions from ace-overseer gem
|
|
8
|
+
priority: 10
|
|
9
|
+
|
|
10
|
+
config:
|
|
11
|
+
relative_path: handbook/workflow-instructions
|
|
12
|
+
pattern: "*.wf.md"
|
|
13
|
+
enabled: true
|
data/CHANGELOG.md
CHANGED
|
@@ -14,6 +14,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
14
14
|
- Kept tmux as the default runtime while allowing `work-on`, `status`, and dry-run `prune` to delegate through the system-owned `/usr/local/bin/lab` boundary.
|
|
15
15
|
|
|
16
16
|
|
|
17
|
+
## [0.16.0] - 2026-09-20
|
|
18
|
+
|
|
19
|
+
### Added
|
|
20
|
+
- Shipped the overseer lifecycle workflow so `wfi://overseer` resolves for gem consumers: the gem now registers `.ace-defaults/nav/protocols/wfi-sources/ace-overseer.yml` (ace-hitl pattern) and ships real workflow instructions for `work-on`, `status`, and `prune` in `handbook/workflow-instructions/overseer.wf.md`, with prune-safety and status-truth executed-check contracts as first-class non-negotiable steps.
|
|
21
|
+
- Added a packaging test proving the built gem ships both the workflow-instructions payload and the wfi source registration so a future gemspec glob change cannot silently drop them.
|
|
22
|
+
|
|
17
23
|
## [0.15.6] - 2026-09-02
|
|
18
24
|
|
|
19
25
|
### Technical
|
|
@@ -1,16 +1,126 @@
|
|
|
1
1
|
---
|
|
2
|
+
name: overseer-workflow
|
|
3
|
+
description: Orchestrate task worktrees with ace-overseer (work-on, status, prune) under binding prune-safety and status-truth executed-check contracts
|
|
4
|
+
allowed-tools: Bash, Read
|
|
2
5
|
doc-type: workflow
|
|
3
6
|
title: Overseer Workflow
|
|
4
|
-
purpose: overseer
|
|
7
|
+
purpose: Binding process contract for the overseer lifecycle (work-on, status, prune) with executed-check contracts for prune safety and status truth.
|
|
5
8
|
ace-docs:
|
|
6
|
-
last-updated: 2026-
|
|
7
|
-
last-checked: 2026-
|
|
9
|
+
last-updated: '2026-09-20'
|
|
10
|
+
last-checked: '2026-09-20'
|
|
8
11
|
---
|
|
9
12
|
|
|
10
13
|
# Overseer Workflow
|
|
11
14
|
|
|
15
|
+
## Goal
|
|
16
|
+
|
|
17
|
+
Orchestrate task worktrees with `ace-overseer` (work-on, status, prune) as the
|
|
18
|
+
binding process contract. Two executed-check contracts in this workflow are
|
|
19
|
+
non-negotiable: **prune safety** and **status truth**. They exist because a
|
|
20
|
+
described or remembered check is how worktrees and commits get silently
|
|
21
|
+
destroyed and stale blockers masquerade as state. Every step below is executed,
|
|
22
|
+
never assumed.
|
|
23
|
+
|
|
12
24
|
## Instructions
|
|
13
25
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
26
|
+
Run the loaded workflow as the source of truth and execute it end-to-end
|
|
27
|
+
instead of only summarizing it.
|
|
28
|
+
|
|
29
|
+
### 1) Work-on: start focused task work
|
|
30
|
+
|
|
31
|
+
Provision a worktree, open a tmux window, and prepare the assignment:
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
ace-overseer work-on --task <task-ref>
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
- Repeatable/comma-separated refs fan out into the same batch: `ace-overseer work-on --task 230 --task 231,232`
|
|
38
|
+
- Optional preset: `ace-overseer work-on --task <task-ref> --preset <preset-name>`
|
|
39
|
+
- After launch, switch to the tmux window and run `/ace-assign-drive`.
|
|
40
|
+
- 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.
|
|
41
|
+
|
|
42
|
+
Never improvise worktree provisioning by hand when `work-on` exists; ad-hoc
|
|
43
|
+
worktrees bypass the assignment lifecycle that `status` and `prune` rely on.
|
|
44
|
+
|
|
45
|
+
### 2) Status: inspect active worktrees
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
ace-overseer status # table dashboard
|
|
49
|
+
ace-overseer status --format json # machine-readable snapshot
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Lab runtime: `ace-overseer status --runtime lab [--project <project>]` (no
|
|
53
|
+
`--watch`; continuous status lives in each project Herdr session).
|
|
54
|
+
|
|
55
|
+
#### Status truth (non-negotiable executed check)
|
|
56
|
+
|
|
57
|
+
Recorded blockers are **claims, not state**. During any status review:
|
|
58
|
+
|
|
59
|
+
1. For each pending owner-blocked task, look for an executable non-secret
|
|
60
|
+
check that can confirm or refute the blocker, and run it when one exists.
|
|
61
|
+
2. Close or correct stale tasks **in the same change** -- do not accept a
|
|
62
|
+
recorded blocker as state and do not defer the correction to a later pass.
|
|
63
|
+
3. Report what you executed (command + observed output) as the evidence for
|
|
64
|
+
each kept or closed blocker. A described or remembered check is never
|
|
65
|
+
sufficient.
|
|
66
|
+
|
|
67
|
+
### 3) Prune: remove finished worktrees safely
|
|
68
|
+
|
|
69
|
+
Always preview before destructive cleanup:
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
ace-overseer prune --dry-run
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
Then apply only when confirmed:
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
ace-overseer prune --yes
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
- Targeted: `ace-overseer prune <task-ref|folder>...` or `ace-overseer prune --assignment <assignment-id>`
|
|
82
|
+
- Lab runtime: `ace-overseer prune <work-id>... --runtime lab --dry-run`, rerun with `--yes` to delegate each destruction to Lab.
|
|
83
|
+
|
|
84
|
+
#### Prune safety (non-negotiable executed check)
|
|
85
|
+
|
|
86
|
+
Prune/removal of a worktree or branch happens **only after an executed
|
|
87
|
+
preservation proof** for every commit that would be removed:
|
|
88
|
+
|
|
89
|
+
1. Prove the work is already merged into its base:
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
git merge-base --is-ancestor <work-head> <base>
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
Exit code 0 proves every commit on the work branch is contained in the base.
|
|
96
|
+
|
|
97
|
+
2. If the work was migrated elsewhere (squash-merge, cherry-pick, hand-off),
|
|
98
|
+
prove the copy exists with a subject-level search in the successor
|
|
99
|
+
repository:
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
git -C <successor-repo> log --all --grep "<subject>"
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
The search must return the commit(s) carrying the work. No output means no
|
|
106
|
+
proof.
|
|
107
|
+
|
|
108
|
+
3. A described or remembered proof is never sufficient -- run the command and
|
|
109
|
+
observe the result in this session.
|
|
110
|
+
|
|
111
|
+
4. Any commit without a proven copy **blocks the prune** for that worktree.
|
|
112
|
+
Report the blocked candidate (ref, head SHA, missing proof) to the operator;
|
|
113
|
+
never silently drop it and never force past a failed proof.
|
|
114
|
+
|
|
115
|
+
## Non-Negotiable Contracts Summary
|
|
116
|
+
|
|
117
|
+
| Contract | Claim | Executed proof |
|
|
118
|
+
|--------------|-----------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
|
119
|
+
| Prune safety | "The work is preserved" | `git merge-base --is-ancestor <work-head> <base>` (rc=0), or `git -C <successor-repo> log --all --grep "<subject>"` returning the migrated commit |
|
|
120
|
+
| 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 |
|
|
121
|
+
|
|
122
|
+
## Success Criteria
|
|
123
|
+
|
|
124
|
+
- Work starts only through `ace-overseer work-on` (or the Lab-runtime equivalent), never through ad-hoc manual worktree provisioning.
|
|
125
|
+
- Every status review re-verified pending owner-blocked tasks with an executed check and corrected stale state in the same change.
|
|
126
|
+
- Every pruned worktree/branch had an executed preservation proof; candidates without proof were reported as blocked, not removed.
|
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.16.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Michal Czyz
|
|
8
8
|
bindir: exe
|
|
9
9
|
cert_chain: []
|
|
10
|
-
date: 2026-09-
|
|
10
|
+
date: 2026-09-22 00:00:00.000000000 Z
|
|
11
11
|
dependencies:
|
|
12
12
|
- !ruby/object:Gem::Dependency
|
|
13
13
|
name: ace-support-cli
|
|
@@ -201,6 +201,7 @@ extensions: []
|
|
|
201
201
|
extra_rdoc_files: []
|
|
202
202
|
files:
|
|
203
203
|
- ".ace-defaults/nav/protocols/skill-sources/ace-overseer.yml"
|
|
204
|
+
- ".ace-defaults/nav/protocols/wfi-sources/ace-overseer.yml"
|
|
204
205
|
- ".ace-defaults/overseer/config.yml"
|
|
205
206
|
- CHANGELOG.md
|
|
206
207
|
- LICENSE
|