owlrunkit 0.18.0 → 0.18.2
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 +41 -0
- package/README.md +61 -17
- package/docs/architecture/OWLCODA_RUNKIT_USAGE_MODE_SELECTION_PRODUCT_DECISION_20260811.md +166 -0
- package/integrations/codex/skills/owlcoda-runkit/SKILL.md +41 -16
- package/integrations/codex/skills/owlcoda-runkit/assets/templates/config.json +3 -3
- package/package.json +1 -1
- package/packages/attest/distribution-manifest-v1.json +11 -1
- package/packages/attest/src/quick.mjs +11 -1
- package/registry-release-policy-v1.json +5 -5
- package/sbom.spdx.json +5 -5
- package/scripts/runkit-contract/assurance-router.mjs +31 -21
- package/scripts/runkit-contract/core-contract.mjs +5 -1
- package/scripts/runkit-contract/inspect-presentation.mjs +38 -5
- package/scripts/runkit-contract/install-codex-skill.mjs +60 -1
- package/scripts/runkit-contract/onboarding-doctor.mjs +65 -19
- package/scripts/runkit-contract/profile-onboarding.mjs +601 -22
- package/scripts/runkit-contract/project-cli-resolver.mjs +6 -0
- package/scripts/runkit-contract/quick-attest.mjs +1 -0
- package/scripts/runkit-contract/quick-metrics.mjs +43 -5
- package/scripts/runkit-contract/quick-receipt.mjs +43 -5
- package/scripts/runkit-contract/quick-verify.mjs +20 -4
- package/scripts/runkit-contract/runkit-cli.mjs +278 -24
- package/scripts/runkit-contract/schemas/profile-reconcile-plan-v1.schema.json +107 -0
- package/scripts/runkit-contract/schemas/profile-reconcile-receipt-v1.schema.json +60 -0
- package/scripts/runkit-contract/schemas/usage-mode-recommendation-v1.schema.json +136 -0
- package/scripts/runkit-contract/templates/assurance-request.json +6 -0
- package/scripts/runkit-contract/usage-mode.mjs +227 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,46 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.18.2
|
|
4
|
+
|
|
5
|
+
- Makes `project checkpoint --help` action-specific and returns a complete,
|
|
6
|
+
shell-safe correction command when a measured checkpoint omits
|
|
7
|
+
`--completed-units`.
|
|
8
|
+
- Keeps symlinked workspace roots fail-closed while reporting the canonical
|
|
9
|
+
`--workspace` path, including the macOS `/tmp` to `/private/tmp` case.
|
|
10
|
+
- Returns a bounded stdout/stderr `outputSummary` at the top level of Quick
|
|
11
|
+
results without changing the receipt or weakening full-output binding.
|
|
12
|
+
- Retries one transient registry transport failure while retaining the existing
|
|
13
|
+
per-attempt timeout, and distinguishes DNS, connection, timeout, HTTP,
|
|
14
|
+
authentication, and missing-version failures.
|
|
15
|
+
- Aligns the packaged README with five-mode routing and existing profile
|
|
16
|
+
reconciliation instead of treating long-running, release, or production
|
|
17
|
+
labels as automatic Formal triggers.
|
|
18
|
+
- Adds action-specific `quick-verify --help`, lists canonical risk-category
|
|
19
|
+
values in mode help and validation errors, and marks formatting-only profile
|
|
20
|
+
reconcile plans with `normalizationOnly: true`.
|
|
21
|
+
|
|
22
|
+
## 0.18.1
|
|
23
|
+
|
|
24
|
+
- Adds read-only `mode recommend` and `mode status` commands with five
|
|
25
|
+
user-facing presets over independent continuity and assurance dimensions.
|
|
26
|
+
- Routes long-running, interruption recovery, and ordinary reversible project
|
|
27
|
+
mutation to Project Driver continuity without automatically forcing Formal.
|
|
28
|
+
Multi-writer, permission/security, funds, irreversible, rollback-uncertain,
|
|
29
|
+
schema/data migration, and explicit acceptance facts still force Formal.
|
|
30
|
+
- Fixes Quick metrics to report receipt-time pass, fail, and source mutation
|
|
31
|
+
independently of later workspace drift.
|
|
32
|
+
- Returns the standalone `quick-attest` command from Quick results and adds
|
|
33
|
+
action-specific `quick-attest --help`.
|
|
34
|
+
- Diagnoses managed Skill/config Core version drift independently from installed
|
|
35
|
+
file integrity.
|
|
36
|
+
- Aligns `doctor` with full profile validation, stops profile detection from
|
|
37
|
+
inventing absent `src/**` and `tests/**` surfaces, and adds atomic profile
|
|
38
|
+
reconciliation for an existing project.
|
|
39
|
+
- Adds action-specific `adopt --help` and keeps top-level inspection focused on
|
|
40
|
+
the Project Driver's dominant project gap when one exists.
|
|
41
|
+
- Preserves `authorizationGranted=false` and the separation between workflow,
|
|
42
|
+
acceptance, Git, release, deployment, production, and business authority.
|
|
43
|
+
|
|
3
44
|
## 0.18.0
|
|
4
45
|
|
|
5
46
|
- Introduces the Project Driver product path for continuity across Agents and
|
package/README.md
CHANGED
|
@@ -6,6 +6,15 @@ makes that continuity inspectable and recoverable. RunKit 0.18 keeps work
|
|
|
6
6
|
moving across Agents and sessions through a typed direct flow while preserving
|
|
7
7
|
the existing assurance, source, and evidence boundaries.
|
|
8
8
|
|
|
9
|
+
RunKit 0.18.1 adds a human-first usage-mode recommendation that selects
|
|
10
|
+
continuity and assurance independently. It keeps ordinary development light
|
|
11
|
+
while preserving mandatory Formal routing for material safety and authority
|
|
12
|
+
facts.
|
|
13
|
+
|
|
14
|
+
RunKit 0.18.2 is a focused dogfood patch for clearer CLI help, actionable
|
|
15
|
+
checkpoint and canonical-path errors, bounded Quick output summaries, typed
|
|
16
|
+
registry diagnostics, and explicit profile normalization previews.
|
|
17
|
+
|
|
9
18
|
The 0.18 Project Driver is a bounded surface for new projects and controlled
|
|
10
19
|
dogfood. Its product name does not claim to be a general long-running,
|
|
11
20
|
multi-phase, or enterprise control plane. Version 0.18 adds one bounded
|
|
@@ -20,7 +29,7 @@ separate authority boundaries.
|
|
|
20
29
|
## Install
|
|
21
30
|
|
|
22
31
|
```bash
|
|
23
|
-
npm install --save-exact owlrunkit@0.18.
|
|
32
|
+
npm install --save-exact owlrunkit@0.18.2
|
|
24
33
|
```
|
|
25
34
|
|
|
26
35
|
The `owlrunkit` bootstrap uses the project's exact locally bound CLI for
|
|
@@ -36,8 +45,15 @@ the project Config must independently bind the same Core.
|
|
|
36
45
|
owlrunkit --version
|
|
37
46
|
owlrunkit init --workspace /absolute/path/to/project
|
|
38
47
|
owlrunkit doctor --workspace /absolute/path/to/project
|
|
48
|
+
owlrunkit mode recommend --workspace /absolute/path/to/project
|
|
49
|
+
owlrunkit mode status --workspace /absolute/path/to/project
|
|
39
50
|
```
|
|
40
51
|
|
|
52
|
+
`mode recommend` is read-only and defaults to human output; add `--json` for a
|
|
53
|
+
machine contract. The five user modes are presets over `continuity`
|
|
54
|
+
(`none | project_driver`) and `assurance` (`none | quick | formal`). They never
|
|
55
|
+
grant Git, release, deployment, production, or business authority.
|
|
56
|
+
|
|
41
57
|
## Project Driver: Coordinate a multi-Agent project
|
|
42
58
|
|
|
43
59
|
RunKit 0.18 keeps the project alive independently of any one Agent or chat.
|
|
@@ -100,9 +116,10 @@ Normal users supply the one definition JSON to `init`, then use typed flags and
|
|
|
100
116
|
values. They do not need to author request, event, receipt, or hash JSON. The
|
|
101
117
|
legacy `--request <event.json>` path remains available for existing automation
|
|
102
118
|
and compatibility. Multiple Agents do not make project coordination Formal by
|
|
103
|
-
themselves.
|
|
104
|
-
assurance lane follows
|
|
105
|
-
|
|
119
|
+
themselves. Project Driver continuity does not make project coordination Formal
|
|
120
|
+
by itself. The assurance lane follows actual writer and authority count,
|
|
121
|
+
rollback certainty, permissions, security, funds, irreversibility, schema/data
|
|
122
|
+
migration, and explicit acceptance contracts—not environment labels alone.
|
|
106
123
|
|
|
107
124
|
`project verification --defer` is a small deferred-verification ledger, not a
|
|
108
125
|
test scheduler. It records stable check IDs, why they were intentionally not
|
|
@@ -154,30 +171,52 @@ high-confidence candidates:
|
|
|
154
171
|
```bash
|
|
155
172
|
owlrunkit profiles detect --workspace . --dry-run
|
|
156
173
|
owlrunkit profiles detect --workspace . --apply
|
|
174
|
+
owlrunkit profiles reconcile --workspace . --dry-run
|
|
175
|
+
owlrunkit profiles reconcile --workspace . --apply
|
|
157
176
|
owlrunkit profiles validate --workspace .
|
|
158
177
|
```
|
|
159
178
|
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
and
|
|
164
|
-
|
|
179
|
+
`profiles detect --apply` is create-only. `profiles reconcile` previews or
|
|
180
|
+
atomically updates an existing profile set and leaves a migration receipt. Both
|
|
181
|
+
paths refuse ambiguous or low-confidence candidates, source drift, symlinks,
|
|
182
|
+
and launchers that do not resolve to exact local files. Detection directly
|
|
183
|
+
supports lock-bound npm plus exact project-installed pnpm, Yarn, and Bun
|
|
184
|
+
launchers. A PATH-only package manager remains review-required. A dry-run that
|
|
185
|
+
only canonicalizes JSON formatting reports `normalizationOnly: true` instead of
|
|
186
|
+
showing unexplained hash drift with an empty update list.
|
|
187
|
+
|
|
188
|
+
## Choose auto, off, light, managed, or formal
|
|
189
|
+
|
|
190
|
+
Start with the human-first read-only recommendation:
|
|
191
|
+
|
|
192
|
+
```bash
|
|
193
|
+
owlrunkit mode recommend --workspace .
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
- **off / No RunKit** uses neither continuity nor assurance for analysis,
|
|
197
|
+
documentation, and disposable exploration that needs no reusable evidence.
|
|
198
|
+
- **light / Quick Verification** runs one exact low-risk, source-bound command.
|
|
199
|
+
- **managed** adds Project Driver continuity; each WorkItem may still use no
|
|
200
|
+
assurance, Quick, or Formal according to its own facts.
|
|
201
|
+
- **formal / Formal Delivery** is forced by multiple writers, permission or
|
|
202
|
+
security boundaries, funds, irreversible work, uncertain rollback,
|
|
203
|
+
schema/data migration, or an explicit Formal acceptance contract.
|
|
204
|
+
- **auto** derives the preset from supplied facts and is the default.
|
|
165
205
|
|
|
166
|
-
|
|
206
|
+
Production, release, deployment, long duration, and interruption recovery do
|
|
207
|
+
not force Formal by themselves. Long or interrupted work primarily selects
|
|
208
|
+
Project Driver continuity. Risk containment permits a fresh lower-assurance
|
|
209
|
+
recommendation; escalation is not sticky.
|
|
167
210
|
|
|
168
|
-
|
|
211
|
+
Machine integrations may route an explicit risk-facts document directly:
|
|
169
212
|
|
|
170
213
|
```bash
|
|
171
214
|
owlrunkit assurance route --workspace . \
|
|
172
215
|
--request ./scripts/runkit-contract/templates/assurance-request.json
|
|
173
216
|
```
|
|
174
217
|
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
- **Quick Verification** is for one low-risk, source-bound command that needs a
|
|
178
|
-
reusable receipt but no writer lease or Formal acceptance.
|
|
179
|
-
- **Formal Delivery** is for multi-writer, long-running, migration, integration,
|
|
180
|
-
release, production, funds, destructive, or formally accepted work.
|
|
218
|
+
`mode recommend --help` lists every accepted `--risk-category`; an invalid
|
|
219
|
+
category reports both the rejected value and the canonical allowed list.
|
|
181
220
|
|
|
182
221
|
The router fails closed to Formal when required risk facts are incomplete.
|
|
183
222
|
Quick receipts cannot become Formal acceptance, and Formal acceptance does not
|
|
@@ -189,6 +228,11 @@ Run Quick with:
|
|
|
189
228
|
owlrunkit quick-verify --workspace . -- npm test
|
|
190
229
|
```
|
|
191
230
|
|
|
231
|
+
The top-level Quick result includes a bounded `outputSummary` with the last
|
|
232
|
+
meaningful stdout/stderr lines, so common summaries such as `155 passed` are
|
|
233
|
+
visible without opening `stdout.log`. The receipt still binds the complete
|
|
234
|
+
stdout and stderr artifacts; the summary is presentation only.
|
|
235
|
+
|
|
192
236
|
## Formal Delivery in three commands
|
|
193
237
|
|
|
194
238
|
Given a Goal Contract and the paths this work item may write, the happy path is:
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
# OwlCoda RunKit 使用模式选择:Sierac MES Dogfood 产品决议
|
|
2
|
+
|
|
3
|
+
状态:**0.18.1 已发布;本文主体保留发布前产品决议,文末追加 0.18.2 dogfood 补丁候选**
|
|
4
|
+
日期:2026-08-11
|
|
5
|
+
|
|
6
|
+
## 已验证现场事实
|
|
7
|
+
|
|
8
|
+
以下结论来自对
|
|
9
|
+
`/Users/yeemio/AI/project/sieracMes-AI/.owlcoda/runkit/` 的只读检查,
|
|
10
|
+
不是体验推测:
|
|
11
|
+
|
|
12
|
+
- W1.6 留下四份 Quick Receipt V1。按回执生成时的 `exitResult` 与
|
|
13
|
+
`mutationDecision` 分类,结果是 3 pass、1 fail、0 source mutation;四份均为
|
|
14
|
+
`source_unchanged`。
|
|
15
|
+
- 旧版 `quick-metrics` 使用“当前 workspace 是否仍匹配历史回执”来统计历史结果。
|
|
16
|
+
在后续源码变化后,它把四份回执全部错算为 `sourceMutated`,并输出
|
|
17
|
+
`passed=0 / failed=0 / sourceMutated=4`。
|
|
18
|
+
- Quick 的实际测试命令发现了 W1.6 的 pytest 问题;RunKit 的价值是保留失败、
|
|
19
|
+
绑定候选并阻止错误完成声明,不是替代项目测试发现业务缺陷。
|
|
20
|
+
- 三次相关 Quick 的机器耗时约九秒。主要摩擦来自人工选择模式、填写标识和
|
|
21
|
+
时间戳、分别 checkpoint/integrate,以及排查不一致命令。
|
|
22
|
+
- Project Driver 对长线程、跨会话恢复、脏工作树和延期验收有实际价值。
|
|
23
|
+
- 现场成功回执长期携带 `quick_ignored_artifact_unbound`,但 attestation 仍可为
|
|
24
|
+
GO;该 issue 目前缺少清晰、可行动的严重级别。
|
|
25
|
+
|
|
26
|
+
## 产品长期决策
|
|
27
|
+
|
|
28
|
+
RunKit 定位为“飞行记录仪和阶段控制器”,不是所有命令的审批系统。
|
|
29
|
+
|
|
30
|
+
用户看到五种模式,但内部不以单一枚举承担全部语义。路由始终保留两个正交维度:
|
|
31
|
+
|
|
32
|
+
| 用户模式 | continuity | assurance | 典型用途 |
|
|
33
|
+
| --- | --- | --- | --- |
|
|
34
|
+
| `off` | `none` | `none` | 分析、文档、一次性探索、无需复用证据的小任务 |
|
|
35
|
+
| `light` | `none` | `quick` | 单 writer、低风险、一个冻结候选、一条精确验证命令 |
|
|
36
|
+
| `managed` | `project_driver` | WorkItem 级 `none/quick/formal` | 跨会话目标、交接、checkpoint、gate |
|
|
37
|
+
| `formal` | 依连续性事实自动选择 | `formal` | 真正高风险或合同要求正式验收的边界 |
|
|
38
|
+
| `auto` | 按事实选择 | 按事实选择 | 默认推荐 |
|
|
39
|
+
|
|
40
|
+
模式只表达工作流偏好,不表达授权。任何模式都不得授予 Git、发布、部署、生产或
|
|
41
|
+
业务权限。
|
|
42
|
+
|
|
43
|
+
下列事实强制 Formal:多 writer、权限或安全边界、资金、不可逆变更、回滚不确定、
|
|
44
|
+
schema/data migration、明确 Formal acceptance。`off/light/managed` 不能覆盖这些
|
|
45
|
+
事实。
|
|
46
|
+
|
|
47
|
+
下列标签或事实单独出现时不强制 Formal:普通项目源码修改、`longRunning`、
|
|
48
|
+
`interruptionRecovery`、production、release、deployment。长周期和中断恢复主要
|
|
49
|
+
选择 Project Driver;单 writer、可回滚且有业务读回的普通源码变更可以是
|
|
50
|
+
`managed + quick`。风险被 containment 后必须重新路由,升级不具有粘性。
|
|
51
|
+
|
|
52
|
+
## 0.18.0 已有能力
|
|
53
|
+
|
|
54
|
+
- Quick Verification 保存 source-bound 命令回执、stdout/stderr 和失败状态。
|
|
55
|
+
- Project Driver 保存目标、WorkItem、依赖、checkpoint、handoff、decision、
|
|
56
|
+
verification gate 和 takeover 状态。
|
|
57
|
+
- Formal Delivery 提供候选、lease、严格证据与正式验收边界。
|
|
58
|
+
- 所有这些能力都保持 `authorizationGranted=false`,验收与 Git/发布/部署/业务授权
|
|
59
|
+
分离。
|
|
60
|
+
|
|
61
|
+
0.18.0 并没有提供五模式入口,也没有解决本次现场暴露的历史 metrics、Quick 后续
|
|
62
|
+
命令、`quick-attest --help` 和 Skill/Core 版本漂移诊断。
|
|
63
|
+
|
|
64
|
+
## 本轮 0.18.1 候选实现
|
|
65
|
+
|
|
66
|
+
### 使用模式只读入口
|
|
67
|
+
|
|
68
|
+
新增:
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
owlrunkit mode recommend --workspace "$PWD"
|
|
72
|
+
owlrunkit mode status --workspace "$PWD"
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
普通输出为人类可读文本;`--json` 提供严格机器结果。推荐结果包含:推荐模式、
|
|
76
|
+
continuity、assurance、触发原因、被拒绝的较轻模式、预计新增步骤和证据数、下一条
|
|
77
|
+
命令、降级是否允许,以及完整权限边界。
|
|
78
|
+
|
|
79
|
+
`mode status` 当前只报告 `default_auto`,不创建 `.owlcoda`,也不暗示已有持久化
|
|
80
|
+
设置。本轮没有实现 `mode set`。
|
|
81
|
+
|
|
82
|
+
### MVP 一致性修复
|
|
83
|
+
|
|
84
|
+
- `quick-metrics` 以历史回执自身的 `exitResult` 与 `mutationDecision` 统计 pass、
|
|
85
|
+
fail 和 source mutation;当前 workspace 漂移不再改写历史结果。回执 schema、
|
|
86
|
+
snapshot binding 和输出材料仍校验;Core/context 的信任结论继续由
|
|
87
|
+
`quick-attest` 独立报告,不改写历史运行统计。
|
|
88
|
+
- Quick 结果的后续命令改为可执行的
|
|
89
|
+
`owlrunkit quick-attest --workspace ... --receipt ...`。
|
|
90
|
+
- `quick-attest --help` 返回 action-specific help。
|
|
91
|
+
- assurance router 不再因普通 project mutation、long-running、interruption
|
|
92
|
+
recovery 或 production/release/deployment 标签自动升级 Formal;真正强制事实仍
|
|
93
|
+
fail closed,且解除后可以降级。
|
|
94
|
+
- Skill installer 的只读 `inspect` 同时检查受管文件完整性与运行包的
|
|
95
|
+
Skill/config Core 版本;版本旧时明确返回 `version_mismatch`。
|
|
96
|
+
- 同一候选内的 profile 一致性修复不再为不存在、也无法从真实脚本/workspace
|
|
97
|
+
推导出的 `src/**`、`tests/**` 制造阻塞项,并提供现有 profile 的原子 reconcile。
|
|
98
|
+
|
|
99
|
+
## 后续缺口
|
|
100
|
+
|
|
101
|
+
### P1:Quick warning 需要可行动语义
|
|
102
|
+
|
|
103
|
+
把 `quick_ignored_artifact_unbound` 区分为不影响当前决策的 maintenance note 与会
|
|
104
|
+
阻断复用的 issue。验收标准:GO 回执不再永久携带无法行动的高噪声告警;任何被
|
|
105
|
+
降级的提示仍在详细输出中可查,真实材料缺口继续 fail closed。
|
|
106
|
+
|
|
107
|
+
### P1:Project Driver 日常动作减负
|
|
108
|
+
|
|
109
|
+
自动生成安全的事件 ID 和时间戳,并提供一个原子“完成 WorkItem 并在条件满足时
|
|
110
|
+
integrate”动作;`completedUnits` 可从已声明的单工作项单位推导。验收标准:普通
|
|
111
|
+
单项完成不需要手填 ID/时间戳,也不需要两次独立命令,同时 append-only 事件和
|
|
112
|
+
重试幂等性不变。
|
|
113
|
+
|
|
114
|
+
### P1:验证指纹按真实路径范围绑定
|
|
115
|
+
|
|
116
|
+
Quick/coverage 应区分验证声明覆盖的源码、仅文档/空白变化和真正全局 gate。验收
|
|
117
|
+
标准:不相关文档或空白变化不会诱导重复大测试;声明范围内变化、lockfile 变化和
|
|
118
|
+
global gate 仍正确失效。
|
|
119
|
+
|
|
120
|
+
### P2:持久化模式偏好
|
|
121
|
+
|
|
122
|
+
只有在只读推荐经过更多 dogfood 后再评估
|
|
123
|
+
`owlrunkit mode set --mode auto|off|light|managed|formal`。验收标准:偏好具有明确
|
|
124
|
+
来源和审计读回,且永远不能覆盖强制 Formal 路由。
|
|
125
|
+
|
|
126
|
+
## 不能声称的内容
|
|
127
|
+
|
|
128
|
+
- 本文主体形成时记录的是 0.18.1 发布前候选;0.18.1 后续发布事实以
|
|
129
|
+
`docs/PRODUCT-TRUTH.md` 和独立 release receipt 为准。本文本身不证明 npm、Core、
|
|
130
|
+
Skill 或任何项目已升级。
|
|
131
|
+
- `mode recommend` 根据调用者提供的结构化事实路由;它不会自动发现所有业务、
|
|
132
|
+
权限、资金或迁移风险。
|
|
133
|
+
- RunKit 降低进度、证据和完成状态幻觉,不直接解决 Sierac MES 业务问答幻觉。
|
|
134
|
+
后者仍由 canonical 接口、schema、adapter 与 Answer Harness 负责。
|
|
135
|
+
- Quick 不是 Formal acceptance,Project Driver 不是测试执行器,任何 GO/accepted
|
|
136
|
+
结果都不授予 Git、发布、部署、生产或业务权限。
|
|
137
|
+
|
|
138
|
+
## 版本建议
|
|
139
|
+
|
|
140
|
+
本组变更当时适合形成 `owlrunkit@0.18.1` 小版本候选:它保持 0.18 的 Project Driver
|
|
141
|
+
和回执合同,新增只读 CLI,并修复 dogfood 验证出的行为缺陷。候选只有在聚焦测试、
|
|
142
|
+
RunKit contract/package gate、Core 身份同步、pack 内容检查和安装 smoke 都通过后
|
|
143
|
+
才具备发布评审资格;发布、项目升级与运行时激活仍是之后的独立动作。
|
|
144
|
+
|
|
145
|
+
## 0.18.2 dogfood 补丁追加
|
|
146
|
+
|
|
147
|
+
0.18.1 发布后,Sierac MES 与 OwlChen 的项目级使用继续证明 `managed + quick` 是普通
|
|
148
|
+
跨会话源码 Wave 的合适默认,Formal 只应由真实高风险事实触发。OwlChen 已读回项目
|
|
149
|
+
本地 0.18.1 的 doctor、profiles、Formal、Quick、metrics 与模式选择器主路径;进程级
|
|
150
|
+
共享 Skill 因另一项目存在 active execution/lease 而停止升级,这是正确的安全边界,
|
|
151
|
+
不是缺陷。
|
|
152
|
+
|
|
153
|
+
这些后续 dogfood 暴露的缺口适合形成 0.18.2 patch,而不是新增平台能力:
|
|
154
|
+
|
|
155
|
+
- symlink workspace 拒绝时直接给出 canonical `--workspace`,包括 macOS
|
|
156
|
+
`/tmp` 到 `/private/tmp`;
|
|
157
|
+
- `project checkpoint --help` 和 measured WorkItem 缺参错误给出完整命令;
|
|
158
|
+
- Quick 顶层返回有界 stdout/stderr 摘要,同时完整日志继续由回执绑定;
|
|
159
|
+
- doctor 对 registry transport 做一次重试、每次保留原有超时上限,并区分 DNS、连接、
|
|
160
|
+
超时、HTTP、认证和版本缺失;
|
|
161
|
+
- `quick-verify --help` 可用,risk category 的帮助与错误列出同一组规范值;
|
|
162
|
+
- profile 纯格式规范化计划显式返回 `normalizationOnly: true`;
|
|
163
|
+
- package README 与五模式、profile reconcile 的已实现真值一致。
|
|
164
|
+
|
|
165
|
+
当前这些内容只是本地 `owlrunkit@0.18.2` 候选。它不代表 commit、tag、npm 发布、
|
|
166
|
+
全局 Skill 更新、OwlChen/OwlFootball 迁移或任何业务授权已经发生。
|
|
@@ -7,10 +7,10 @@ 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 release: standalone `owlrunkit@0.18.
|
|
11
|
-
Core `0.18.
|
|
12
|
-
`sha256:
|
|
13
|
-
The published `owlrunkit@0.
|
|
10
|
+
Bundled release: standalone `owlrunkit@0.18.2`, bundling Contract `0.2` and
|
|
11
|
+
Core `0.18.2` with manifest
|
|
12
|
+
`sha256:abe17ff794b4019d8d476f09eb5d4105bae1070b1df0aab53e6c94c7ec8b65a6`.
|
|
13
|
+
The published `owlrunkit@0.18.1` package is the trusted prior for rollback;
|
|
14
14
|
verify exact official npm registry provenance before adoption. The immutable
|
|
15
15
|
rollback baseline for the prior release is `owlrunkit@0.16.1` with SHA-1
|
|
16
16
|
`1bc119d24879bdd8959af16b364af55ca9d61ea9` and canonical npm tarball URL
|
|
@@ -55,9 +55,10 @@ remains available for existing automation and compatibility.
|
|
|
55
55
|
check is no longer required, first resolve an explicit project decision and
|
|
56
56
|
close it as `no_longer_required` with that decision ID. Never report the
|
|
57
57
|
second disposition as a passing test.
|
|
58
|
-
- "Verify/finish": select
|
|
59
|
-
bind a Formal WorkItem to its actual execution and lease when
|
|
60
|
-
Multi-Agent coordination
|
|
58
|
+
- "Verify/finish": select continuity and assurance independently from the
|
|
59
|
+
underlying risk; bind a Formal WorkItem to its actual execution and lease when
|
|
60
|
+
applicable. Multi-Agent coordination, long duration, or interruption recovery
|
|
61
|
+
alone does not select Formal.
|
|
61
62
|
|
|
62
63
|
For a multi-Agent project, checkpoint meaningful state changes promptly. A
|
|
63
64
|
checkpoint is not a heartbeat and must not contain a guessed percentage.
|
|
@@ -244,6 +245,11 @@ node "$RUNKIT_PACKAGE_ROOT/scripts/runkit-contract/install-codex-skill.mjs" \
|
|
|
244
245
|
--target "$RUNKIT_SKILL_TARGET" --archive "$RUNKIT_SKILL_ARCHIVE_ROOT"
|
|
245
246
|
```
|
|
246
247
|
|
|
248
|
+
`inspect` checks both managed-file integrity and the Skill/config Core version
|
|
249
|
+
against the package that runs the command. A `version_mismatch` result is an
|
|
250
|
+
explicit upgrade diagnostic; it is not evidence that the installed Skill was
|
|
251
|
+
loaded into the current session and grants no update authority.
|
|
252
|
+
|
|
247
253
|
The install manifest binds every Skill, Core, contract and attest file.
|
|
248
254
|
Unknown installed drift fails closed instead of being overwritten. A changed
|
|
249
255
|
process-wide Skill requires a registered complete fleet. Register each coverage
|
|
@@ -332,6 +338,8 @@ owlrunkit fleet register-root --fleet-root /absolute/declared-projects
|
|
|
332
338
|
owlrunkit fleet discover
|
|
333
339
|
owlrunkit profiles detect --workspace "$PROJECT_ROOT" --dry-run
|
|
334
340
|
owlrunkit profiles detect --workspace "$PROJECT_ROOT" --apply
|
|
341
|
+
owlrunkit profiles reconcile --workspace "$PROJECT_ROOT" --dry-run
|
|
342
|
+
owlrunkit mode recommend --workspace "$PROJECT_ROOT"
|
|
335
343
|
owlrunkit assurance route --workspace "$PROJECT_ROOT" \
|
|
336
344
|
--request "$ASSURANCE_REQUEST_JSON"
|
|
337
345
|
owlrunkit status --workspace "$PROJECT_ROOT"
|
|
@@ -340,28 +348,45 @@ owlrunkit status --workspace "$PROJECT_ROOT"
|
|
|
340
348
|
Fleet discovery is complete only within all registered coverage roots, an
|
|
341
349
|
explicit one-off root list, or a caller-supplied frozen `--fleet-manifest`. It
|
|
342
350
|
refuses unreachable roots and cannot protect projects outside registered
|
|
343
|
-
coverage. `profiles detect --apply`
|
|
344
|
-
high-confidence, project-local regular-file launchers;
|
|
345
|
-
|
|
351
|
+
coverage. `profiles detect --apply` creates only an absent profile set and
|
|
352
|
+
adopts only unambiguous high-confidence, project-local regular-file launchers;
|
|
353
|
+
`profiles reconcile` previews or atomically updates an existing profile set
|
|
354
|
+
with a rollback receipt. Low-confidence candidates remain untouched. Lock-bound npm and exact
|
|
346
355
|
project-installed pnpm, Yarn, and Bun launchers are supported; PATH-only
|
|
347
356
|
package managers remain review-required. `assurance route`
|
|
348
357
|
deterministically selects No RunKit, Quick Verification or Formal Delivery
|
|
349
358
|
from explicit risk facts and fails closed to Formal when required facts are
|
|
350
359
|
missing.
|
|
351
360
|
|
|
352
|
-
## Choose
|
|
361
|
+
## Choose continuity and assurance independently
|
|
362
|
+
|
|
363
|
+
Start with `owlrunkit mode recommend --workspace "$PROJECT_ROOT"`. The five
|
|
364
|
+
user-facing modes are presets over two independent dimensions:
|
|
365
|
+
|
|
366
|
+
- continuity: `none | project_driver`
|
|
367
|
+
- assurance: `none | quick | formal`
|
|
353
368
|
|
|
354
|
-
|
|
355
|
-
|
|
369
|
+
Use `off` for analysis, documentation, and disposable exploration; `light` for
|
|
370
|
+
one frozen low-risk candidate plus one Quick command; `managed` for Project
|
|
371
|
+
Driver continuity with per-WorkItem assurance; and `formal` only at a genuine
|
|
372
|
+
Formal boundary. `auto` derives those choices from facts. The selected mode is
|
|
373
|
+
a workflow preference, never authorization.
|
|
356
374
|
|
|
357
375
|
- Use ordinary project tools without RunKit for disposable prototypes, early
|
|
358
376
|
research, visual exploration or clean short tasks that need no durable
|
|
359
377
|
handoff, evidence consumption or formal acceptance.
|
|
360
378
|
- Use Quick Verification for one low-risk command that needs a source-bound,
|
|
361
379
|
reusable verification receipt but no writer lease or formal acceptance.
|
|
362
|
-
- Use
|
|
363
|
-
|
|
364
|
-
|
|
380
|
+
- Use Project Driver for cross-session, long-running, interrupted, or durable
|
|
381
|
+
handoff needs. A managed WorkItem may still use no assurance or one Quick.
|
|
382
|
+
- Use Formal Delivery for multi-writer work, permission or security boundaries,
|
|
383
|
+
funds, irreversible changes, uncertain rollback, schema/data migration, or
|
|
384
|
+
an explicit Formal-acceptance contract.
|
|
385
|
+
|
|
386
|
+
Production, release, deployment, ordinary source mutation, long duration, and
|
|
387
|
+
interruption labels do not force Formal by themselves. When the forcing fact is
|
|
388
|
+
contained, route again and allow de-escalation. `off`, `light`, or `managed`
|
|
389
|
+
cannot override a still-present mandatory Formal fact.
|
|
365
390
|
|
|
366
391
|
If work crosses lanes, re-evaluate risk and authority. Moving from Quick to
|
|
367
392
|
Formal requires a fresh GoalContract, exact write scope, profiles and authority;
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
"schemaVersion": "OwlCodaRunKitConfigV2",
|
|
3
3
|
"core": {
|
|
4
4
|
"contractVersion": "0.2",
|
|
5
|
-
"coreVersion": "0.18.
|
|
6
|
-
"coreManifestSha256": "sha256:
|
|
7
|
-
"coreSourceRef": "artifact:sha256:
|
|
5
|
+
"coreVersion": "0.18.2",
|
|
6
|
+
"coreManifestSha256": "sha256:abe17ff794b4019d8d476f09eb5d4105bae1070b1df0aab53e6c94c7ec8b65a6",
|
|
7
|
+
"coreSourceRef": "artifact:sha256:abe17ff794b4019d8d476f09eb5d4105bae1070b1df0aab53e6c94c7ec8b65a6"
|
|
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.18.
|
|
3
|
+
"version": "0.18.2",
|
|
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>",
|
|
@@ -36,10 +36,20 @@
|
|
|
36
36
|
"sha256": "sha256:3972dc9744f6499f0f9b2dbf76696f2ae7ad8af9b23dde66d6af86c9dfb36986"
|
|
37
37
|
},
|
|
38
38
|
"supportedProducerCoreIdentities": [
|
|
39
|
+
{
|
|
40
|
+
"contractVersion": "0.2",
|
|
41
|
+
"coreVersion": "0.18.2",
|
|
42
|
+
"coreManifestSha256": "sha256:abe17ff794b4019d8d476f09eb5d4105bae1070b1df0aab53e6c94c7ec8b65a6"
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"contractVersion": "0.2",
|
|
46
|
+
"coreVersion": "0.18.1",
|
|
47
|
+
"coreManifestSha256": "sha256:349b4157d3d089462b172de1619ccd169b5c1669b9322e2580ac6ec4f8616b07"
|
|
48
|
+
},
|
|
39
49
|
{
|
|
40
50
|
"contractVersion": "0.2",
|
|
41
51
|
"coreVersion": "0.18.0",
|
|
42
|
-
"coreManifestSha256": "sha256:
|
|
52
|
+
"coreManifestSha256": "sha256:72c481dbafe06a9c56cd940d74a3fe109a82b73a3c43d0bb54923ea6c584c04e"
|
|
43
53
|
},
|
|
44
54
|
{
|
|
45
55
|
"contractVersion": "0.2",
|
|
@@ -18,10 +18,20 @@ import { captureWorkspaceSnapshot } from "./workspace-snapshot.mjs";
|
|
|
18
18
|
export { validQuickReceiptShape } from "./quick-receipt-contract.mjs";
|
|
19
19
|
|
|
20
20
|
export const SUPPORTED_QUICK_CORE_IDENTITIES = Object.freeze([
|
|
21
|
+
{
|
|
22
|
+
contractVersion: "0.2",
|
|
23
|
+
coreVersion: "0.18.2",
|
|
24
|
+
coreManifestSha256: "sha256:abe17ff794b4019d8d476f09eb5d4105bae1070b1df0aab53e6c94c7ec8b65a6",
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
contractVersion: "0.2",
|
|
28
|
+
coreVersion: "0.18.1",
|
|
29
|
+
coreManifestSha256: "sha256:349b4157d3d089462b172de1619ccd169b5c1669b9322e2580ac6ec4f8616b07",
|
|
30
|
+
},
|
|
21
31
|
{
|
|
22
32
|
contractVersion: "0.2",
|
|
23
33
|
coreVersion: "0.18.0",
|
|
24
|
-
coreManifestSha256: "sha256:
|
|
34
|
+
coreManifestSha256: "sha256:72c481dbafe06a9c56cd940d74a3fe109a82b73a3c43d0bb54923ea6c584c04e",
|
|
25
35
|
},
|
|
26
36
|
{
|
|
27
37
|
contractVersion: "0.2",
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"schemaVersion": "OwlCodaRunKitRegistryReleasePolicyV1",
|
|
3
3
|
"status": "release_candidate_unpublished",
|
|
4
4
|
"packageName": "owlrunkit",
|
|
5
|
-
"candidateVersion": "0.18.
|
|
5
|
+
"candidateVersion": "0.18.2",
|
|
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.
|
|
27
|
-
"shasum": "
|
|
28
|
-
"integrity": "sha512-
|
|
29
|
-
"tarballUrl": "https://registry.npmjs.org/owlrunkit/-/owlrunkit-0.
|
|
26
|
+
"version": "0.18.1",
|
|
27
|
+
"shasum": "6d35c15f90ed775c583356754b831856d1a3c0a6",
|
|
28
|
+
"integrity": "sha512-07wWnSfY6RUavcb+ZpUbZ1S0nBjN7/8VIFHyP6blOB+PIrDnnST/8f7CoLgADYpfwjZiF5gR9U6XFwXa0kgVrg==",
|
|
29
|
+
"tarballUrl": "https://registry.npmjs.org/owlrunkit/-/owlrunkit-0.18.1.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.18.
|
|
6
|
-
"documentNamespace": "https://owlcoda.com/spdx/owlrunkit/0.18.
|
|
5
|
+
"name": "owlrunkit-0.18.2",
|
|
6
|
+
"documentNamespace": "https://owlcoda.com/spdx/owlrunkit/0.18.2",
|
|
7
7
|
"creationInfo": {
|
|
8
8
|
"created": "2026-07-29T00:00:00Z",
|
|
9
9
|
"creators": [
|
|
@@ -14,8 +14,8 @@
|
|
|
14
14
|
{
|
|
15
15
|
"name": "owlrunkit",
|
|
16
16
|
"SPDXID": "SPDXRef-Package-OwlRunKit",
|
|
17
|
-
"versionInfo": "0.18.
|
|
18
|
-
"downloadLocation": "https://registry.npmjs.org/owlrunkit/-/owlrunkit-0.18.
|
|
17
|
+
"versionInfo": "0.18.2",
|
|
18
|
+
"downloadLocation": "https://registry.npmjs.org/owlrunkit/-/owlrunkit-0.18.2.tgz",
|
|
19
19
|
"filesAnalyzed": false,
|
|
20
20
|
"licenseConcluded": "GPL-3.0-or-later",
|
|
21
21
|
"licenseDeclared": "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.18.
|
|
27
|
+
"referenceLocator": "pkg:npm/owlrunkit@0.18.2"
|
|
28
28
|
}
|
|
29
29
|
]
|
|
30
30
|
}
|