owlrunkit 0.18.4 → 0.19.1

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.
Files changed (50) hide show
  1. package/CHANGELOG.md +49 -0
  2. package/README.md +109 -4
  3. package/docs/architecture/OWLCODA_RUNKIT_0190_CONSOLIDATED_DAILY_USE_PRODUCT_DECISION_20260812.md +100 -0
  4. package/docs/architecture/OWLCODA_RUNKIT_0191_PROFILE_RECONCILE_PATCH_PRODUCT_DECISION_20260813.md +30 -0
  5. package/docs/architecture/OWLCODA_RUN_KIT_CONTRACT_V0_2.md +57 -0
  6. package/integrations/codex/skills/owlcoda-runkit/SKILL.md +28 -4
  7. package/integrations/codex/skills/owlcoda-runkit/assets/templates/config.json +3 -3
  8. package/integrations/codex/skills/owlcoda-runkit/references/contract-v0.2.md +57 -0
  9. package/package.json +1 -1
  10. package/packages/attest/README.md +9 -5
  11. package/packages/attest/consumer-surface-v2.json +263 -0
  12. package/packages/attest/distribution-manifest-v1.json +14 -1
  13. package/packages/attest/schemas/quick-verification-receipt-v3.schema.json +244 -0
  14. package/packages/attest/schemas/workspace-snapshot-v2.schema.json +114 -0
  15. package/packages/attest/src/dependency-environment.mjs +128 -0
  16. package/packages/attest/src/index.mjs +1 -0
  17. package/packages/attest/src/quick-receipt-contract.mjs +202 -9
  18. package/packages/attest/src/quick.mjs +45 -4
  19. package/packages/attest/src/workspace-snapshot.mjs +133 -6
  20. package/registry-release-policy-v1.json +5 -5
  21. package/sbom.spdx.json +5 -5
  22. package/scripts/runkit-contract/core-contract.mjs +21 -1
  23. package/scripts/runkit-contract/efficiency-metrics.mjs +559 -0
  24. package/scripts/runkit-contract/evidence-store.mjs +130 -0
  25. package/scripts/runkit-contract/onboarding-bootstrap.mjs +685 -0
  26. package/scripts/runkit-contract/onboarding-doctor.mjs +2 -1
  27. package/scripts/runkit-contract/outcome-presentation.mjs +171 -0
  28. package/scripts/runkit-contract/profile-onboarding.mjs +74 -35
  29. package/scripts/runkit-contract/project-cli-resolver.mjs +26 -5
  30. package/scripts/runkit-contract/quick-evidence-reuse.mjs +590 -0
  31. package/scripts/runkit-contract/quick-isolation.mjs +314 -0
  32. package/scripts/runkit-contract/quick-metrics.mjs +51 -3
  33. package/scripts/runkit-contract/quick-receipt.mjs +31 -1
  34. package/scripts/runkit-contract/quick-verify.mjs +216 -25
  35. package/scripts/runkit-contract/quick-workspace-snapshot.mjs +1 -0
  36. package/scripts/runkit-contract/runkit-bootstrap.mjs +1 -0
  37. package/scripts/runkit-contract/runkit-cli.mjs +330 -18
  38. package/scripts/runkit-contract/runtime-transition.mjs +478 -0
  39. package/scripts/runkit-contract/schemas/efficiency-event-v1.schema.json +56 -0
  40. package/scripts/runkit-contract/schemas/efficiency-metrics-v1.schema.json +220 -0
  41. package/scripts/runkit-contract/schemas/external-runtime-report-v1.schema.json +125 -0
  42. package/scripts/runkit-contract/schemas/onboarding-bootstrap-plan-v1.schema.json +168 -0
  43. package/scripts/runkit-contract/schemas/onboarding-bootstrap-receipt-v1.schema.json +130 -0
  44. package/scripts/runkit-contract/schemas/outcome-summary-v1.schema.json +83 -0
  45. package/scripts/runkit-contract/schemas/quick-evidence-reuse-plan-v1.schema.json +59 -0
  46. package/scripts/runkit-contract/schemas/quick-evidence-reuse-receipt-v1.schema.json +79 -0
  47. package/scripts/runkit-contract/schemas/runtime-transition-receipt-v1.schema.json +185 -0
  48. package/scripts/runkit-contract/schemas/team-project-event-v4.schema.json +142 -0
  49. package/scripts/runkit-contract/team-project.mjs +704 -16
  50. package/scripts/runkit-contract/verification-envelope.mjs +15 -18
package/CHANGELOG.md CHANGED
@@ -1,5 +1,54 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.19.1
4
+
5
+ - Fixes profile reconciliation for mature projects where an existing profile
6
+ already owns command IDs such as `npm-build` or `npm-test`. When those
7
+ detected commands have one existing owner, reconciliation extends that owner
8
+ with the detected paths and current authoritative command definitions instead
9
+ of creating an invalid duplicate-command profile.
10
+ - Preserves create-only receipts, atomic rollback, strict profile validation,
11
+ project-local CLI binding, `authorizationGranted=false`, and the separate
12
+ fleet/shared Skill activation gate.
13
+
14
+ ## 0.19.0
15
+
16
+ - Adds `bootstrap --dry-run|--apply` as one exact-registry, project-local,
17
+ lifecycle-locked onboarding transaction. It initializes or upgrades Core,
18
+ reconciles and validates profiles, adopts the release, runs doctor, and
19
+ restores its bounded preimage on failure without refreshing shared Skills.
20
+ - Makes first-use help and empty-profile repair actionable, and reports the
21
+ installed package/Core/Skill identity independently instead of accepting a
22
+ matching version string with drifted Core bytes.
23
+ - Runs Quick commands in an isolated temporary consumer with bounded dependency
24
+ projection and tool-cache directories, separating workspace source changes,
25
+ requested ignored-artifact bindings, and dependency-environment identity.
26
+ - Adds `quick-reuse` planning and execution for a passed prior receipt plus an
27
+ explicitly allowed small delta. Reuse fails closed on prior candidate,
28
+ command, dependency, ignored-binding, or out-of-scope path drift.
29
+ - Stores repeated Quick and Verification Envelope stdout/stderr as verified
30
+ content-addressed evidence objects while retaining the existing receipt-local
31
+ references and create-only receipt semantics.
32
+ - Adds `quick-runtime-verify` with explicit workspace mutation, external
33
+ mutation, rollback, final external state, failed/last-passed stage, and
34
+ recovery lineage fields. Command-reported runtime truth remains distinct from
35
+ independent deployment or business acceptance.
36
+ - Adds Project Event V4 actions for reopening or invalidating upstream work,
37
+ propagating downstream waiting, and atomically transferring responsibility.
38
+ Immutable prior failures, assignments, handoffs, and evidence remain visible.
39
+ - Adds a six-layer human outcome projection that separates candidate identity,
40
+ workspace attestation, verification, product/UX acceptance, deployment/runtime
41
+ activation, and production/business validity; lower layers never promote the
42
+ higher ones automatically.
43
+ - Adds local-only `efficiency record|status` metrics for repeated commands,
44
+ explicit false blocks and manual interventions, handoff wait, and
45
+ time-to-acceptable-result. Receipt count is intentionally not a success
46
+ metric and no telemetry is sent.
47
+ - Preserves the independent continuity and assurance axes, mandatory Formal
48
+ risk routing, strict predecessor contracts, and
49
+ `authorizationGranted=false` for Git, release, deployment, production, and
50
+ business authority.
51
+
3
52
  ## 0.18.4
4
53
 
5
54
  - Adds controller-owned `project target-snapshot --dry-run|--apply` for binding
package/README.md CHANGED
@@ -37,6 +37,21 @@ These additions use Profile Detection V3, Status/Takeover V2, Assurance Route
37
37
  V2, and Usage Mode Recommendation V2; the published predecessor contracts
38
38
  remain unchanged.
39
39
 
40
+ RunKit 0.19.0 consolidates the daily-use dogfood backlog into one release. It
41
+ adds atomic onboarding, isolated Quick dependency/cache execution, bounded
42
+ reuse of unchanged evidence, content-addressed output storage, explicit
43
+ external-runtime and rollback truth, upstream rework propagation, atomic
44
+ transfer actions, business-layer outcome projection, and local efficiency
45
+ metrics. These conveniences do not weaken Formal routing or grant Git,
46
+ release, deployment, production, or business authority.
47
+
48
+ RunKit 0.19.1 fixes mature-project onboarding when an existing owner profile
49
+ already owns command IDs proposed by detection. Reconciliation now extends that
50
+ sole command owner with the newly detected paths and authoritative command
51
+ binding instead of creating a second profile with duplicate IDs. Existing
52
+ owner profiles, strict validation, atomic rollback, and shared-Skill activation
53
+ boundaries remain unchanged.
54
+
40
55
  The 0.18 Project Driver is a bounded surface for new projects and controlled
41
56
  dogfood. Its product name does not claim to be a general long-running,
42
57
  multi-phase, or enterprise control plane. Version 0.18 adds one bounded
@@ -51,7 +66,7 @@ separate authority boundaries.
51
66
  ## Install
52
67
 
53
68
  ```bash
54
- npm install --save-exact owlrunkit@0.18.4
69
+ npm install --save-exact owlrunkit@0.19.1
55
70
  ```
56
71
 
57
72
  Use `npx --no-install owlrunkit` for project commands. The package bootstrap
@@ -66,12 +81,23 @@ the project Config must independently bind the same Core.
66
81
 
67
82
  ```bash
68
83
  npx --no-install owlrunkit --version
84
+ npx --no-install owlrunkit bootstrap --workspace /absolute/path/to/project \
85
+ --exact owlrunkit@0.19.1 --dry-run
86
+ npx --no-install owlrunkit bootstrap --workspace /absolute/path/to/project \
87
+ --exact owlrunkit@0.19.1 --apply
69
88
  npx --no-install owlrunkit init --workspace /absolute/path/to/project
70
89
  npx --no-install owlrunkit doctor --workspace /absolute/path/to/project
71
90
  npx --no-install owlrunkit mode recommend --workspace /absolute/path/to/project
72
91
  npx --no-install owlrunkit mode status --workspace /absolute/path/to/project
73
92
  ```
74
93
 
94
+ `bootstrap` is the complete first-onboarding and eligible idle-upgrade entry.
95
+ It binds the exact project-local package to the official registry, initializes
96
+ Core, reconciles and validates profiles, writes adoption evidence, and reads
97
+ back doctor. Dry-run is zero-write; failed apply restores the governed preimage
98
+ and keeps a failure receipt. It reports shared Skill drift but never silently
99
+ updates a user or fleet Skill.
100
+
75
101
  `mode recommend` is read-only and defaults to human output; add `--json` for a
76
102
  machine contract. The five user modes are presets over `continuity`
77
103
  (`none | project_driver`) and `assurance` (`none | quick | formal`). They never
@@ -186,10 +212,10 @@ classification, and explicit `proven` / `notProven` statements. Omitting
186
212
  `--entry-snapshot` verifies the current candidate bytes but records
187
213
  `overlayStatus=candidate_only`.
188
214
 
189
- The cache classification covers cache paths visible to Git status, such as
215
+ External-delivery intake cache classification covers paths visible to Git status, such as
190
216
  `.vitest/**`, `.vite/**`, `.pytest_cache/**`, and `__pycache__/**`. It does not
191
- claim to bind ignored paths (`ignoredPathsBound=false`) and does not yet create
192
- an isolated dependency consumer or temporary test cache. Lockfile or
217
+ claim to bind ignored paths (`ignoredPathsBound=false`) and does not create a
218
+ Quick isolated consumer. Lockfile or
193
219
  `node_modules` changes outside the packet are disclosed as dependency
194
220
  environment changes. Any other entry-to-candidate delta, or any packet path
195
221
  outside the WorkItem's allowed ownership, blocks import before project truth is
@@ -320,6 +346,17 @@ Run Quick with:
320
346
  npx --no-install owlrunkit quick-verify --workspace . -- npm test
321
347
  npx --no-install owlrunkit quick-verify --workspace . --stdin-file ./remote-check.sh --attest \
322
348
  -- ssh test-host /bin/sh
349
+ npx --no-install owlrunkit quick-verify --workspace . --isolate \
350
+ --dependency-root /absolute/dependency-consumer -- npm test
351
+ npx --no-install owlrunkit quick-verify --workspace . \
352
+ --bind-ignored .generated/audit.json -- node ./verify-generated.mjs
353
+ npx --no-install owlrunkit quick-reuse --workspace . \
354
+ --base-receipt .owlcoda/runkit/quick/receipts/<id>/receipt.json \
355
+ --allow-path src/new-adapter.mjs --dry-run -- node --test tests/new-adapter.test.mjs
356
+ npx --no-install owlrunkit quick-verify --workspace . --capture-runtime \
357
+ -- ./deploy-and-readback.sh
358
+ npx --no-install owlrunkit quick-runtime-verify --workspace . \
359
+ --receipt .owlcoda/runkit/quick/receipts/<id>/runtime-transition.json
323
360
  npx --no-install owlrunkit quick-metrics --workspace .
324
361
  npx --no-install owlrunkit quick-metrics --workspace . --verbose
325
362
  ```
@@ -333,6 +370,50 @@ restore phases remain visible while the complete artifacts stay receipt-bound.
333
370
  `--attest` runs the existing attestation immediately and returns its independent
334
371
  object alongside the Quick result; it does not promote Quick to Formal.
335
372
 
373
+ `--isolate` emits Quick Receipt V3 and runs the exact command from a disposable
374
+ copy of Git-visible candidate files. Common cache variables and temporary files
375
+ point outside the source checkout; new ignored artifacts are disclosed and
376
+ discarded, while a visible source edit in the consumer invalidates the receipt.
377
+ The exact caller-owned command is not an OS write sandbox; direct writes it
378
+ performs outside the consumer remain subject to the explicit before/after
379
+ bindings.
380
+ An optional `--dependency-root` projects an already-installed `node_modules`
381
+ into the consumer, prepends its binary directory, and hash-binds package, lock,
382
+ installed-package, and executable metadata before and after execution. RunKit
383
+ does not install dependencies or contact a registry for this command.
384
+
385
+ Repeatable literal `--bind-ignored` paths opt specific ignored workspace bytes
386
+ into Workspace Snapshot V2. Missing is a bound state; file or directory changes
387
+ invalidate Quick. Unrequested ignored paths remain explicitly outside the
388
+ claim. V1/V2 receipts and Workspace Snapshot V1 keep their existing meanings.
389
+
390
+ `quick-reuse` checks an earlier passed, source-unchanged Quick receipt against
391
+ the current candidate at byte level. A clean commit does not create false drift
392
+ when it preserves the previously dirty candidate bytes. Only literal
393
+ `--allow-path` deltas may remain; any other tracked, untracked, deleted,
394
+ renamed, submodule, or previously bound ignored-path delta blocks before the
395
+ exact command runs. `--apply` then runs only the delta gate and records
396
+ `OwlCodaQuickEvidenceReuseReceiptV1`. It does not promote either Quick receipt
397
+ to Formal, UX, deployment, production, or business acceptance.
398
+
399
+ New Quick output and Verification Envelope stdout/stderr bytes are also placed
400
+ in a project-global create-only SHA-256 object store. Repeated objects reuse the
401
+ same content identity; receipt-local Quick paths remain readable through
402
+ copy-on-write materialization, and historical receipt paths are not rewritten
403
+ or destructively compacted.
404
+
405
+ `--capture-runtime` sets `OWLRUNKIT_RUNTIME_REPORT` to an initially absent,
406
+ receipt-local path. The exact command may write one strict
407
+ `OwlCodaRunKitExternalRuntimeReportV1`; RunKit then keeps the ordinary Quick
408
+ receipt and adds an `OwlCodaRunKitRuntimeTransitionReceiptV1`. The companion
409
+ separates derived `workspaceMutation` from command-reported
410
+ `externalMutation`, and binds ordered stages, failed/last-passed stages,
411
+ rollback, final external state, and recovery artifacts with explicit
412
+ `capturedBefore` and `restoresTo` identities. Missing or inconsistent runtime
413
+ truth fails closed without erasing the Quick receipt. This is a hash-bound
414
+ command report, not an independent external observation or deployment
415
+ authorization; `quick-runtime-verify` verifies stored integrity only.
416
+
336
417
  `quick-metrics` is local-only and returns aggregate counts. Add `--verbose`
337
418
  when the individual receipt paths are needed. The former `--local` flag remains
338
419
  accepted as a compatibility no-op. New successful receipts no longer carry
@@ -340,6 +421,30 @@ the fixed `quick_ignored_artifact_unbound` issue; historical receipts remain
340
421
  strictly readable without surfacing that non-actionable code as an attestation
341
422
  issue.
342
423
 
424
+ Quick's default human result is business-first: it says whether the exact
425
+ verification passed, what candidate/workspace evidence is bound, and keeps
426
+ product/UX, deployment/runtime, and production/business acceptance visibly
427
+ separate. A command-reported runtime transition is labeled as reported rather
428
+ than independently observed. Use `--json` for the strict
429
+ `OwlCodaRunKitOutcomeSummaryV1` projection.
430
+
431
+ RunKit can measure its own local workflow friction without telemetry:
432
+
433
+ ```bash
434
+ npx --no-install owlrunkit efficiency record --workspace . \
435
+ --event-id wave-start --at 2026-08-13T00:00:00.000Z \
436
+ --kind workflow_started --workflow-id wave-1 --summary 'Wave started.'
437
+ npx --no-install owlrunkit efficiency status --workspace .
438
+ npx --no-install owlrunkit efficiency status --workspace . --verbose --json
439
+ ```
440
+
441
+ Repeated Quick command executions are derived from matching command, candidate,
442
+ input, and dependency bindings. False blocks and manual interventions count
443
+ only when explicitly recorded. Handoff wait comes from Project Driver truth;
444
+ time-to-acceptable-result requires paired workflow start/result marks. Receipt
445
+ volume is intentionally not a value metric, and every result keeps Git,
446
+ release, deployment, production, and business authority false.
447
+
343
448
  ## Formal Delivery in three commands
344
449
 
345
450
  Given a Goal Contract and the paths this work item may write, the happy path is:
@@ -0,0 +1,100 @@
1
+ # OwlRunKit 0.19.0 Consolidated Daily-Use Product Decision
2
+
3
+ 状态:**七个 Wave 已实现;私仓、tag、npm 与 exact-registry consumer 发布闭环已完成**
4
+
5
+ ## Decision
6
+
7
+ 0.19.0 是一次整合型小版本后的次版本升级。它不会继续拆出多个 0.18.x,
8
+ 而是在一个 release candidate 中收敛 0.18.4 明确留下、且已被 OwlChen、MES、
9
+ OwlFootball 和 MERM dogfood 重复验证的十类摩擦。
10
+
11
+ 长期产品原则保持不变:RunKit 默认轻、必要时重。它是飞行记录仪和阶段控制器,
12
+ 不是每条研发命令的审批系统。
13
+
14
+ ## Product Axes
15
+
16
+ 用户可见 mode 继续只是两个正交维度的 preset:
17
+
18
+ - continuity:`none | project_driver`
19
+ - assurance:`none | quick | formal`
20
+
21
+ 长周期、跨会话和多阶段主要提高 continuity。只有多 authority、多 writer、资金、
22
+ 权限、安全、不可逆变更、回滚不确定、schema/data migration 或明确 Formal
23
+ acceptance 才强制 Formal。风险解除后允许降级,升级不成为粘性状态。
24
+
25
+ ## 0.19.0 Scope
26
+
27
+ ### Wave 1 — Atomic onboarding
28
+
29
+ - 一条可预览、可原子应用、失败可回滚的 bootstrap;
30
+ - `init --help` 与空 profile 首次接入死锁;
31
+ - project-local exact binding 和 shared Skill drift 的明确诊断。
32
+
33
+ ### Wave 2 — Isolated verification
34
+
35
+ - 临时 dependency consumer 和工具缓存隔离;
36
+ - 源码、ignored cache、dependency environment 三类变化分离;
37
+ - 只有任务明确需要时才哈希绑定 ignored paths。
38
+
39
+ ### Wave 3 — Evidence reuse
40
+
41
+ - 旧 receipt + 小范围允许 delta 的复用规划与精确增量 gate;
42
+ - 大 artifact 以 content-addressed hash/reference 去重,保留可恢复性。
43
+
44
+ ### Wave 4 — Runtime and recovery truth
45
+
46
+ - `workspaceMutation`、`externalMutation`、`rollbackPerformed`、
47
+ `finalExternalState`、`failedStage`、`lastPassedStage`、`rollbackOutcome`;
48
+ - recovery evidence 明确 `capturedBefore`、`restoresTo` 等语义。
49
+
50
+ ### Wave 5 — Rework lifecycle
51
+
52
+ - 原生 reopen/invalidate upstream WorkItem;
53
+ - downstream waiting propagation;
54
+ - 原子 transfer/reject-and-return 高层动作,同时保留不可变底层事件。
55
+
56
+ ### Wave 6 — Human outcome and economics
57
+
58
+ - 收据先展示业务阶段结果、验收层级和未证明边界;
59
+ - 统计重复命令、误阻塞、人工介入、handoff 等待和 time-to-acceptable-result;
60
+ - 指标用于约束 RunKit 自身摩擦,不以 receipt 数量冒充价值。
61
+
62
+ ### Wave 7 — Release closure
63
+
64
+ - predecessor contracts 精确兼容或显式版本化 successor;
65
+ - 独立风险审查、Core identity、packed Skill/package、registry consumer;
66
+ - 一次性发布 `owlrunkit@0.19.0`。
67
+
68
+ ## Safety And Authority Boundaries
69
+
70
+ - 用户 mode 是偏好,不是授权;较轻 mode 不能绕过强制 Formal 事实;
71
+ - RunKit 结果始终保持 `authorizationGranted=false`;
72
+ - receipt acceptance 不等于 commit、push、tag、publish、deploy、production 或业务验收;
73
+ - controller/target 必须是分离的真实目录,冻结 target 不接受控制 artifacts 注入;
74
+ - 已发布 strict schema 不原地重解释,破坏性变化必须新建版本并让 predecessor 共存;
75
+ - bootstrap 不静默刷新用户级/fleet Skill,不静默修改 Git,不联网执行发布动作。
76
+
77
+ ## Evidence Layers
78
+
79
+ 界面与 receipt 必须依次区分:
80
+
81
+ 1. candidate file identity;
82
+ 2. workspace/overlay attestation;
83
+ 3. verification command/test result;
84
+ 4. UX 或独立产品验收;
85
+ 5. deployment/runtime activation;
86
+ 6. production 或业务有效性。
87
+
88
+ 低层证据不得自动提升为高层结论。
89
+
90
+ ## Release Truth And What Cannot Be Claimed
91
+
92
+ - `owlrunkit@0.19.0` 已由私仓 release commit `830aa91c` 发布,npm
93
+ `latest` 已读回为 `0.19.0`;精确 registry consumer 已完成原子
94
+ bootstrap、doctor、profile、inspect、Quick 与 metrics 验证;
95
+ - 发布不等于 fleet/shared Skill 激活、OwlCoda 项目 Core 迁移或任何外部项目
96
+ adoption;这些仍需要各自安全边界和独立读回;
97
+ - 本文记录产品决策和已发布能力,完整 registry 字节、测试与未触碰边界见
98
+ `docs/handoff/OWLCODA_RUNKIT_0190_PRIVATE_GIT_NPM_RELEASE_RECEIPT_20260813.md`;
99
+ - public mirror、官网、8019、全局 Skill、生产与业务验收不属于本次授权,不能
100
+ 从本次 package release 推导为已完成。
@@ -0,0 +1,30 @@
1
+ # OwlRunKit 0.19.1 Profile Reconcile Patch Product Decision
2
+
3
+ 状态:**候选实现完成,发布实况以 registry 读回和发布回执为准**
4
+
5
+ ## Decision
6
+
7
+ 0.19.1 是 0.19.0 的兼容补丁,不扩展 RunKit 的产品范围。真实 OwlCoda
8
+ dogfood 发现,成熟项目已有 profile 持有 `npm-build`、`npm-test` 时,检测器
9
+ 提出新的 `node-quality` profile 会重复这些全局 command ID,使 bootstrap 在
10
+ profile reconcile 阶段失败。
11
+
12
+ 当检测出的 commands 只有一个现有 owner 时,reconcile 现在复用该 owner:
13
+ 增加真实检测到的 paths,并以项目本地 authoritative tool binding 更新对应
14
+ command。它不会新增第二份重复 command,也不会削弱最终 profile 校验。
15
+
16
+ ## Preserved Boundaries
17
+
18
+ - owner profile bytes 仍只通过原子 reconcile 事务更新,失败恢复原始 bytes;
19
+ - 多个不同 command owner 的歧义不会被静默合并;
20
+ - bootstrap、receipt 与 mode 仍不授予 Git、发布、部署、生产或业务权限;
21
+ - npm package 发布、项目 Core adoption 与 process-level shared Skill 激活仍是
22
+ 三个独立状态转换;bootstrap 只诊断 Skill drift,不静默刷新 fleet Skill;
23
+ - 0.19.0 的 continuity、assurance、Formal 和 predecessor-contract 边界不变。
24
+
25
+ ## Evidence And Claims
26
+
27
+ 发布前必须通过成熟项目冲突回归、profile/bootstrap 聚焦测试、完整 RunKit
28
+ gate、Core identity、packed package/Skill、干净 consumer 和 npm registry
29
+ 字节读回。本文不能在这些 Gate 完成前声称 0.19.1 已发布,也不能把一份
30
+ package receipt 冒充 shared Skill 已激活或其他项目已推广。
@@ -478,6 +478,44 @@ bytes as exact stdin, and binds their workspace-relative path, byte size, and
478
478
  SHA-256. V1 remains the no-stdin receipt and stays readable. Neither schema
479
479
  binds undeclared ignored outputs or grants any authority.
480
480
 
481
+ Core `0.19.0` adds `OwlCodaQuickVerificationReceiptV3` for explicit isolation,
482
+ dependency-environment binding, and ignored-path binding. `--isolate` runs a
483
+ Git-visible candidate copy in a disposable consumer and records consumer source
484
+ versus discarded ignored-artifact deltas. `--dependency-root` binds an existing
485
+ dependency environment without installing it. `--bind-ignored` is the only
486
+ operation that emits `OwlCodaWorkspaceSnapshotV2` and claims those selected
487
+ ignored bytes. Workspace source, selected ignored paths, dependency metadata,
488
+ and consumer source mutations are distinct fail-closed facts. Disposable
489
+ ignored artifacts do not mutate or become evidence for the source checkout.
490
+
491
+ Core `0.19.0` also adds `OwlCodaQuickEvidenceReusePlanV1` and
492
+ `OwlCodaQuickEvidenceReuseReceiptV1`. A reuse plan verifies one earlier strict,
493
+ passed, source-unchanged Quick receipt from the same workspace, derives the
494
+ current candidate delta from Git objects plus both snapshots, and refuses any
495
+ path outside literal caller allowances before command execution. Byte-identical
496
+ dirty content later committed to Git remains unchanged evidence. Apply runs one
497
+ exact delta gate through Quick and records both receipt hashes; it grants no
498
+ authority and does not satisfy Formal or higher acceptance layers.
499
+
500
+ Quick output and Verification Envelope stdout/stderr evidence use a project-
501
+ global create-only SHA-256 object store. Existing Quick receipt-local material
502
+ paths remain valid; no historical tree is rewritten or deleted. Object reuse is
503
+ storage/provenance behavior, never additional assurance.
504
+
505
+ Core `0.19.0` can additionally bind external transition truth without changing
506
+ Quick Receipt V1/V2/V3. `quick-verify --capture-runtime` gives the exact child
507
+ an initially absent receipt-local `OWLRUNKIT_RUNTIME_REPORT` path. A strict
508
+ `OwlCodaRunKitExternalRuntimeReportV1` there is projected into a separately
509
+ hashed `OwlCodaRunKitRuntimeTransitionReceiptV1` that binds the Quick receipt
510
+ bytes, report bytes, derived workspace mutation, command-reported external
511
+ mutation, ordered stages, rollback outcome, final external state, and recovery
512
+ artifact `capturedBefore` / `restoresTo` semantics. A failed stage followed by
513
+ a successful rollback remains a failed transition with useful evidence; it is
514
+ not promoted to Quick, Formal, deployment, or business acceptance. Missing or
515
+ inconsistent runtime truth fails closed while preserving the base Quick
516
+ receipt. `quick-runtime-verify` rechecks stored bytes and projection integrity;
517
+ it does not independently re-observe the external runtime or grant authority.
518
+
481
519
  Deterministic `repair` persists a reviewable plan before replay, reuses only
482
520
  fresh receipt-bound coverage, replays pending exact argv, and appends
483
521
  replacement lineage. Failed and orphaned attempts remain inspectable. Repair
@@ -539,6 +577,25 @@ stale Packet, invalid evidence or engine drift must still follow the Core's
539
577
  foreign-project authority. Signing, keys, external anchors and GitHub Actions
540
578
  remain deferred.
541
579
 
580
+ ## Core v0.19 atomic onboarding
581
+
582
+ Core `0.19.0` keeps Contract `0.2` and all existing authority boundaries. The
583
+ versioned `OwlCodaRunKitOnboardingBootstrapPlanV1` dry-run binds the exact
584
+ project-local package and official registry release, checks upgrade safety,
585
+ previews profile reconciliation, reports shared Skill drift, and performs zero
586
+ writes. `bootstrap --apply` rechecks that plan under a project-owned lock, then
587
+ runs Core initialization, profile reconcile/validation, exact adoption and
588
+ doctor readback as one high-level transaction.
589
+
590
+ The transaction governs RunKit config, profiles, their migration/apply
591
+ receipts, and adoption evidence. A failure after mutation restores their exact
592
+ preimage before writing an append-only
593
+ `OwlCodaRunKitOnboardingBootstrapReceiptV1`. A concurrent bootstrap, active or
594
+ invalid project lifecycle, ambiguous project tool, exact-package mismatch, or
595
+ registry mismatch fails closed. The command does not modify package files,
596
+ source, Git, deployments, production, business state, or shared Skills, and it
597
+ never grants those authorities.
598
+
542
599
  ## Deferred work
543
600
 
544
601
  Contract v0.2 still does not add a built-in browser or Electron driver, Plugin,
@@ -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.4`, bundling Contract `0.2` and
11
- Core `0.18.4` with manifest
12
- `sha256:372d4c247e4b40b0fd2f3fe0f5bf928548095bfb7e2e92e9ac66790e2717f77d`.
13
- The published `owlrunkit@0.18.3` package is the trusted prior for rollback;
10
+ Bundled release: standalone `owlrunkit@0.19.1`, bundling Contract `0.2` and
11
+ Core `0.19.1` with manifest
12
+ `sha256:291ef97c93a513eed24a29f75c400b61cefd6a8c0ab228401cf2c6a73ea9e622`.
13
+ The published `owlrunkit@0.19.0` 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
@@ -190,11 +190,23 @@ below has no CLI entry.
190
190
  ## Initialize and inspect
191
191
 
192
192
  ```bash
193
+ npx --no-install owlrunkit bootstrap --workspace "$PROJECT_ROOT" \
194
+ --exact owlrunkit@0.19.1 --dry-run
195
+ npx --no-install owlrunkit bootstrap --workspace "$PROJECT_ROOT" \
196
+ --exact owlrunkit@0.19.1 --apply
193
197
  npx --no-install owlrunkit init --workspace "$PROJECT_ROOT"
194
198
  npx --no-install owlrunkit inspect --json --workspace "$PROJECT_ROOT"
195
199
  npx --no-install owlrunkit status --workspace "$PROJECT_ROOT"
196
200
  ```
197
201
 
202
+ Prefer `bootstrap` for a new standalone-package consumer or an eligible idle
203
+ project upgrade. Its dry-run is zero-write; apply rechecks the exact local
204
+ package and official registry binding under a project-owned lock, then performs
205
+ Core initialization, profile reconcile/validation, adoption and doctor
206
+ readback. A later-step failure restores the governed preimage and leaves a
207
+ failure receipt. Shared Skill inspection is diagnostic only; bootstrap never
208
+ silently changes a user or fleet Skill.
209
+
198
210
  Initialization may write only `.owlcoda/runkit/`. It must not modify business source.
199
211
  It atomically upgrades a known ConfigV1 project or refreshes an older v0.2
200
212
  Core patch identity and writes a local migration receipt with
@@ -246,6 +258,9 @@ npx --no-install owlrunkit quick-metrics \
246
258
 
247
259
  npx --no-install owlrunkit quick-metrics \
248
260
  --workspace "$PROJECT_ROOT" --verbose
261
+
262
+ npx --no-install owlrunkit efficiency status \
263
+ --workspace "$PROJECT_ROOT"
249
264
  ```
250
265
 
251
266
  `--stdin-file` copies and SHA-256-binds at most 1 MiB of regular non-symlink
@@ -256,6 +271,15 @@ default; `--verbose` adds receipt paths. Metrics are always local-only and
256
271
  perform no telemetry or network request; the former `--local` flag remains an
257
272
  accepted compatibility no-op.
258
273
 
274
+ Quick's default human result leads with pass/fail and explicitly separates
275
+ candidate identity, workspace attestation, verification, product/UX,
276
+ deployment/runtime, and production/business evidence. A lower layer never
277
+ promotes a higher layer. Use `efficiency record` only for an observed workflow
278
+ start, confirmed false block, manual intervention, or named acceptable result;
279
+ use `efficiency status` to inspect local repeated commands, handoff wait, and
280
+ time-to-result. These metrics are project-local, perform no telemetry, exclude
281
+ receipt count as a value signal, and grant no additional authority.
282
+
259
283
  Core v0.13 also adds deterministic repair and exact-byte offline transport:
260
284
 
261
285
  ```bash
@@ -2,9 +2,9 @@
2
2
  "schemaVersion": "OwlCodaRunKitConfigV2",
3
3
  "core": {
4
4
  "contractVersion": "0.2",
5
- "coreVersion": "0.18.4",
6
- "coreManifestSha256": "sha256:372d4c247e4b40b0fd2f3fe0f5bf928548095bfb7e2e92e9ac66790e2717f77d",
7
- "coreSourceRef": "artifact:sha256:372d4c247e4b40b0fd2f3fe0f5bf928548095bfb7e2e92e9ac66790e2717f77d"
5
+ "coreVersion": "0.19.1",
6
+ "coreManifestSha256": "sha256:291ef97c93a513eed24a29f75c400b61cefd6a8c0ab228401cf2c6a73ea9e622",
7
+ "coreSourceRef": "artifact:sha256:291ef97c93a513eed24a29f75c400b61cefd6a8c0ab228401cf2c6a73ea9e622"
8
8
  },
9
9
  "authorizationPolicy": "external_explicit_authority_required"
10
10
  }
@@ -478,6 +478,44 @@ bytes as exact stdin, and binds their workspace-relative path, byte size, and
478
478
  SHA-256. V1 remains the no-stdin receipt and stays readable. Neither schema
479
479
  binds undeclared ignored outputs or grants any authority.
480
480
 
481
+ Core `0.19.0` adds `OwlCodaQuickVerificationReceiptV3` for explicit isolation,
482
+ dependency-environment binding, and ignored-path binding. `--isolate` runs a
483
+ Git-visible candidate copy in a disposable consumer and records consumer source
484
+ versus discarded ignored-artifact deltas. `--dependency-root` binds an existing
485
+ dependency environment without installing it. `--bind-ignored` is the only
486
+ operation that emits `OwlCodaWorkspaceSnapshotV2` and claims those selected
487
+ ignored bytes. Workspace source, selected ignored paths, dependency metadata,
488
+ and consumer source mutations are distinct fail-closed facts. Disposable
489
+ ignored artifacts do not mutate or become evidence for the source checkout.
490
+
491
+ Core `0.19.0` also adds `OwlCodaQuickEvidenceReusePlanV1` and
492
+ `OwlCodaQuickEvidenceReuseReceiptV1`. A reuse plan verifies one earlier strict,
493
+ passed, source-unchanged Quick receipt from the same workspace, derives the
494
+ current candidate delta from Git objects plus both snapshots, and refuses any
495
+ path outside literal caller allowances before command execution. Byte-identical
496
+ dirty content later committed to Git remains unchanged evidence. Apply runs one
497
+ exact delta gate through Quick and records both receipt hashes; it grants no
498
+ authority and does not satisfy Formal or higher acceptance layers.
499
+
500
+ Quick output and Verification Envelope stdout/stderr evidence use a project-
501
+ global create-only SHA-256 object store. Existing Quick receipt-local material
502
+ paths remain valid; no historical tree is rewritten or deleted. Object reuse is
503
+ storage/provenance behavior, never additional assurance.
504
+
505
+ Core `0.19.0` can additionally bind external transition truth without changing
506
+ Quick Receipt V1/V2/V3. `quick-verify --capture-runtime` gives the exact child
507
+ an initially absent receipt-local `OWLRUNKIT_RUNTIME_REPORT` path. A strict
508
+ `OwlCodaRunKitExternalRuntimeReportV1` there is projected into a separately
509
+ hashed `OwlCodaRunKitRuntimeTransitionReceiptV1` that binds the Quick receipt
510
+ bytes, report bytes, derived workspace mutation, command-reported external
511
+ mutation, ordered stages, rollback outcome, final external state, and recovery
512
+ artifact `capturedBefore` / `restoresTo` semantics. A failed stage followed by
513
+ a successful rollback remains a failed transition with useful evidence; it is
514
+ not promoted to Quick, Formal, deployment, or business acceptance. Missing or
515
+ inconsistent runtime truth fails closed while preserving the base Quick
516
+ receipt. `quick-runtime-verify` rechecks stored bytes and projection integrity;
517
+ it does not independently re-observe the external runtime or grant authority.
518
+
481
519
  Deterministic `repair` persists a reviewable plan before replay, reuses only
482
520
  fresh receipt-bound coverage, replays pending exact argv, and appends
483
521
  replacement lineage. Failed and orphaned attempts remain inspectable. Repair
@@ -539,6 +577,25 @@ stale Packet, invalid evidence or engine drift must still follow the Core's
539
577
  foreign-project authority. Signing, keys, external anchors and GitHub Actions
540
578
  remain deferred.
541
579
 
580
+ ## Core v0.19 atomic onboarding
581
+
582
+ Core `0.19.0` keeps Contract `0.2` and all existing authority boundaries. The
583
+ versioned `OwlCodaRunKitOnboardingBootstrapPlanV1` dry-run binds the exact
584
+ project-local package and official registry release, checks upgrade safety,
585
+ previews profile reconciliation, reports shared Skill drift, and performs zero
586
+ writes. `bootstrap --apply` rechecks that plan under a project-owned lock, then
587
+ runs Core initialization, profile reconcile/validation, exact adoption and
588
+ doctor readback as one high-level transaction.
589
+
590
+ The transaction governs RunKit config, profiles, their migration/apply
591
+ receipts, and adoption evidence. A failure after mutation restores their exact
592
+ preimage before writing an append-only
593
+ `OwlCodaRunKitOnboardingBootstrapReceiptV1`. A concurrent bootstrap, active or
594
+ invalid project lifecycle, ambiguous project tool, exact-package mismatch, or
595
+ registry mismatch fails closed. The command does not modify package files,
596
+ source, Git, deployments, production, business state, or shared Skills, and it
597
+ never grants those authorities.
598
+
542
599
  ## Deferred work
543
600
 
544
601
  Contract v0.2 still does not add a built-in browser or Electron driver, Plugin,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "owlrunkit",
3
- "version": "0.18.4",
3
+ "version": "0.19.1",
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>",
@@ -1,15 +1,18 @@
1
1
  # `@owlcoda/attest`
2
2
 
3
3
  `@owlcoda/attest` is OwlCoda RunKit's unsigned, read-only verification plane.
4
- It verifies Quick Receipt V1 and V2 artifacts, Formal public verification
4
+ It verifies Quick Receipt V1, V2, and V3 artifacts, Formal public verification
5
5
  bundles, and local `OwlCodaAttestationRefV1` references without importing the
6
6
  private mutation Core. V2 adds one hash-bound stdin material while preserving
7
- the same unsigned, authorization-free assurance boundary.
7
+ the same unsigned, authorization-free assurance boundary. V3 adds a disposable
8
+ consumer record, optional dependency-environment binding, and explicit ignored
9
+ workspace bindings while leaving V1/V2 unchanged.
8
10
 
9
11
  The package is an unsigned V1 distribution candidate. It is intentionally
10
12
  marked private until naming clearance and release authorization exist.
11
- `consumer-surface-v1.json` freezes the complete command, schema, reference,
12
- issue-code, compatibility, privacy, metrics, and unsupported-claim covenant.
13
+ `consumer-surface-v1.json` remains the byte-compatible predecessor contract.
14
+ `consumer-surface-v2.json` adds Receipt V3, Snapshot V2, isolated Quick, and
15
+ explicit ignored-path issue codes without reinterpreting V1.
13
16
 
14
17
  ## CLI
15
18
 
@@ -58,7 +61,8 @@ in the repository documentation under
58
61
  receipts but does not require N-1 to trust an unknown future Core identity.
59
62
 
60
63
  The packed candidate includes its GPL-3.0-or-later license, a package-level
61
- SPDX 2.3 SBOM, and the frozen Consumer Surface V1 manifest. Local metrics never
64
+ SPDX 2.3 SBOM, the frozen Consumer Surface V1 manifest, and the additive V2
65
+ surface. Local metrics never
62
66
  send telemetry and are not a performance target. They describe local receipt
63
67
  state; separate consumption must be evidenced by a caller-owned attestation
64
68
  result.