owlrunkit 0.19.2 → 0.20.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.
- package/CHANGELOG.md +15 -0
- package/README.md +38 -5
- package/docs/architecture/OWLCODA_RUNKIT_020_TEAM_DELIVERY_PHASE1_PRODUCT_DECISION_20260813.md +296 -0
- package/integrations/codex/skills/owlcoda-runkit/SKILL.md +28 -6
- package/integrations/codex/skills/owlcoda-runkit/assets/templates/config.json +3 -3
- package/package.json +1 -1
- package/packages/attest/distribution-manifest-v1.json +5 -0
- package/packages/attest/src/quick.mjs +5 -0
- package/registry-release-policy-v1.json +5 -5
- package/sbom.spdx.json +4 -4
- package/scripts/runkit-contract/core-contract.mjs +8 -1
- package/scripts/runkit-contract/formal-workflow.mjs +1 -1
- package/scripts/runkit-contract/project-cli-resolver.mjs +4 -1
- package/scripts/runkit-contract/runkit-cli.mjs +80 -3
- package/scripts/runkit-contract/schemas/candidate-transfer-packet-v1.schema.json +98 -0
- package/scripts/runkit-contract/schemas/team-acceptance-packet-v2.schema.json +109 -0
- package/scripts/runkit-contract/schemas/team-delivery-status-v1.schema.json +72 -0
- package/scripts/runkit-contract/schemas/team-packet-validation-v1.schema.json +33 -0
- package/scripts/runkit-contract/schemas/team-recommendation-v1.schema.json +121 -0
- package/scripts/runkit-contract/schemas/team-task-packet-v2.schema.json +228 -0
- package/scripts/runkit-contract/team-delivery.mjs +906 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.20.0
|
|
4
|
+
|
|
5
|
+
- Adds read-only `team recommend` and `team status` projections over the
|
|
6
|
+
existing Project Driver. Ordinary single-owner work remains off; real
|
|
7
|
+
multi-lane coordination, owned-path conflicts, independent verification, and
|
|
8
|
+
owner transitions are explained without persisting a second task graph.
|
|
9
|
+
- Publishes strict TeamTaskPacket V2, TeamAcceptancePacket V2, and
|
|
10
|
+
CandidateTransferPacket V1 contracts plus `team packet validate`. Project
|
|
11
|
+
bindings, exact WorkItem ownership, model-family independence, candidate
|
|
12
|
+
identity, handoff ACK, false-authority fields, and duplicate JSON keys fail
|
|
13
|
+
closed.
|
|
14
|
+
- Keeps Team Delivery orthogonal to continuity and assurance. This phase does
|
|
15
|
+
not dispatch Agents, rank providers, federate vendor CLIs, grant authority,
|
|
16
|
+
or turn multi-Agent coordination into Formal Delivery.
|
|
17
|
+
|
|
3
18
|
## 0.19.2
|
|
4
19
|
|
|
5
20
|
- Adds read-only `formal preflight` and reuses it before an envelope-backed
|
package/README.md
CHANGED
|
@@ -67,6 +67,17 @@ Independent verification requires a different assigned Agent. Append-only
|
|
|
67
67
|
scope revision can widen or narrow a WorkItem after diagnosis without rewriting
|
|
68
68
|
history, and missing Quick/Formal receipt references remain visible warnings.
|
|
69
69
|
|
|
70
|
+
RunKit 0.20.0 Phase 1 adds Team Delivery as a read-only coordination dimension
|
|
71
|
+
over the existing Project Driver. `team recommend` exits for ordinary
|
|
72
|
+
single-owner work, recommends Team only for real coordination facts, exposes
|
|
73
|
+
owned-path conflicts and independent-acceptance gaps, and never dispatches an
|
|
74
|
+
Agent. `team status` projects the existing project graph without storing a
|
|
75
|
+
second graph. Three strict portable contracts—TeamTaskPacket V2,
|
|
76
|
+
TeamAcceptancePacket V2, and CandidateTransferPacket V1—can be validated on a
|
|
77
|
+
machine that does not have the local `manage-agent-team` Skill. This candidate
|
|
78
|
+
does not add automatic or assisted dispatch and does not change Quick or Formal
|
|
79
|
+
assurance.
|
|
80
|
+
|
|
70
81
|
The 0.18 Project Driver is a bounded surface for new projects and controlled
|
|
71
82
|
dogfood. Its product name does not claim to be a general long-running,
|
|
72
83
|
multi-phase, or enterprise control plane. Version 0.18 adds one bounded
|
|
@@ -80,13 +91,13 @@ separate authority boundaries.
|
|
|
80
91
|
|
|
81
92
|
## Install
|
|
82
93
|
|
|
83
|
-
`owlrunkit@0.
|
|
94
|
+
`owlrunkit@0.20.0` is an unpublished release candidate. Until registry
|
|
84
95
|
publication is independently verified, the current installable release is
|
|
85
|
-
`owlrunkit@0.19.
|
|
96
|
+
`owlrunkit@0.19.2`; a locally packed 0.20.0 tarball is for candidate testing
|
|
86
97
|
only and is not adoption provenance.
|
|
87
98
|
|
|
88
99
|
```bash
|
|
89
|
-
npm install --save-exact owlrunkit@0.19.
|
|
100
|
+
npm install --save-exact owlrunkit@0.19.2
|
|
90
101
|
```
|
|
91
102
|
|
|
92
103
|
Use `npx --no-install owlrunkit` for project commands. The package bootstrap
|
|
@@ -102,9 +113,9 @@ the project Config must independently bind the same Core.
|
|
|
102
113
|
```bash
|
|
103
114
|
npx --no-install owlrunkit --version
|
|
104
115
|
npx --no-install owlrunkit bootstrap --workspace /absolute/path/to/project \
|
|
105
|
-
--exact owlrunkit@0.19.
|
|
116
|
+
--exact owlrunkit@0.19.2 --dry-run
|
|
106
117
|
npx --no-install owlrunkit bootstrap --workspace /absolute/path/to/project \
|
|
107
|
-
--exact owlrunkit@0.19.
|
|
118
|
+
--exact owlrunkit@0.19.2 --apply
|
|
108
119
|
npx --no-install owlrunkit init --workspace /absolute/path/to/project
|
|
109
120
|
npx --no-install owlrunkit doctor --workspace /absolute/path/to/project
|
|
110
121
|
npx --no-install owlrunkit mode recommend --workspace /absolute/path/to/project
|
|
@@ -123,6 +134,28 @@ machine contract. The five user modes are presets over `continuity`
|
|
|
123
134
|
(`none | project_driver`) and `assurance` (`none | quick | formal`). They never
|
|
124
135
|
grant Git, release, deployment, production, or business authority.
|
|
125
136
|
|
|
137
|
+
## Team Delivery: Recommend coordination without dispatch
|
|
138
|
+
|
|
139
|
+
Team Delivery is separate from continuity and assurance. It reads the current
|
|
140
|
+
Project Driver, recommends whether Team coordination is useful, and validates
|
|
141
|
+
self-contained packets without importing model-specific routing policy:
|
|
142
|
+
|
|
143
|
+
```bash
|
|
144
|
+
npx --no-install owlrunkit team recommend --workspace .
|
|
145
|
+
npx --no-install owlrunkit team status --workspace .
|
|
146
|
+
npx --no-install owlrunkit team packet validate --workspace . \
|
|
147
|
+
--packet ./team-task-packet.json
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
No initialized project, no actionable work, and one ordinary ready WorkItem
|
|
151
|
+
remain `off`. Two disjoint actionable WorkItems may be parallel-eligible.
|
|
152
|
+
Overlapping owned paths recommend Team but block parallel writing and point to
|
|
153
|
+
append-only scope revision or serialization. Verification, handoff, rework,
|
|
154
|
+
candidate transfer, or multiple active owners keep coordination visible without
|
|
155
|
+
raising assurance. Every result keeps Agent dispatch and all external authority
|
|
156
|
+
false. Phase 1 contains no launcher, scheduler, model ranking, or vendor CLI
|
|
157
|
+
federation.
|
|
158
|
+
|
|
126
159
|
## Project Driver: Coordinate a multi-Agent project
|
|
127
160
|
|
|
128
161
|
RunKit 0.18 keeps the project alive independently of any one Agent or chat.
|
package/docs/architecture/OWLCODA_RUNKIT_020_TEAM_DELIVERY_PHASE1_PRODUCT_DECISION_20260813.md
ADDED
|
@@ -0,0 +1,296 @@
|
|
|
1
|
+
# OwlRunKit 0.20 Team Delivery Phase 1 Product Decision
|
|
2
|
+
|
|
3
|
+
Date: 2026-08-13
|
|
4
|
+
Status: `source_candidate_implemented_and_verified / initial_read_only_dogfood_passed / owner_release_authorized / registry_publication_pending`
|
|
5
|
+
|
|
6
|
+
## Decision
|
|
7
|
+
|
|
8
|
+
OwlRunKit 0.20 Phase 1 adds a read-only Team Delivery projection and portable
|
|
9
|
+
team packet contracts on top of the existing Project Driver. It does not add a
|
|
10
|
+
second task graph, start Agents, route vendors, dispatch work, or change Quick
|
|
11
|
+
or Formal assurance.
|
|
12
|
+
|
|
13
|
+
The product sequence is fixed:
|
|
14
|
+
|
|
15
|
+
1. publish and stabilize 0.19.2;
|
|
16
|
+
2. implement 0.20 Phase 1 as read-only recommendation plus native contracts;
|
|
17
|
+
3. dogfood it in at least two real projects;
|
|
18
|
+
4. only if measured net value is positive, ask the Owner whether opt-in assisted
|
|
19
|
+
dispatch should be designed.
|
|
20
|
+
|
|
21
|
+
Steps 1 and 2 are complete through a repository source candidate. Step 3 has
|
|
22
|
+
started with read-only recommendation and status projection; transfer and
|
|
23
|
+
acceptance value have not yet been proven through a complete live lifecycle.
|
|
24
|
+
The Owner separately authorized the 0.20 publication transition after the
|
|
25
|
+
initial read-only dogfood. That authorization does not pre-authorize assisted
|
|
26
|
+
dispatch, project adoption, deployment, production, business, funds, or any
|
|
27
|
+
other permission transition.
|
|
28
|
+
|
|
29
|
+
## Current source-candidate evidence
|
|
30
|
+
|
|
31
|
+
- Focused Team Delivery and public-contract checks: 25 passed, 0 failed.
|
|
32
|
+
- Compatibility, CLI, project-local binding, and neighboring Formal checks:
|
|
33
|
+
129 passed, 0 failed.
|
|
34
|
+
- Standalone pack, isolated install, initialization, Team packet validation,
|
|
35
|
+
and Quick attestation: 6 passed, 0 failed.
|
|
36
|
+
- Complete RunKit gate: 853 tests, 841 passed, 0 failed, 12 skipped.
|
|
37
|
+
- Root build and production dependency audit passed; the production audit
|
|
38
|
+
reported 0 vulnerabilities.
|
|
39
|
+
- Core, Skill candidate, package config, public attester, and distribution
|
|
40
|
+
manifest resolve to
|
|
41
|
+
`sha256:30098aa9344c17c1ed0b5ed45ef1c590b3214b824402f584029c1ecb38ca7a70`.
|
|
42
|
+
|
|
43
|
+
These facts establish a source candidate only. They do not establish dogfood
|
|
44
|
+
value, registry publication, project adoption, runtime activation, or release
|
|
45
|
+
authority.
|
|
46
|
+
|
|
47
|
+
## Initial read-only dogfood
|
|
48
|
+
|
|
49
|
+
The candidate was run directly against current Project Driver truth without
|
|
50
|
+
installing or modifying either target project.
|
|
51
|
+
|
|
52
|
+
- OwlFootball had one actionable owned lane and one dependency-blocked future
|
|
53
|
+
lane. Recommendation: `off + project_driver`, assurance unchanged.
|
|
54
|
+
- The active Sierac MES control project had one actionable writer and several
|
|
55
|
+
dependency-blocked future lanes. Recommendation: `off + project_driver`,
|
|
56
|
+
assurance unchanged.
|
|
57
|
+
- A real Sierac MES parallel worktree had two simultaneously actionable,
|
|
58
|
+
disjoint, unassigned lanes. Recommendation: `team + project_driver_team`,
|
|
59
|
+
both lanes parallel-eligible, no path conflict, assurance unchanged.
|
|
60
|
+
- The first Team result exposed a self-referential `team status` next action.
|
|
61
|
+
The candidate was corrected so unassigned actionable lanes now point to
|
|
62
|
+
`project assign --help`; focused and complete gates were rerun afterward.
|
|
63
|
+
- For each directly tested project/worktree, the Project Driver tree
|
|
64
|
+
fingerprint and Git status fingerprint were byte-identical before and after.
|
|
65
|
+
Dispatch remained disabled and every authority field remained false.
|
|
66
|
+
|
|
67
|
+
This establishes correct initial admission and exit behavior. It does not yet
|
|
68
|
+
establish lower handoff time, candidate transfer value, independent acceptance
|
|
69
|
+
value, or eligibility for assisted dispatch.
|
|
70
|
+
|
|
71
|
+
## Verified starting facts
|
|
72
|
+
|
|
73
|
+
- `owlrunkit@0.19.2` is published and exact-registry verified.
|
|
74
|
+
- Project Driver already owns durable WorkItems, dependencies, owned paths,
|
|
75
|
+
assignments, decisions, checkpoints, handoffs, rework, integration gates,
|
|
76
|
+
source delivery, takeover, and project truth hashing.
|
|
77
|
+
- Usage Mode already keeps continuity and assurance separate.
|
|
78
|
+
- Quick and Formal already own evidence strength; multi-Agent work does not by
|
|
79
|
+
itself imply Formal.
|
|
80
|
+
- The local `manage-agent-team` Skill contains useful operating policy, but it
|
|
81
|
+
is not available on every machine and is not an acceptable product runtime
|
|
82
|
+
dependency.
|
|
83
|
+
- Real dogfood shows Team coordination is useful for multiple writers,
|
|
84
|
+
independent acceptance, candidate transfer, and cross-session ownership; it
|
|
85
|
+
is negative value for ordinary single-owner closure.
|
|
86
|
+
|
|
87
|
+
## Stable product model
|
|
88
|
+
|
|
89
|
+
Team Delivery adds one orthogonal dimension:
|
|
90
|
+
|
|
91
|
+
```text
|
|
92
|
+
continuity none | project_driver
|
|
93
|
+
coordination none | team_delivery
|
|
94
|
+
assurance none | quick | formal
|
|
95
|
+
acceptance L0 | L1 | L2 | L3
|
|
96
|
+
authority always externally granted; never inferred by RunKit
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
`team_delivery` is a read-only coordination recommendation in Phase 1. It is
|
|
100
|
+
not a continuity mode, assurance level, acceptance verdict, or authority.
|
|
101
|
+
|
|
102
|
+
Project Driver remains the sole active project and task truth. Team Delivery
|
|
103
|
+
may project WorkItems into lanes, but it cannot create a parallel team/task
|
|
104
|
+
database or reinterpret project events.
|
|
105
|
+
|
|
106
|
+
## User-visible Phase 1 surface
|
|
107
|
+
|
|
108
|
+
```text
|
|
109
|
+
npx --no-install owlrunkit team recommend --workspace "$PWD"
|
|
110
|
+
npx --no-install owlrunkit team status --workspace "$PWD"
|
|
111
|
+
npx --no-install owlrunkit team packet validate --workspace "$PWD" --packet <file>
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
All commands are read-only and support `--json`. Human output is the default.
|
|
115
|
+
Every result includes the authority boundary and
|
|
116
|
+
`authorizationGranted=false`.
|
|
117
|
+
|
|
118
|
+
### `team recommend`
|
|
119
|
+
|
|
120
|
+
The recommendation is derived only from current Project Driver truth:
|
|
121
|
+
|
|
122
|
+
- no initialized project, no ready work, or one ordinary ready WorkItem:
|
|
123
|
+
`off`;
|
|
124
|
+
- two or more simultaneously actionable WorkItems with disjoint owned paths:
|
|
125
|
+
`team`;
|
|
126
|
+
- overlapping owned paths: `team`, but parallel writing is blocked and the
|
|
127
|
+
unique next action is to revise ownership or serialize the lanes;
|
|
128
|
+
- a WorkItem in independent verification: `team`;
|
|
129
|
+
- a pending handoff, rework return, or live candidate ownership transfer:
|
|
130
|
+
`team`;
|
|
131
|
+
- multiple active owners: `team`.
|
|
132
|
+
|
|
133
|
+
The result explains trigger reasons, rejected lighter handling, projected
|
|
134
|
+
overhead, path conflicts, acceptance gaps, and one next command. It never
|
|
135
|
+
chooses a model vendor or starts an Agent.
|
|
136
|
+
|
|
137
|
+
### `team status`
|
|
138
|
+
|
|
139
|
+
Status projects the current Project Driver into:
|
|
140
|
+
|
|
141
|
+
- current project identity and truth hash;
|
|
142
|
+
- incomplete lanes with current owner, dependencies, owned paths, and explicit
|
|
143
|
+
actionable state;
|
|
144
|
+
- which lanes may run concurrently;
|
|
145
|
+
- path conflicts;
|
|
146
|
+
- independent-acceptance gaps;
|
|
147
|
+
- handoff, rework, and source-delivery continuity facts;
|
|
148
|
+
- the current Team recommendation and unique coordination next action.
|
|
149
|
+
|
|
150
|
+
The next command must not loop back to `team status`. An unassigned actionable
|
|
151
|
+
lane points to assignment help, a path conflict points to immutable scope
|
|
152
|
+
revision help, an owner transition points to takeover help, and an already
|
|
153
|
+
owned Team candidate points to portable packet validation help.
|
|
154
|
+
|
|
155
|
+
It does not copy or persist a second task graph.
|
|
156
|
+
|
|
157
|
+
### `team packet validate`
|
|
158
|
+
|
|
159
|
+
The validator accepts one bounded regular non-symlink JSON file, rejects
|
|
160
|
+
duplicate keys and extra fields, validates the native packet contract, and
|
|
161
|
+
binds project-aware packets to the current `projectId`, `projectTruthHash`,
|
|
162
|
+
WorkItem, and owned paths. Validation performs no packet creation or project
|
|
163
|
+
mutation.
|
|
164
|
+
|
|
165
|
+
## Native portable contracts
|
|
166
|
+
|
|
167
|
+
Phase 1 publishes three strict Draft 2020-12 contracts and matching runtime
|
|
168
|
+
validators.
|
|
169
|
+
|
|
170
|
+
### TeamTaskPacket V2
|
|
171
|
+
|
|
172
|
+
The task packet binds one Project Driver WorkItem and Gate. It carries:
|
|
173
|
+
|
|
174
|
+
- actual launcher-declared Agent, model family, and model version;
|
|
175
|
+
- risk axes and required acceptance level;
|
|
176
|
+
- exact worktree and candidate-entry identity;
|
|
177
|
+
- allowed and prohibited paths/actions;
|
|
178
|
+
- evidence plan, verification cadence, handoff requirement, escalation budget,
|
|
179
|
+
and exact stop point;
|
|
180
|
+
- project identity and project truth hash;
|
|
181
|
+
- an explicit all-false authority boundary.
|
|
182
|
+
|
|
183
|
+
Model family is opaque declared identity. Core does not contain Sol, Luna,
|
|
184
|
+
Grok, Kimi, capacity ratios, retries, or routing preferences.
|
|
185
|
+
|
|
186
|
+
### TeamAcceptancePacket V2
|
|
187
|
+
|
|
188
|
+
The acceptance packet binds one Gate and candidate, records implementation and
|
|
189
|
+
verification identities, acceptance level, fresh adversarial families,
|
|
190
|
+
candidate identity before and after, evidence reuse, findings, verdict, and
|
|
191
|
+
remaining levels. Medium or high second-order risk cannot claim independent
|
|
192
|
+
acceptance when implementation and verification model families are equal.
|
|
193
|
+
|
|
194
|
+
`ACCEPT`, `REWORK`, and `BLOCKED` remain distinct. One packet accepts one Gate;
|
|
195
|
+
it does not grant the next external transition.
|
|
196
|
+
|
|
197
|
+
### CandidateTransferPacket V1
|
|
198
|
+
|
|
199
|
+
The transfer packet preserves a live candidate across writer ownership change:
|
|
200
|
+
|
|
201
|
+
```text
|
|
202
|
+
candidate_active
|
|
203
|
+
-> transfer_requested
|
|
204
|
+
-> packet_generated
|
|
205
|
+
-> new_owner_validation
|
|
206
|
+
-> handoff_ack
|
|
207
|
+
-> old_writer_release
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
It binds candidate identity, dirty manifest, reconstruction sources, protected
|
|
211
|
+
artifacts, previous and next owner, verification state, and handoff ACK. A
|
|
212
|
+
packet at `old_writer_release` is invalid unless the new owner has accepted the
|
|
213
|
+
handoff with evidence. The packet does not itself assign Project Driver
|
|
214
|
+
authority or release the prior writer.
|
|
215
|
+
|
|
216
|
+
## Admission and exit rules
|
|
217
|
+
|
|
218
|
+
Team Mode is recommended only when coordination changes the outcome or critical
|
|
219
|
+
path. Parallelism being possible is insufficient.
|
|
220
|
+
|
|
221
|
+
The recommendation must explicitly exit Team Mode for a single authorized
|
|
222
|
+
owner with a bounded, reversible, directly verifiable task. Production or
|
|
223
|
+
release labels alone do not force Team Mode. Long duration alone selects
|
|
224
|
+
continuity, not coordination. Multiple Agents alone do not force Formal.
|
|
225
|
+
|
|
226
|
+
Path conflict does not authorize parallel writers. It creates a visible
|
|
227
|
+
coordination blocker.
|
|
228
|
+
|
|
229
|
+
## Acceptance scenarios
|
|
230
|
+
|
|
231
|
+
1. No Project Driver definition returns `off`, zero lanes, no dispatch, and no
|
|
232
|
+
authority.
|
|
233
|
+
2. One ordinary ready WorkItem returns `off` even though Project Driver exists.
|
|
234
|
+
3. Two independent ready WorkItems with disjoint owned paths return `team` and
|
|
235
|
+
both lanes are parallel-eligible.
|
|
236
|
+
4. Two actionable WorkItems with overlapping owned paths return `team`, expose
|
|
237
|
+
the exact conflict, and mark both lanes non-parallel.
|
|
238
|
+
5. Independent verification, pending handoff/rework, candidate transfer, or
|
|
239
|
+
multiple active owners recommends `team` without changing assurance.
|
|
240
|
+
6. `team recommend`, `team status`, and packet validation write zero project,
|
|
241
|
+
source, Git, or RunKit bytes.
|
|
242
|
+
7. A valid TeamTaskPacket is bound to the current Project Driver WorkItem and
|
|
243
|
+
owned paths; stale project truth or widened scope is rejected.
|
|
244
|
+
8. Same-family verification at medium/high second-order risk cannot claim
|
|
245
|
+
independent acceptance.
|
|
246
|
+
9. Candidate transfer cannot reach `old_writer_release` before accepted
|
|
247
|
+
handoff ACK with evidence.
|
|
248
|
+
10. Packet schemas and runtime validators reject missing, extra, duplicate-key,
|
|
249
|
+
authority-looking, and malformed identity fields consistently.
|
|
250
|
+
11. Installed-package help, CLI JSON, public schemas, Core manifest, and the
|
|
251
|
+
Skill describe the same Phase 1 surface without requiring the local
|
|
252
|
+
`manage-agent-team` Skill.
|
|
253
|
+
12. No output authorizes Git, release, deployment, production, business,
|
|
254
|
+
automation, money, credentials, or Agent dispatch.
|
|
255
|
+
|
|
256
|
+
## Phase 1 non-goals
|
|
257
|
+
|
|
258
|
+
- no automatic or assisted Agent launch;
|
|
259
|
+
- no vendor CLI federation or general swarm;
|
|
260
|
+
- no model ranking, scorecard, capacity allocation, retry policy, or
|
|
261
|
+
model-specific prompt logic in Core;
|
|
262
|
+
- no second project/task graph;
|
|
263
|
+
- no packet generator that silently assigns ownership;
|
|
264
|
+
- no new Quick or Formal Gate;
|
|
265
|
+
- no replacement for COM-019 or any domain product decision;
|
|
266
|
+
- no 0.20 publication claim before a separately verified release transition.
|
|
267
|
+
|
|
268
|
+
## Dogfood Gate before assisted dispatch
|
|
269
|
+
|
|
270
|
+
At least two real projects must demonstrate all of the following:
|
|
271
|
+
|
|
272
|
+
- ordinary single-owner work reliably exits Team Mode;
|
|
273
|
+
- multiple writers and independent acceptance produce correct lanes, path
|
|
274
|
+
conflicts, and independence gaps;
|
|
275
|
+
- a machine without the local Skill can validate and continue from the npm
|
|
276
|
+
package and self-contained packets;
|
|
277
|
+
- writer transfer preserves the candidate through ACK;
|
|
278
|
+
- measured handoff time, controller intervention, or duplicate verification
|
|
279
|
+
decreases;
|
|
280
|
+
- the benefit is not merely more packets or receipts.
|
|
281
|
+
|
|
282
|
+
Only after these facts exist may the Owner decide whether to design opt-in
|
|
283
|
+
assisted dispatch. General automatic federation remains a separate product and
|
|
284
|
+
authority decision.
|
|
285
|
+
|
|
286
|
+
## What cannot be claimed now
|
|
287
|
+
|
|
288
|
+
- 0.20 has not completed transfer or independent-acceptance dogfood and has not
|
|
289
|
+
yet been committed, tagged, registry-published, adopted, or made active;
|
|
290
|
+
source-candidate verification is not registry publication proof.
|
|
291
|
+
- Team Delivery does not dispatch or supervise Agents.
|
|
292
|
+
- The local Skill is not part of the product runtime contract.
|
|
293
|
+
- Team recommendation is not acceptance or authority.
|
|
294
|
+
- Phase 1 is not the selected COM-019 Primary AI Value Loop.
|
|
295
|
+
- No business, production, deployment, or release outcome follows from this
|
|
296
|
+
product decision.
|
|
@@ -7,11 +7,11 @@ description: Run receipt-backed, project-owned work with OwlCoda RunKit. Use whe
|
|
|
7
7
|
|
|
8
8
|
Use the bundled deterministic Core to coordinate work through project artifacts rather than chat memory. Require Node.js 20 or later.
|
|
9
9
|
|
|
10
|
-
Bundled candidate: standalone `owlrunkit@0.
|
|
11
|
-
Core `0.
|
|
12
|
-
`sha256:
|
|
10
|
+
Bundled candidate: standalone `owlrunkit@0.20.0`, bundling Contract `0.2` and
|
|
11
|
+
Core `0.20.0` with manifest
|
|
12
|
+
`sha256:30098aa9344c17c1ed0b5ed45ef1c590b3214b824402f584029c1ecb38ca7a70`.
|
|
13
13
|
This candidate is not published. The current published release remains
|
|
14
|
-
`owlrunkit@0.19.
|
|
14
|
+
`owlrunkit@0.19.2`, which is the trusted prior for rollback and the only
|
|
15
15
|
registry-installable version named by this Skill before publication. Verify
|
|
16
16
|
exact official npm registry provenance before adoption. The immutable
|
|
17
17
|
rollback baseline for the prior release is `owlrunkit@0.16.1` with SHA-1
|
|
@@ -21,6 +21,28 @@ The root `owlcoda` package has a separate version lifecycle.
|
|
|
21
21
|
|
|
22
22
|
The session is an execution interface. Project artifacts are the system of record.
|
|
23
23
|
|
|
24
|
+
## Team Delivery Phase 1
|
|
25
|
+
|
|
26
|
+
Use Team Delivery only when current Project Driver facts make coordination
|
|
27
|
+
material. It is a read-only projection, not a second graph or an Agent launcher.
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
npx --no-install owlrunkit team recommend --workspace "$PROJECT_ROOT"
|
|
31
|
+
npx --no-install owlrunkit team status --workspace "$PROJECT_ROOT"
|
|
32
|
+
npx --no-install owlrunkit team packet validate --workspace "$PROJECT_ROOT" \
|
|
33
|
+
--packet /absolute/path/to/team-packet.json
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
An uninitialized project, no actionable work, or one ordinary ready WorkItem
|
|
37
|
+
must remain off. Disjoint actionable lanes may be parallel-eligible; overlapping
|
|
38
|
+
owned paths must block parallel writing. Independent verification, handoff,
|
|
39
|
+
rework, candidate transfer, or multiple active owners may recommend Team without
|
|
40
|
+
changing assurance. TeamTaskPacket V2, TeamAcceptancePacket V2, and
|
|
41
|
+
CandidateTransferPacket V1 are package-owned portable contracts. Do not depend
|
|
42
|
+
on a user-level `manage-agent-team` Skill at runtime. Core does not choose model
|
|
43
|
+
vendors, score Agents, start tasks, or grant Git, release, deployment,
|
|
44
|
+
production, business, automation, or money authority.
|
|
45
|
+
|
|
24
46
|
## Project Driver actions
|
|
25
47
|
|
|
26
48
|
Translate ordinary user requests into durable typed project actions. Do not ask
|
|
@@ -211,9 +233,9 @@ below has no CLI entry.
|
|
|
211
233
|
|
|
212
234
|
```bash
|
|
213
235
|
npx --no-install owlrunkit bootstrap --workspace "$PROJECT_ROOT" \
|
|
214
|
-
--exact owlrunkit@0.19.
|
|
236
|
+
--exact owlrunkit@0.19.2 --dry-run
|
|
215
237
|
npx --no-install owlrunkit bootstrap --workspace "$PROJECT_ROOT" \
|
|
216
|
-
--exact owlrunkit@0.19.
|
|
238
|
+
--exact owlrunkit@0.19.2 --apply
|
|
217
239
|
npx --no-install owlrunkit init --workspace "$PROJECT_ROOT"
|
|
218
240
|
npx --no-install owlrunkit inspect --json --workspace "$PROJECT_ROOT"
|
|
219
241
|
npx --no-install owlrunkit status --workspace "$PROJECT_ROOT"
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
"schemaVersion": "OwlCodaRunKitConfigV2",
|
|
3
3
|
"core": {
|
|
4
4
|
"contractVersion": "0.2",
|
|
5
|
-
"coreVersion": "0.
|
|
6
|
-
"coreManifestSha256": "sha256:
|
|
7
|
-
"coreSourceRef": "artifact:sha256:
|
|
5
|
+
"coreVersion": "0.20.0",
|
|
6
|
+
"coreManifestSha256": "sha256:30098aa9344c17c1ed0b5ed45ef1c590b3214b824402f584029c1ecb38ca7a70",
|
|
7
|
+
"coreSourceRef": "artifact:sha256:30098aa9344c17c1ed0b5ed45ef1c590b3214b824402f584029c1ecb38ca7a70"
|
|
8
8
|
},
|
|
9
9
|
"authorizationPolicy": "external_explicit_authority_required"
|
|
10
10
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "owlrunkit",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.20.0",
|
|
4
4
|
"description": "Project Driver for cross-Agent project continuity and progression; execution, evidence, verification, and recovery are the underlying trust substrate.",
|
|
5
5
|
"license": "GPL-3.0-or-later",
|
|
6
6
|
"author": "yeemio <owlclaw@163.com>",
|
|
@@ -39,6 +39,11 @@
|
|
|
39
39
|
"sha256": "sha256:3972dc9744f6499f0f9b2dbf76696f2ae7ad8af9b23dde66d6af86c9dfb36986"
|
|
40
40
|
},
|
|
41
41
|
"supportedProducerCoreIdentities": [
|
|
42
|
+
{
|
|
43
|
+
"contractVersion": "0.2",
|
|
44
|
+
"coreVersion": "0.20.0",
|
|
45
|
+
"coreManifestSha256": "sha256:30098aa9344c17c1ed0b5ed45ef1c590b3214b824402f584029c1ecb38ca7a70"
|
|
46
|
+
},
|
|
42
47
|
{
|
|
43
48
|
"contractVersion": "0.2",
|
|
44
49
|
"coreVersion": "0.19.2",
|
|
@@ -19,6 +19,11 @@ import { captureWorkspaceSnapshot } from "./workspace-snapshot.mjs";
|
|
|
19
19
|
export { validQuickReceiptShape } from "./quick-receipt-contract.mjs";
|
|
20
20
|
|
|
21
21
|
export const SUPPORTED_QUICK_CORE_IDENTITIES = Object.freeze([
|
|
22
|
+
{
|
|
23
|
+
contractVersion: "0.2",
|
|
24
|
+
coreVersion: "0.20.0",
|
|
25
|
+
coreManifestSha256: "sha256:30098aa9344c17c1ed0b5ed45ef1c590b3214b824402f584029c1ecb38ca7a70",
|
|
26
|
+
},
|
|
22
27
|
{
|
|
23
28
|
contractVersion: "0.2",
|
|
24
29
|
coreVersion: "0.19.2",
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"schemaVersion": "OwlCodaRunKitRegistryReleasePolicyV1",
|
|
3
3
|
"status": "release_candidate_unpublished",
|
|
4
4
|
"packageName": "owlrunkit",
|
|
5
|
-
"candidateVersion": "0.
|
|
5
|
+
"candidateVersion": "0.20.0",
|
|
6
6
|
"registry": "https://registry.npmjs.org",
|
|
7
7
|
"registryRequiredBeforeAdoption": true,
|
|
8
8
|
"exactVersionRequired": true,
|
|
@@ -23,10 +23,10 @@
|
|
|
23
23
|
],
|
|
24
24
|
"currentPublishedRelease": {
|
|
25
25
|
"packageName": "owlrunkit",
|
|
26
|
-
"version": "0.19.
|
|
27
|
-
"shasum": "
|
|
28
|
-
"integrity": "sha512-
|
|
29
|
-
"tarballUrl": "https://registry.npmjs.org/owlrunkit/-/owlrunkit-0.19.
|
|
26
|
+
"version": "0.19.2",
|
|
27
|
+
"shasum": "f9b0f797fe9f79878374380db0756223accd61dc",
|
|
28
|
+
"integrity": "sha512-rFEnbOtPuybztz8EZbcQSY3tGycCAuTkg+qGDwcKaTPjdJRhsXS4OB2HLwDBiILIV6BFyRPSQ7zanObT4jd58g==",
|
|
29
|
+
"tarballUrl": "https://registry.npmjs.org/owlrunkit/-/owlrunkit-0.19.2.tgz"
|
|
30
30
|
},
|
|
31
31
|
"registryRelease": null,
|
|
32
32
|
"registryEvidenceMustBeExternal": true,
|
package/sbom.spdx.json
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
"spdxVersion": "SPDX-2.3",
|
|
3
3
|
"dataLicense": "CC0-1.0",
|
|
4
4
|
"SPDXID": "SPDXRef-DOCUMENT",
|
|
5
|
-
"name": "owlrunkit-0.
|
|
6
|
-
"documentNamespace": "https://owlcoda.com/spdx/owlrunkit/0.
|
|
5
|
+
"name": "owlrunkit-0.20.0",
|
|
6
|
+
"documentNamespace": "https://owlcoda.com/spdx/owlrunkit/0.20.0",
|
|
7
7
|
"creationInfo": {
|
|
8
8
|
"created": "2026-07-29T00:00:00Z",
|
|
9
9
|
"creators": [
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
{
|
|
15
15
|
"name": "owlrunkit",
|
|
16
16
|
"SPDXID": "SPDXRef-Package-OwlRunKit",
|
|
17
|
-
"versionInfo": "0.
|
|
17
|
+
"versionInfo": "0.20.0",
|
|
18
18
|
"downloadLocation": "NOASSERTION",
|
|
19
19
|
"filesAnalyzed": false,
|
|
20
20
|
"licenseConcluded": "GPL-3.0-or-later",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
{
|
|
25
25
|
"referenceCategory": "PACKAGE-MANAGER",
|
|
26
26
|
"referenceType": "purl",
|
|
27
|
-
"referenceLocator": "pkg:npm/owlrunkit@0.
|
|
27
|
+
"referenceLocator": "pkg:npm/owlrunkit@0.20.0"
|
|
28
28
|
}
|
|
29
29
|
]
|
|
30
30
|
}
|
|
@@ -14,7 +14,7 @@ import { fileURLToPath } from "node:url";
|
|
|
14
14
|
import { parseProjectControlState } from "./project-control-parser.mjs";
|
|
15
15
|
|
|
16
16
|
export const CONTRACT_VERSION = "0.2";
|
|
17
|
-
export const CORE_VERSION = "0.
|
|
17
|
+
export const CORE_VERSION = "0.20.0";
|
|
18
18
|
export const RUNTIME_ROOT = ".owlcoda/runkit";
|
|
19
19
|
|
|
20
20
|
const CORE_FILES = [
|
|
@@ -78,6 +78,7 @@ const CORE_FILES = [
|
|
|
78
78
|
"sync-release-identity.mjs",
|
|
79
79
|
"team-project-successor.mjs",
|
|
80
80
|
"team-project.mjs",
|
|
81
|
+
"team-delivery.mjs",
|
|
81
82
|
"usage-mode.mjs",
|
|
82
83
|
"verification-envelope.mjs",
|
|
83
84
|
"verification-envelope-check.mjs",
|
|
@@ -146,6 +147,12 @@ const CORE_FILES = [
|
|
|
146
147
|
"schemas/runtime-transition-receipt-v1.schema.json",
|
|
147
148
|
"schemas/snapshot-v1.schema.json",
|
|
148
149
|
"schemas/source-candidate-v2.schema.json",
|
|
150
|
+
"schemas/candidate-transfer-packet-v1.schema.json",
|
|
151
|
+
"schemas/team-acceptance-packet-v2.schema.json",
|
|
152
|
+
"schemas/team-delivery-status-v1.schema.json",
|
|
153
|
+
"schemas/team-packet-validation-v1.schema.json",
|
|
154
|
+
"schemas/team-recommendation-v1.schema.json",
|
|
155
|
+
"schemas/team-task-packet-v2.schema.json",
|
|
149
156
|
"schemas/visual-smoke-request-v1.schema.json",
|
|
150
157
|
"schemas/visual-smoke-result-v1.schema.json",
|
|
151
158
|
"schemas/verification-context-v1.schema.json",
|
|
@@ -1394,7 +1394,7 @@ export function resumeCompletedFormalFinishV1({
|
|
|
1394
1394
|
};
|
|
1395
1395
|
}
|
|
1396
1396
|
if (
|
|
1397
|
-
|
|
1397
|
+
new Set(["0.19.2", "0.20.0"]).has(closeout.artifact.core?.coreVersion)
|
|
1398
1398
|
&& (
|
|
1399
1399
|
!hasExactKeys(formalEvidenceBinding, [
|
|
1400
1400
|
"schemaVersion",
|
|
@@ -15,10 +15,13 @@ const MAX_CORE_TOTAL_BYTES = 67_108_864;
|
|
|
15
15
|
const PACKAGE_NAME = "owlrunkit";
|
|
16
16
|
const OFFICIAL_CLI_ENTRYPOINT =
|
|
17
17
|
"scripts/runkit-contract/runkit-bootstrap.mjs";
|
|
18
|
-
const SELF_NORMALIZED_QUICK_CORE_VERSIONS = new Set(["0.19.2"]);
|
|
18
|
+
const SELF_NORMALIZED_QUICK_CORE_VERSIONS = new Set(["0.19.2", "0.20.0"]);
|
|
19
19
|
const EXACT_VERSION = /^[0-9]+\.[0-9]+\.[0-9]+(?:-[0-9A-Za-z.-]+)?$/;
|
|
20
20
|
const SHA256_REF = /^sha256:[a-f0-9]{64}$/;
|
|
21
21
|
const TRUSTED_PRIOR_CORE_IDENTITIES = new Map([
|
|
22
|
+
["0.19.2", new Set([
|
|
23
|
+
"sha256:c46ae9d8ed0572e5636ab5725f922f8db3ee5bf0f966b200bce7b2287c9267c8",
|
|
24
|
+
])],
|
|
22
25
|
["0.19.1", new Set([
|
|
23
26
|
"sha256:291ef97c93a513eed24a29f75c400b61cefd6a8c0ab228401cf2c6a73ea9e622",
|
|
24
27
|
])],
|