release-skill 0.9.3 → 0.9.4

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 (53) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/.codebuddy-plugin/plugin.json +1 -1
  4. package/.codex-plugin/plugin.json +2 -2
  5. package/.kimi-plugin/plugin.json +1 -1
  6. package/CHANGELOG.md +29 -0
  7. package/INSTALL.md +2 -2
  8. package/INSTALL.zh-CN.md +2 -2
  9. package/README.md +47 -15
  10. package/README.zh-CN.md +42 -15
  11. package/adapters/claude/.claude-plugin/marketplace.json +1 -1
  12. package/adapters/claude/.claude-plugin/plugin.json +1 -1
  13. package/adapters/claude/bin/consumer-contract-vectors.json +7 -7
  14. package/adapters/claude/bin/foundation-resource-binding.json +1 -1
  15. package/adapters/claude/bin/release-skill.bundle.mjs +651 -190
  16. package/adapters/claude/skills/release-help/SKILL.md +10 -3
  17. package/adapters/claude/skills/release-prepare/SKILL.md +11 -3
  18. package/adapters/codex/.codex-plugin/plugin.json +2 -2
  19. package/adapters/codex/bin/consumer-contract-vectors.json +7 -7
  20. package/adapters/codex/bin/foundation-resource-binding.json +1 -1
  21. package/adapters/codex/bin/release-skill.bundle.mjs +651 -190
  22. package/adapters/codex/skills/release-help/SKILL.md +10 -3
  23. package/adapters/codex/skills/release-prepare/SKILL.md +11 -3
  24. package/adapters/kimi/.kimi-plugin/plugin.json +1 -1
  25. package/adapters/kimi/bin/consumer-contract-vectors.json +7 -7
  26. package/adapters/kimi/bin/foundation-resource-binding.json +1 -1
  27. package/adapters/kimi/bin/release-skill.bundle.mjs +651 -190
  28. package/adapters/kimi/skills/release-help/SKILL.md +10 -3
  29. package/adapters/kimi/skills/release-prepare/SKILL.md +11 -3
  30. package/adapters/workbuddy/.codebuddy-plugin/plugin.json +1 -1
  31. package/adapters/workbuddy/bin/consumer-contract-vectors.json +7 -7
  32. package/adapters/workbuddy/bin/foundation-resource-binding.json +1 -1
  33. package/adapters/workbuddy/bin/release-skill.bundle.mjs +651 -190
  34. package/adapters/workbuddy/skills/release-help/SKILL.md +10 -3
  35. package/adapters/workbuddy/skills/release-prepare/SKILL.md +11 -3
  36. package/bin/consumer-contract-vectors.json +7 -7
  37. package/bin/foundation-resource-binding.json +1 -1
  38. package/bin/release-skill-cli.mjs +26 -2
  39. package/bin/release-skill.bundle.mjs +651 -190
  40. package/package.json +4 -4
  41. package/platform-manifest.json +4 -4
  42. package/references/.render-manifest.json +4 -4
  43. package/references/01-state-machine.md +18 -0
  44. package/references/02-project-config.md +20 -0
  45. package/skills/release-help/SKILL.md +10 -3
  46. package/skills/release-prepare/SKILL.md +11 -3
  47. package/skills-src/release-help/SKILL.md +10 -3
  48. package/skills-src/release-prepare/SKILL.md +11 -3
  49. package/src/commands/post-release-local.mjs +169 -16
  50. package/src/commands/prepare.mjs +183 -7
  51. package/src/commands/ship.mjs +164 -2
  52. package/src/core/foundation-plugin-verification.mjs +22 -2
  53. package/src/producers/foundation-resource-projection.mjs +3 -3
@@ -17,11 +17,15 @@ description: "Discoverable entry point for release-skill: dependency and environ
17
17
  - 只读诊断:运行 dry-run 检查,不修改任何文件
18
18
  - 故障引导:根据错误码指向对应的修复 Skill
19
19
 
20
- ## 0.9.3 候选边界
20
+ ## 0.9.4 候选边界
21
21
 
22
- 当前源码候选已接入四项工作流保护、Hook cache v2 和稳定隔离安装树记录。三项 Foundation 依赖精确使用 0.15.0 的公开包根 API。Hook cache 只复用绝对路径或经真实 cwd 校验的 cwd-relative executable identity;裸 PATH、PATHEXT、Windows 和观察不可用时,Hook 仍冷执行,缓存复用失败关闭且不写入 v2 cache。缓存没有 TTL。
22
+ 当前源码候选允许多发布单元项目在计划冻结前显式选择本轮范围。`prepare` 和新建的 `ship` 状态支持重复传入 `--unit <id>`;未传时继续选择全部配置单元。成功选择会列出选中与延期单元。延期单元不进入本轮计划,也不获得发布状态。
23
23
 
24
- 稳定隔离安装树记录只在宿主命令退出、目录已隔离且扫描期间没有并发写入时执行;宿主附加链接只记录、不跟随,声明载荷中的 symlink 失败关闭,legacy 全树语义保持不变。0.9.3 仍是源码候选,不能从本说明推断已批准、发布或验证。
24
+ 选择只影响按单元绑定的检查与动作。完整配置、生成物新鲜度和顶层 Hook 仍覆盖整个项目。`publicSourceAuthorityReceipt` 涉及的 coordinator 和 subjects 必须作为完整闭包共同选择,系统不会自动扩选。计划冻结后,`plan.units` 是唯一范围权威;publish、reconcile、verify 和 distribute 不接受 `--unit`。
25
+
26
+ 0.9.3 引入的四项工作流保护、Hook cache v2 和稳定隔离安装树记录在 0.9.4 继续保留。0.9.4 精确消费 Foundation 0.16.0 的公开包根 API。Hook cache 只复用绝对路径或经真实 cwd 校验的 cwd-relative executable identity;裸 PATH、PATHEXT、Windows 和观察不可用时,Hook 仍冷执行,缓存复用失败关闭且不写入 v2 cache。缓存没有 TTL。
27
+
28
+ 稳定隔离安装树记录只在宿主命令退出、目录已隔离且扫描期间没有并发写入时执行;宿主附加链接只记录、不跟随,声明载荷中的 symlink 失败关闭,legacy 全树语义保持不变。0.9.4 仍是源码候选,不能从本说明推断已批准、发布或验证。
25
29
 
26
30
  **阶段通过规则**: `status` 与 `readiness.localPreparation.status` 只判断本地 help/assess/prepare;其充要条件是 `READY` 且 exit code 为 0。`missingRequired` 列出缺失的 Node/Git。生产发布必须另外读取 `readiness.productionPublish`:缺少 npm/gh 时为 `NOT_READY`,依赖存在时仍是 `AUTH_CHECK_REQUIRED`,因为 help 不访问网络、不验证认证。Agent 无权把本地就绪解释为生产就绪。
27
31
 
@@ -44,6 +48,9 @@ node "${CODEBUDDY_PLUGIN_ROOT}/bin/release-skill.mjs" assess --root <path> --off
44
48
  # 日常发布快速路径:发布前确认可读计划摘要,状态文件可恢复。
45
49
  # 受限 postPublish hook 的 checkpoint 批准与计划批准分开。
46
50
  node "${CODEBUDDY_PLUGIN_ROOT}/bin/release-skill.mjs" ship --root <path> --target-version <version> --json
51
+ # 多发布单元项目显式选择本轮范围;未传 --unit 时仍为全部单元
52
+ node "${CODEBUDDY_PLUGIN_ROOT}/bin/release-skill.mjs" ship --root <path> \
53
+ --target-version <version> --unit <unit-a> --unit <unit-b> --json
47
54
  # 开发阶段执行声明 hooks 并生成 prepare 可复用的内容绑定收据
48
55
  # 配置时刻即授权(FM-16 处置 A):hook 是任意本地进程、无隔离、触发前无确认点,
49
56
  # 命令调用本身即授权执行配置中的 hooks
@@ -13,7 +13,9 @@ description: Freeze an immutable release plan with local configuration, document
13
13
 
14
14
  运行项目构建/测试 hook,生成公开快照并扫描泄漏,冻结不可变发布计划。prepare 自身不调用发布 adapter,但会执行用户配置的 hook。
15
15
 
16
- 0.9.3 候选的 Hook cache v2 只复用有完整身份和输入证据的成功 Hook 结果。裸 PATHPATHEXTWindows、TTL、损坏记录或 Foundation 观察不可用时,缓存保持失败关闭,Hook 仍按完整路径冷执行;该机制不改变 prepare 的计划、批准和发布权威。
16
+ 0.9.4 候选允许多发布单元项目在冻结前显式选择本轮范围。`--unit <id>` 可以重复传入;未传时仍选择全部单元。显式选择只跳过延期单元的单元级工作,完整配置校验、生成物新鲜度和顶层 Hook 仍全部执行。计划冻结后以 `plan.units` 为唯一范围权威,publishreconcileverify distribute 不接受单元选择。
17
+
18
+ 0.9.3 引入的 Hook cache v2 继续只复用有完整身份和输入证据的成功 Hook 结果。裸 PATH、PATHEXT、Windows、TTL、损坏记录或 Foundation 观察不可用时,缓存保持失败关闭,Hook 仍按完整路径冷执行;该机制不改变 prepare 的计划、批准和发布权威。
17
19
 
18
20
  **Hook 授权契约(配置时刻即授权,FM-16 处置 A)**: hook 是任意本地进程——在 `.release-skill/project.yaml` 中配置 hook 命令即完成授权,构成「配置时刻即授权」的显式契约。hook 不提供沙箱、无文件系统/网络隔离、触发前无确认点,命令调用本身即授权执行已配置的 hook 和 gate,不再设置额外人工授权环节;hook 可能产生项目目录外的副作用或远端写入,配置者须对其内容负责。旧参数 `--acknowledge-hook-side-effects` 和 `--acknowledge-gate-side-effects` 仍可解析,但只作为无效果的兼容输入,不能改变授权或执行语义。恢复「触发前强制确认门」属于后续加固项(属设计变更,需随新版本引入),当前版本不提供该确认门。
19
21
 
@@ -25,11 +27,13 @@ description: Freeze an immutable release plan with local configuration, document
25
27
 
26
28
  **发布文档新鲜度门**: 配置了 `releaseDocuments` 的单元在 hook 授权门前先执行同一只读规划器:`clean` 继续;`changes` 抛 `RELEASE_DOCS_STALE`,详情列出相对路径、语种、`refreshDigest` 和精确演练/写入参数数组。prepare 只检查、不写工作树。正式 prepare 前先运行只读演练;有变化时向用户展示文件/语种/版本/`refreshDigest`,只有在用户明确授权"本地发布文档写入"后,才执行带 `--write --confirm-refresh <refreshDigest> --ack-local-document-write` 三项绑定的写入,随后运行聚焦校验,要求维护者审阅并提交刷新结果,再重新 prepare。该授权不扩展为 hook、提交、push 或 publish 授权。
27
29
 
30
+ **显式发布范围**: 只有用户已经指出本轮要发布哪些单元时,才把这些 ID 逐个传给 `--unit`。release-skill 不根据失败自动排除单元。选择命中 `publicSourceAuthorityReceipt` 的 coordinator 或 subject 时,必须包含收据声明的完整单元闭包;缺少单元时按命令返回的精确 argv 重新选择,不自动扩选。成功后展示 `releaseScope.selectedUnitIds`、`releaseScope.deferredUnitIds` 和批准摘要。延期仅表示没有进入本轮计划,不表示通过或失败。
31
+
28
32
  ## 正向执行路径
29
33
 
30
34
  1. 使用插件根相对路径运行 CLI:`CLI="node ${CODEBUDDY_PLUGIN_ROOT}/bin/release-skill.mjs"`
31
35
  2. 配置含 `releaseDocuments` 时,先运行只读演练 `${CLI} docs refresh --unit <id> --json`;`status: "changes"` 时展示逐文件路径/语种/版本/`refreshDigest`,取得"本地发布文档写入"明确授权后才执行 `nextCommand.argv` 写入,审阅并提交刷新结果后再继续;`status: "clean"` 时直接进入 prepare
32
- 3. 运行 `${CLI} prepare --root <path> --offline --json`
36
+ 3. 运行 `${CLI} prepare --root <path> --offline --json`;用户已明确选择范围时,为每个单元追加一个 `--unit <id>`
33
37
  4. 检查 exit code 0,读取 JSON 返回的 immutable `planPath=plans/<planDigest>.json`,再从该文件读取 `status`、`units`、`externalActions`
34
38
  5. 向用户展示可读的 `approvalSummary`:版本、公开仓库、分支策略、branch/tag、npm 与 GitHub Release 目标、全部外部动作、例外,以及需要独立 checkpoint 批准的 postPublish hook。`planDigest` 仅作为内部绑定字段,不要求用户复制或确认。后续 approve/publish 只能使用该 immutable planPath,等待确认后再 approve。计划批准不包含受限 postPublish hook 的 checkpoint 批准
35
39
 
@@ -64,6 +68,9 @@ node "${CODEBUDDY_PLUGIN_ROOT}/bin/release-skill.mjs" docs refresh --unit <id> -
64
68
  node "${CODEBUDDY_PLUGIN_ROOT}/bin/release-skill.mjs" docs refresh --unit <id> \
65
69
  --write --confirm-refresh <refreshDigest> --ack-local-document-write --json
66
70
  node "${CODEBUDDY_PLUGIN_ROOT}/bin/release-skill.mjs" prepare --root <path> --offline --json
71
+ # 显式选择发布范围;未传 --unit 时仍准备全部配置单元
72
+ node "${CODEBUDDY_PLUGIN_ROOT}/bin/release-skill.mjs" prepare --root <path> --offline \
73
+ --unit <unit-a> --unit <unit-b> --json
67
74
  # 生产 happy end:bound 基线必须 online;远端目标唯一性仍由 publish 全局预检
68
75
  node "${CODEBUDDY_PLUGIN_ROOT}/bin/release-skill.mjs" prepare --root <path> --online --production --json
69
76
  ```
@@ -81,11 +88,12 @@ node "${CODEBUDDY_PLUGIN_ROOT}/bin/release-skill.mjs" prepare --root <path> --on
81
88
  | GATE_FAILED (bound + offline) | 改用 `--online --production`,不得把 unobserved-offline plan 交给 publish |
82
89
  | GATE_FAILED (前序基线漂移) | 先取得并比较实际远端内容;人工选择 merge/adopt/reject。merge/adopt 都必须把接受内容落回 human-owned 权威源,并把 `previousPublicBaseline` 更新为接受状态的精确 repo/ref/commit 后重新 online production prepare;reject 停止调查,禁止改 `mode: none` 绕过 |
83
90
  | GATE_FAILED (`npm-entry-closure`) | 修复打包内容或入口声明后重新 prepare;不得用 `requiredPublicFiles`/`smokeBin` 缺省绕过 |
91
+ | GATE_FAILED(发布范围依赖闭包不完整) | 按详情补齐 `publicSourceAuthorityReceipt` 声明涉及的 coordinator 和全部 subjects,再重新 prepare;不得自动扩选或忽略收据 |
84
92
  | GATE_FAILED (其他) | 修复门失败原因后重试;以 CLI exit code 为准 |
85
93
  | RELEASE_DOCS_STALE | 文档相对说明源已陈旧;按详情运行只读演练,展示文件/语种/版本/摘要,经用户授权“本地发布文档写入”后执行写入,审阅提交再重新 prepare |
86
94
  | RELEASE_DOCS_INVALID / TRANSLATION_MISSING / CONFLICT / REFRESH_STALE | 修复配置/说明源/目标或重新演练取得新 `refreshDigest`;不得扩大写入范围绕过 |
87
95
  | SECRET_DETECTED | 移除密钥并更新 allowlist |
88
- | CONFIG_INVALID | 检查 version.sourcepackage.json |
96
+ | CONFIG_INVALID | 检查 version.sourcepackage.json,以及 `--unit` 是否为空、重复或不在 `releaseUnits[]` 中 |
89
97
 
90
98
  重试时只保留最新结构化错误码和失败门,不沿用早期猜测;重跑确定性命令获得新证据。
91
99
 
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
3
  "kind": "skill-family.contracts.consumer-contract-vectors",
4
- "foundationVersion": "0.15.0",
4
+ "foundationVersion": "0.16.0",
5
5
  "sets": [
6
6
  {
7
7
  "capabilityId": "foundation.contracts.object-validation",
@@ -15,7 +15,7 @@
15
15
  "vectorId": "foundation.contracts.object-validation.consumer-v1.indeterminate",
16
16
  "vectorSetId": "foundation.contracts.object-validation.consumer-v1",
17
17
  "capabilityId": "foundation.contracts.object-validation",
18
- "foundationVersion": "0.15.0",
18
+ "foundationVersion": "0.16.0",
19
19
  "contractId": "skill-family-contracts:validateDocument",
20
20
  "caseClass": "indeterminate",
21
21
  "strategy": "real-pure",
@@ -31,7 +31,7 @@
31
31
  "vectorId": "foundation.contracts.object-validation.consumer-v1.negative",
32
32
  "vectorSetId": "foundation.contracts.object-validation.consumer-v1",
33
33
  "capabilityId": "foundation.contracts.object-validation",
34
- "foundationVersion": "0.15.0",
34
+ "foundationVersion": "0.16.0",
35
35
  "contractId": "skill-family-contracts:validateDocument",
36
36
  "caseClass": "negative",
37
37
  "strategy": "real-pure",
@@ -47,7 +47,7 @@
47
47
  "vectorId": "foundation.contracts.object-validation.consumer-v1.positive",
48
48
  "vectorSetId": "foundation.contracts.object-validation.consumer-v1",
49
49
  "capabilityId": "foundation.contracts.object-validation",
50
- "foundationVersion": "0.15.0",
50
+ "foundationVersion": "0.16.0",
51
51
  "contractId": "skill-family-contracts:validateDocument",
52
52
  "caseClass": "positive",
53
53
  "strategy": "real-pure",
@@ -71,7 +71,7 @@
71
71
  "vectorId": "foundation.harness.atomic-write.consumer-v1.indeterminate",
72
72
  "vectorSetId": "foundation.harness.atomic-write.consumer-v1",
73
73
  "capabilityId": "foundation.harness.atomic-write",
74
- "foundationVersion": "0.15.0",
74
+ "foundationVersion": "0.16.0",
75
75
  "contractId": "skill-family-harness-node:writeFileAtomic",
76
76
  "caseClass": "indeterminate",
77
77
  "strategy": "official-fake",
@@ -84,7 +84,7 @@
84
84
  "vectorId": "foundation.harness.atomic-write.consumer-v1.negative",
85
85
  "vectorSetId": "foundation.harness.atomic-write.consumer-v1",
86
86
  "capabilityId": "foundation.harness.atomic-write",
87
- "foundationVersion": "0.15.0",
87
+ "foundationVersion": "0.16.0",
88
88
  "contractId": "skill-family-harness-node:writeFileAtomic",
89
89
  "caseClass": "negative",
90
90
  "strategy": "official-fake",
@@ -97,7 +97,7 @@
97
97
  "vectorId": "foundation.harness.atomic-write.consumer-v1.positive",
98
98
  "vectorSetId": "foundation.harness.atomic-write.consumer-v1",
99
99
  "capabilityId": "foundation.harness.atomic-write",
100
- "foundationVersion": "0.15.0",
100
+ "foundationVersion": "0.16.0",
101
101
  "contractId": "skill-family-harness-node:writeFileAtomic",
102
102
  "caseClass": "positive",
103
103
  "strategy": "official-fake",
@@ -1 +1 @@
1
- {"kind":"skill-family.foundation-resource-binding","resources":[{"package":"skill-family-contracts","path":"bin/consumer-contract-vectors.json","rel":"src/consumer-contract-vectors.json","sha256":"cb34ae52e111d832b443d9e47c1811d7ea20478b1f4368a0fc9b889265b61b39","size":6628},{"package":"skill-family-contracts","path":"bin/error-codes.json","rel":"src/error-codes.json","sha256":"2cc9367603b62a42f1c3aeff96a5836542e04d10e804d174e56ebede5dddd21a","size":6122},{"package":"skill-family-contracts","path":"bin/foundation-legal/skill-family-contracts/LICENSE","rel":"LICENSE","sha256":"4b1d761838e4612bac9c52ae388d261c8546f78d98c18d59c8e2babacfb96df0","size":11436},{"package":"skill-family-contracts","path":"bin/foundation-legal/skill-family-contracts/NOTICE","rel":"NOTICE","sha256":"0cdc3383ff384f6911679e601c4f541bc9b230a785c8aa11c2e23609618b6ac4","size":390},{"package":"skill-family-engineering-kit","path":"bin/foundation-legal/skill-family-engineering-kit/LICENSE","rel":"LICENSE","sha256":"4b1d761838e4612bac9c52ae388d261c8546f78d98c18d59c8e2babacfb96df0","size":11436},{"package":"skill-family-engineering-kit","path":"bin/foundation-legal/skill-family-engineering-kit/NOTICE","rel":"NOTICE","sha256":"0cdc3383ff384f6911679e601c4f541bc9b230a785c8aa11c2e23609618b6ac4","size":390},{"package":"skill-family-engineering-kit","path":"bin/foundation-legal/skill-family-engineering-kit/THIRD_PARTY_NOTICES","rel":"THIRD_PARTY_NOTICES","sha256":"2510a1fd30bf6e9c723b8b1e42d00bbe3d471747394475e841b4c85474d67973","size":6455},{"package":"skill-family-harness-node","path":"bin/foundation-legal/skill-family-harness-node/LICENSE","rel":"LICENSE","sha256":"4b1d761838e4612bac9c52ae388d261c8546f78d98c18d59c8e2babacfb96df0","size":11436},{"package":"skill-family-harness-node","path":"bin/foundation-legal/skill-family-harness-node/NOTICE","rel":"NOTICE","sha256":"0cdc3383ff384f6911679e601c4f541bc9b230a785c8aa11c2e23609618b6ac4","size":390},{"package":"skill-family-harness-node","path":"bin/foundation-legal/skill-family-harness-node/native-NOTICE","rel":"src/native/NOTICE","sha256":"9b5b2aa89db2ad1bfc1971789992160bc0b9ca3cd37411701d11b9a7ff13fac5","size":116},{"package":"skill-family-contracts","path":"bin/kernel-protocol.json","rel":"src/kernel-protocol.json","sha256":"7e0d0bb7223032e642f71af7125a37f0d9a32965b52f1d096cb7ff9a49b19864","size":2422},{"package":"skill-family-engineering-kit","path":"bin/license-texts/Apache-2.0.txt","rel":"src/license-texts/Apache-2.0.txt","sha256":"c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4","size":11357},{"package":"skill-family-engineering-kit","path":"bin/license-texts/MIT.txt","rel":"src/license-texts/MIT.txt","sha256":"56016cbac6c1d3f565fc854356f6781757254ea34be30a0b75869ae2df0118b6","size":1081},{"package":"skill-family-harness-node","path":"bin/prebuild-manifest.json","rel":"src/native/prebuild-manifest.json","sha256":"76a1e6f99ef5980043df4f328bbe9623dfc8cbba6655e008a8bb1d53d9e49ace","size":2230},{"package":"skill-family-harness-node","path":"bin/prebuilds/darwin-arm64/bound_read.darwin-arm64.node","rel":"src/native/prebuilds/darwin-arm64/bound_read.darwin-arm64.node","sha256":"19ce71026b737ba6b56da78ffabca4bb25f21249c30b545d68633d4b77547fde","size":53424},{"package":"skill-family-harness-node","path":"bin/prebuilds/darwin-x64/bound_read.darwin-x64.node","rel":"src/native/prebuilds/darwin-x64/bound_read.darwin-x64.node","sha256":"e01e4a1df3554da857189f483174d0480eb36063ce17b5857a23fa8a02f4a664","size":28400},{"package":"skill-family-harness-node","path":"bin/prebuilds/linux-arm64-gnu/bound_read.linux-arm64-gnu.node","rel":"src/native/prebuilds/linux-arm64-gnu/bound_read.linux-arm64-gnu.node","sha256":"7b7fd1188d2bbf356fe8c44690fd80bc7fb02e9f6f9dc7ee1c10834bf1c519b1","size":72672},{"package":"skill-family-harness-node","path":"bin/prebuilds/linux-x64-gnu/bound_read.linux-x64-gnu.node","rel":"src/native/prebuilds/linux-x64-gnu/bound_read.linux-x64-gnu.node","sha256":"749b69ba1b7da3496e59f92f2ca8d04800031b2479c13b3ca63555ee69671acc","size":38904},{"package":"skill-family-contracts","path":"bin/registry.json","rel":"src/registry.json","sha256":"c722114f3237b50b66e19ac5541ecaa5b324e82f7287328d74f109b88bb841d2","size":12700},{"package":"skill-family-contracts","path":"bin/rules.json","rel":"src/rules.json","sha256":"9bc16963a15bab6fb372bd49ece59fc6351e1c558d5d40cc97ead48ab6941ed2","size":3578},{"package":"skill-family-contracts","path":"bin/schemas/consumer-contract-vector.schema.json","rel":"src/schemas/consumer-contract-vector.schema.json","sha256":"71a42a6c500ad6fbc2e7514428fb89b6329c329892ed641cd7bfb5f0fa9544ff","size":4704},{"package":"skill-family-engineering-kit","path":"data/hosts/claude/host-descriptor.json","rel":"data/hosts/claude/host-descriptor.json","sha256":"c9e7899c7e69cfd3eaed82f30287f65e47e2839691b45dc42e0f4971e7523481","size":958},{"package":"skill-family-engineering-kit","path":"data/hosts/codebuddy/host-descriptor.json","rel":"data/hosts/codebuddy/host-descriptor.json","sha256":"1b3dddc296838672b3e7f15bee4e3df268ee151a80b83998bb6193005580a3e0","size":377},{"package":"skill-family-engineering-kit","path":"data/hosts/codex/host-descriptor.json","rel":"data/hosts/codex/host-descriptor.json","sha256":"eed872463ae3f638f9a899879ab23ec79f8f07ee1e874d749eb858c316b89946","size":942},{"package":"skill-family-engineering-kit","path":"data/hosts/deepseek-harness/host-descriptor.json","rel":"data/hosts/deepseek-harness/host-descriptor.json","sha256":"d5ab344ce02a300a3e4063fc2c7eb1862eeb3ddc460f4d9cde67773e1b3e6eed","size":415},{"package":"skill-family-engineering-kit","path":"data/hosts/kimi-code/host-descriptor.json","rel":"data/hosts/kimi-code/host-descriptor.json","sha256":"8e6e442180242daf947b9edbd1b6913dfaf0786d486db5826cf442c9c18816cd","size":706},{"package":"skill-family-engineering-kit","path":"data/hosts/qoder/host-descriptor.json","rel":"data/hosts/qoder/host-descriptor.json","sha256":"6ba5075bab5c30e4bb69c4f492fa3a04c5579cc5e6a752ca7679a67a8d4462eb","size":515},{"package":"skill-family-engineering-kit","path":"data/hosts/registry.json","rel":"data/hosts/registry.json","sha256":"052b9eb5ec9f771eb76009d522ddb1790f890481da7a103fe444dd1ce59adcd9","size":197},{"package":"skill-family-engineering-kit","path":"data/hosts/workbuddy/host-descriptor.json","rel":"data/hosts/workbuddy/host-descriptor.json","sha256":"221d6240f3428b75db80890d667f3100d9f21d7d656f25cb7f45c4fce478369a","size":702},{"package":"skill-family-engineering-kit","path":"data/licensing/registry.json","rel":"data/licensing/registry.json","sha256":"25e9eddb3e6774980dd44e9cb74a1457302ff7a01d77e6f4e142dd77ac6234c3","size":5838},{"package":"skill-family-engineering-kit","path":"data/licensing/schema.json","rel":"data/licensing/schema.json","sha256":"bd1ce24105cff39331a06e4cb08a5937f196ad6cd3c23db6d0b56440528bea21","size":5136},{"package":"skill-family-contracts","path":"src/schemas/adapter-build-manifest.schema.json","rel":"src/schemas/adapter-build-manifest.schema.json","sha256":"48e07bddd1d13a6942fff15a1843c6bb36706c83da1b584ad9b0773afeb4e829","size":2312},{"package":"skill-family-contracts","path":"src/schemas/adapter-peer-verification-request.schema.json","rel":"src/schemas/adapter-peer-verification-request.schema.json","sha256":"965d2017f130c39ad20abd28bb250a793004ec60c41b9394e54cdc2a2e0752c1","size":2223},{"package":"skill-family-contracts","path":"src/schemas/adapter-peer-verification-result.schema.json","rel":"src/schemas/adapter-peer-verification-result.schema.json","sha256":"574c0adf1337a16dde4fa96ca3361a145faa678d4d4fbc1c270edc7a26dbc7dc","size":2483},{"package":"skill-family-contracts","path":"src/schemas/adapter-source.schema.json","rel":"src/schemas/adapter-source.schema.json","sha256":"32d2647baead350e5784fe7d3ef52217e2e20f94b262e1b8cead23b757282d22","size":1434},{"package":"skill-family-contracts","path":"src/schemas/audit-baseline-pin.schema.json","rel":"src/schemas/audit-baseline-pin.schema.json","sha256":"5084590fe3870acbdd651946b5ab88541d042eaec19d03c8b01e466b149a5253","size":6043},{"package":"skill-family-contracts","path":"src/schemas/declared-read-surface-result.schema.json","rel":"src/schemas/declared-read-surface-result.schema.json","sha256":"5ab26f874818602ff640bd4cee3c743db3eb6767d676a43520b199b554cb0783","size":2459},{"package":"skill-family-contracts","path":"src/schemas/executable-identity-observation.schema.json","rel":"src/schemas/executable-identity-observation.schema.json","sha256":"334a7cc5f1368a24ce7241b3c223b5246a567468c7e87c990796a68862b01732","size":5993},{"package":"skill-family-contracts","path":"src/schemas/filesystem-root-binding.schema.json","rel":"src/schemas/filesystem-root-binding.schema.json","sha256":"5e54c0febdc6c831fcc94b7d1cfb8f14aef838d718eb5e80a4f1b63bef1e3e61","size":567},{"package":"skill-family-contracts","path":"src/schemas/filesystem-tree-observation.schema.json","rel":"src/schemas/filesystem-tree-observation.schema.json","sha256":"ca9133b0f257342dd191e79d006a7c6dfd356650f5b487dabe567b30aabe70e1","size":3024},{"package":"skill-family-contracts","path":"src/schemas/fixed-set-publication-manifest.schema.json","rel":"src/schemas/fixed-set-publication-manifest.schema.json","sha256":"382bbf8fd1ba99ddefb1e3f6077f379f30cd58cbafbaf3c4191151b3703c2ed2","size":3959},{"package":"skill-family-contracts","path":"src/schemas/fixed-set-publication-receipt.schema.json","rel":"src/schemas/fixed-set-publication-receipt.schema.json","sha256":"ed460c723d8a041b4cb9355c251b9c8f78e4dc03cddaa06af21ed8b2b86389a8","size":5726},{"package":"skill-family-contracts","path":"src/schemas/host-capability-fact.schema.json","rel":"src/schemas/host-capability-fact.schema.json","sha256":"120de1d79649e5d9a905c2039211565a7eb68aa6ce170fe0c60bb0d77ae92b22","size":1932},{"package":"skill-family-contracts","path":"src/schemas/host-descriptor.schema.json","rel":"src/schemas/host-descriptor.schema.json","sha256":"9898d2d1be5a39a5d01835dd5c3446566d6f7a3ce1821a26b5055a8783c57443","size":5950},{"package":"skill-family-contracts","path":"src/schemas/host-operation-plan.schema.json","rel":"src/schemas/host-operation-plan.schema.json","sha256":"536766652ab73aef2e2133f3379a9db967e765521f132749fb358bc91ba2a1d4","size":4244},{"package":"skill-family-contracts","path":"src/schemas/host-operation-receipt.schema.json","rel":"src/schemas/host-operation-receipt.schema.json","sha256":"be0901a0bd7c7d133031a9d5572b738ae697c2c5c019e6aa7d7e1b470d5b2fc5","size":4431},{"package":"skill-family-contracts","path":"src/schemas/host-probe-result.schema.json","rel":"src/schemas/host-probe-result.schema.json","sha256":"decd7ed048e0a511e67c7c7142456257577e737f56eccfeb9acd8c6a7caf03ef","size":1380},{"package":"skill-family-contracts","path":"src/schemas/host-registry.schema.json","rel":"src/schemas/host-registry.schema.json","sha256":"1fab4fa7c2bf8973dd314711e901ea7b7d8ab41f1f90eb45dc4b0c47a23bd241","size":561},{"package":"skill-family-contracts","path":"src/schemas/host-verification-request.schema.json","rel":"src/schemas/host-verification-request.schema.json","sha256":"1b145aca7f422ace5d5d5606ac644ad5e0b92b1eb42efad8ab4a04159c3e220f","size":3048},{"package":"skill-family-contracts","path":"src/schemas/host-verification-result.schema.json","rel":"src/schemas/host-verification-result.schema.json","sha256":"e4b40721b76b144f7709a27c82d657788a88f7bb1da16ab54f73e4fa42ae212a","size":6496},{"package":"skill-family-contracts","path":"src/schemas/managed-file-lock.schema.json","rel":"src/schemas/managed-file-lock.schema.json","sha256":"1b182ac2276a6ca2827a59e754b7cefbbe4c2d67a79f79e448620c56749eee51","size":2575},{"package":"skill-family-contracts","path":"src/schemas/migration-manifest.schema.json","rel":"src/schemas/migration-manifest.schema.json","sha256":"ff5ea2f22c61301b6d30f508d7e2182bc89fe3c340eb64e733e9bebc11120e50","size":13373},{"package":"skill-family-contracts","path":"src/schemas/observation-scope.schema.json","rel":"src/schemas/observation-scope.schema.json","sha256":"bc02d18a985335d2cd4e844705092decd47a3f2ec11433c67a0722ce6e1b3d01","size":3196},{"package":"skill-family-contracts","path":"src/schemas/operation-request.schema.json","rel":"src/schemas/operation-request.schema.json","sha256":"4553f7936c01a290d9c7b5f7e3467050788a6dd1758289815b9484e1557c5f71","size":2052},{"package":"skill-family-contracts","path":"src/schemas/operation-result.schema.json","rel":"src/schemas/operation-result.schema.json","sha256":"ed3c1d6473be94ffa60d2113a73169a12bb841f3887ab2c8e243aba21a1e15a1","size":3512},{"package":"skill-family-contracts","path":"src/schemas/platform-difference-registry.schema.json","rel":"src/schemas/platform-difference-registry.schema.json","sha256":"9665995a3a061bae37dbd0df3bb8d86f6de0faf772e8ac3d3fe30ef11668bc44","size":3942},{"package":"skill-family-contracts","path":"src/schemas/plugin-verification-request.schema.json","rel":"src/schemas/plugin-verification-request.schema.json","sha256":"3df01a29d3d8f18f88a765ca8e9e05e2b3868cb78c8673cd4d168d670f1fc917","size":14234},{"package":"skill-family-contracts","path":"src/schemas/plugin-verification-result.schema.json","rel":"src/schemas/plugin-verification-result.schema.json","sha256":"f890ad77dc9a96ba9ca489ffc5a46991262934459641ec412aacd75f1b19c4f9","size":38055},{"package":"skill-family-contracts","path":"src/schemas/profile-adoption-declaration.schema.json","rel":"src/schemas/profile-adoption-declaration.schema.json","sha256":"24603f16dd32e924da5d7b760063d8d7241e597d8fdc155fd8a0bf0dfa4e17c0","size":4127},{"package":"skill-family-contracts","path":"src/schemas/profile-descriptor.schema.json","rel":"src/schemas/profile-descriptor.schema.json","sha256":"603b166944aa1b1b8b944d1317b906f7a0a6d1e2f0e7e2f7108ffd3755985ec5","size":2999},{"package":"skill-family-contracts","path":"src/schemas/project-manifest.schema.json","rel":"src/schemas/project-manifest.schema.json","sha256":"ce3670b3aa00c92d5f5c060db251a6c1687acd0fd2c93710b1b176b07988d0c1","size":2199},{"package":"skill-family-contracts","path":"src/schemas/project-profile.schema.json","rel":"src/schemas/project-profile.schema.json","sha256":"228cb23a0983d746eaddd265deb270ccbf22f93b22d65f7ccab1ca469f3fc85d","size":1077},{"package":"skill-family-contracts","path":"src/schemas/public-boundary-declaration.schema.json","rel":"src/schemas/public-boundary-declaration.schema.json","sha256":"a22ae3dcf65138ea38058c8059fb06cff832f3017e339a50332ddf679c96195c","size":2937},{"package":"skill-family-contracts","path":"src/schemas/report-binding.schema.json","rel":"src/schemas/report-binding.schema.json","sha256":"8307e2e39ce4bc44d5c2921a0eb46fd269d416b61933468be39cc8e9ad0185c6","size":1831},{"package":"skill-family-contracts","path":"src/schemas/report-model.schema.json","rel":"src/schemas/report-model.schema.json","sha256":"edaaadec9459609a68f81f27d9a8c7404c32aea0db054240c8e34e3d7e09a461","size":10039},{"package":"skill-family-contracts","path":"src/schemas/skill-family-directory-verification-request.schema.json","rel":"src/schemas/skill-family-directory-verification-request.schema.json","sha256":"f78c7b6f2527f62cd104cdcd5c99e74fef5ad5e6eb1aa5f493f8ecb624ebfd01","size":4259},{"package":"skill-family-contracts","path":"src/schemas/skill-family-directory-verification-result.schema.json","rel":"src/schemas/skill-family-directory-verification-result.schema.json","sha256":"e9b752fb4009cfb1f4aecc7e54265ca3cdbb6aa1a1cd37c4c45d965bd4a23ac5","size":8546},{"package":"skill-family-contracts","path":"src/schemas/source-authority-receipt.schema.json","rel":"src/schemas/source-authority-receipt.schema.json","sha256":"e512a0bd6583f7ec58bc344827b5ffd2cb9c496acfab946e3fa29d6aa095cedc","size":1307},{"package":"skill-family-contracts","path":"src/schemas/state-event-envelope.schema.json","rel":"src/schemas/state-event-envelope.schema.json","sha256":"93a727af23c157a98798e7942005b508a69489b755a411afb809dee470f1c6de","size":1543},{"package":"skill-family-contracts","path":"src/schemas/state-snapshot-metadata.schema.json","rel":"src/schemas/state-snapshot-metadata.schema.json","sha256":"0b17ad49d0be9355b3ac04091daf3c554547c9584e8e58ef4d0c9d782b681de2","size":934},{"package":"skill-family-contracts","path":"src/schemas/structured-scan-policy.schema.json","rel":"src/schemas/structured-scan-policy.schema.json","sha256":"81cd438da6ac6c81d1533796dfbd209becadc30c2483e3881b19a9923b767929","size":3556},{"package":"skill-family-contracts","path":"src/schemas/surface-scan-policy.schema.json","rel":"src/schemas/surface-scan-policy.schema.json","sha256":"5617ac4ca58a9a35f55c58d67a5246ae3805a817744bdaadbdfc51475f2fb9e4","size":2359},{"package":"skill-family-contracts","path":"src/schemas/timeout-policy.schema.json","rel":"src/schemas/timeout-policy.schema.json","sha256":"671ac0fcb1ca82db0ee5fa5a4aae70a0597ee2628a70340eb4dda8f5bcaa4c33","size":1459},{"package":"skill-family-contracts","path":"src/schemas/token-estimate-record.schema.json","rel":"src/schemas/token-estimate-record.schema.json","sha256":"b34b6bc215cf20f50ddd3d453cb5799644f7c665ac596162a3270a0ec8a1ff2a","size":2920},{"package":"skill-family-contracts","path":"src/schemas/token-estimate-result.schema.json","rel":"src/schemas/token-estimate-result.schema.json","sha256":"941621696604ed7aec425e19cff2f0c66612417f949b26d415e41bf124565e14","size":1493},{"package":"skill-family-contracts","path":"src/schemas/watchdog-termination-envelope.schema.json","rel":"src/schemas/watchdog-termination-envelope.schema.json","sha256":"9c5f6e356a2300c89ac8dcfa758751a93cd5281604a5bb54ad4506ba1042a3c5","size":6285}],"schemaVersion":1,"sourcePackages":{"skill-family-contracts":"0.15.0","skill-family-engineering-kit":"0.15.0","skill-family-harness-node":"0.15.0"}}
1
+ {"kind":"skill-family.foundation-resource-binding","resources":[{"package":"skill-family-contracts","path":"bin/consumer-contract-vectors.json","rel":"src/consumer-contract-vectors.json","sha256":"a18ab8870de326dd51cbc5071ac2e9624c8b2378acd9f28322888bfc6c549132","size":6628},{"package":"skill-family-contracts","path":"bin/error-codes.json","rel":"src/error-codes.json","sha256":"2cc9367603b62a42f1c3aeff96a5836542e04d10e804d174e56ebede5dddd21a","size":6122},{"package":"skill-family-contracts","path":"bin/foundation-legal/skill-family-contracts/LICENSE","rel":"LICENSE","sha256":"4b1d761838e4612bac9c52ae388d261c8546f78d98c18d59c8e2babacfb96df0","size":11436},{"package":"skill-family-contracts","path":"bin/foundation-legal/skill-family-contracts/NOTICE","rel":"NOTICE","sha256":"0cdc3383ff384f6911679e601c4f541bc9b230a785c8aa11c2e23609618b6ac4","size":390},{"package":"skill-family-engineering-kit","path":"bin/foundation-legal/skill-family-engineering-kit/LICENSE","rel":"LICENSE","sha256":"4b1d761838e4612bac9c52ae388d261c8546f78d98c18d59c8e2babacfb96df0","size":11436},{"package":"skill-family-engineering-kit","path":"bin/foundation-legal/skill-family-engineering-kit/NOTICE","rel":"NOTICE","sha256":"0cdc3383ff384f6911679e601c4f541bc9b230a785c8aa11c2e23609618b6ac4","size":390},{"package":"skill-family-engineering-kit","path":"bin/foundation-legal/skill-family-engineering-kit/THIRD_PARTY_NOTICES","rel":"THIRD_PARTY_NOTICES","sha256":"2510a1fd30bf6e9c723b8b1e42d00bbe3d471747394475e841b4c85474d67973","size":6455},{"package":"skill-family-harness-node","path":"bin/foundation-legal/skill-family-harness-node/LICENSE","rel":"LICENSE","sha256":"4b1d761838e4612bac9c52ae388d261c8546f78d98c18d59c8e2babacfb96df0","size":11436},{"package":"skill-family-harness-node","path":"bin/foundation-legal/skill-family-harness-node/NOTICE","rel":"NOTICE","sha256":"0cdc3383ff384f6911679e601c4f541bc9b230a785c8aa11c2e23609618b6ac4","size":390},{"package":"skill-family-harness-node","path":"bin/foundation-legal/skill-family-harness-node/native-NOTICE","rel":"src/native/NOTICE","sha256":"9b5b2aa89db2ad1bfc1971789992160bc0b9ca3cd37411701d11b9a7ff13fac5","size":116},{"package":"skill-family-contracts","path":"bin/kernel-protocol.json","rel":"src/kernel-protocol.json","sha256":"7e0d0bb7223032e642f71af7125a37f0d9a32965b52f1d096cb7ff9a49b19864","size":2422},{"package":"skill-family-engineering-kit","path":"bin/license-texts/Apache-2.0.txt","rel":"src/license-texts/Apache-2.0.txt","sha256":"c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4","size":11357},{"package":"skill-family-engineering-kit","path":"bin/license-texts/MIT.txt","rel":"src/license-texts/MIT.txt","sha256":"56016cbac6c1d3f565fc854356f6781757254ea34be30a0b75869ae2df0118b6","size":1081},{"package":"skill-family-harness-node","path":"bin/prebuild-manifest.json","rel":"src/native/prebuild-manifest.json","sha256":"76a1e6f99ef5980043df4f328bbe9623dfc8cbba6655e008a8bb1d53d9e49ace","size":2230},{"package":"skill-family-harness-node","path":"bin/prebuilds/darwin-arm64/bound_read.darwin-arm64.node","rel":"src/native/prebuilds/darwin-arm64/bound_read.darwin-arm64.node","sha256":"19ce71026b737ba6b56da78ffabca4bb25f21249c30b545d68633d4b77547fde","size":53424},{"package":"skill-family-harness-node","path":"bin/prebuilds/darwin-x64/bound_read.darwin-x64.node","rel":"src/native/prebuilds/darwin-x64/bound_read.darwin-x64.node","sha256":"e01e4a1df3554da857189f483174d0480eb36063ce17b5857a23fa8a02f4a664","size":28400},{"package":"skill-family-harness-node","path":"bin/prebuilds/linux-arm64-gnu/bound_read.linux-arm64-gnu.node","rel":"src/native/prebuilds/linux-arm64-gnu/bound_read.linux-arm64-gnu.node","sha256":"7b7fd1188d2bbf356fe8c44690fd80bc7fb02e9f6f9dc7ee1c10834bf1c519b1","size":72672},{"package":"skill-family-harness-node","path":"bin/prebuilds/linux-x64-gnu/bound_read.linux-x64-gnu.node","rel":"src/native/prebuilds/linux-x64-gnu/bound_read.linux-x64-gnu.node","sha256":"749b69ba1b7da3496e59f92f2ca8d04800031b2479c13b3ca63555ee69671acc","size":38904},{"package":"skill-family-contracts","path":"bin/registry.json","rel":"src/registry.json","sha256":"c722114f3237b50b66e19ac5541ecaa5b324e82f7287328d74f109b88bb841d2","size":12700},{"package":"skill-family-contracts","path":"bin/rules.json","rel":"src/rules.json","sha256":"9bc16963a15bab6fb372bd49ece59fc6351e1c558d5d40cc97ead48ab6941ed2","size":3578},{"package":"skill-family-contracts","path":"bin/schemas/consumer-contract-vector.schema.json","rel":"src/schemas/consumer-contract-vector.schema.json","sha256":"71a42a6c500ad6fbc2e7514428fb89b6329c329892ed641cd7bfb5f0fa9544ff","size":4704},{"package":"skill-family-engineering-kit","path":"data/hosts/claude/host-descriptor.json","rel":"data/hosts/claude/host-descriptor.json","sha256":"c9e7899c7e69cfd3eaed82f30287f65e47e2839691b45dc42e0f4971e7523481","size":958},{"package":"skill-family-engineering-kit","path":"data/hosts/codebuddy/host-descriptor.json","rel":"data/hosts/codebuddy/host-descriptor.json","sha256":"1b3dddc296838672b3e7f15bee4e3df268ee151a80b83998bb6193005580a3e0","size":377},{"package":"skill-family-engineering-kit","path":"data/hosts/codex/host-descriptor.json","rel":"data/hosts/codex/host-descriptor.json","sha256":"eed872463ae3f638f9a899879ab23ec79f8f07ee1e874d749eb858c316b89946","size":942},{"package":"skill-family-engineering-kit","path":"data/hosts/deepseek-harness/host-descriptor.json","rel":"data/hosts/deepseek-harness/host-descriptor.json","sha256":"d5ab344ce02a300a3e4063fc2c7eb1862eeb3ddc460f4d9cde67773e1b3e6eed","size":415},{"package":"skill-family-engineering-kit","path":"data/hosts/kimi-code/host-descriptor.json","rel":"data/hosts/kimi-code/host-descriptor.json","sha256":"8e6e442180242daf947b9edbd1b6913dfaf0786d486db5826cf442c9c18816cd","size":706},{"package":"skill-family-engineering-kit","path":"data/hosts/qoder/host-descriptor.json","rel":"data/hosts/qoder/host-descriptor.json","sha256":"6ba5075bab5c30e4bb69c4f492fa3a04c5579cc5e6a752ca7679a67a8d4462eb","size":515},{"package":"skill-family-engineering-kit","path":"data/hosts/registry.json","rel":"data/hosts/registry.json","sha256":"052b9eb5ec9f771eb76009d522ddb1790f890481da7a103fe444dd1ce59adcd9","size":197},{"package":"skill-family-engineering-kit","path":"data/hosts/workbuddy/host-descriptor.json","rel":"data/hosts/workbuddy/host-descriptor.json","sha256":"221d6240f3428b75db80890d667f3100d9f21d7d656f25cb7f45c4fce478369a","size":702},{"package":"skill-family-engineering-kit","path":"data/licensing/registry.json","rel":"data/licensing/registry.json","sha256":"25e9eddb3e6774980dd44e9cb74a1457302ff7a01d77e6f4e142dd77ac6234c3","size":5838},{"package":"skill-family-engineering-kit","path":"data/licensing/schema.json","rel":"data/licensing/schema.json","sha256":"bd1ce24105cff39331a06e4cb08a5937f196ad6cd3c23db6d0b56440528bea21","size":5136},{"package":"skill-family-contracts","path":"src/schemas/adapter-build-manifest.schema.json","rel":"src/schemas/adapter-build-manifest.schema.json","sha256":"48e07bddd1d13a6942fff15a1843c6bb36706c83da1b584ad9b0773afeb4e829","size":2312},{"package":"skill-family-contracts","path":"src/schemas/adapter-peer-verification-request.schema.json","rel":"src/schemas/adapter-peer-verification-request.schema.json","sha256":"965d2017f130c39ad20abd28bb250a793004ec60c41b9394e54cdc2a2e0752c1","size":2223},{"package":"skill-family-contracts","path":"src/schemas/adapter-peer-verification-result.schema.json","rel":"src/schemas/adapter-peer-verification-result.schema.json","sha256":"574c0adf1337a16dde4fa96ca3361a145faa678d4d4fbc1c270edc7a26dbc7dc","size":2483},{"package":"skill-family-contracts","path":"src/schemas/adapter-source.schema.json","rel":"src/schemas/adapter-source.schema.json","sha256":"32d2647baead350e5784fe7d3ef52217e2e20f94b262e1b8cead23b757282d22","size":1434},{"package":"skill-family-contracts","path":"src/schemas/audit-baseline-pin.schema.json","rel":"src/schemas/audit-baseline-pin.schema.json","sha256":"5084590fe3870acbdd651946b5ab88541d042eaec19d03c8b01e466b149a5253","size":6043},{"package":"skill-family-contracts","path":"src/schemas/declared-read-surface-result.schema.json","rel":"src/schemas/declared-read-surface-result.schema.json","sha256":"5ab26f874818602ff640bd4cee3c743db3eb6767d676a43520b199b554cb0783","size":2459},{"package":"skill-family-contracts","path":"src/schemas/executable-identity-observation.schema.json","rel":"src/schemas/executable-identity-observation.schema.json","sha256":"334a7cc5f1368a24ce7241b3c223b5246a567468c7e87c990796a68862b01732","size":5993},{"package":"skill-family-contracts","path":"src/schemas/filesystem-root-binding.schema.json","rel":"src/schemas/filesystem-root-binding.schema.json","sha256":"5e54c0febdc6c831fcc94b7d1cfb8f14aef838d718eb5e80a4f1b63bef1e3e61","size":567},{"package":"skill-family-contracts","path":"src/schemas/filesystem-tree-observation.schema.json","rel":"src/schemas/filesystem-tree-observation.schema.json","sha256":"ca9133b0f257342dd191e79d006a7c6dfd356650f5b487dabe567b30aabe70e1","size":3024},{"package":"skill-family-contracts","path":"src/schemas/fixed-set-publication-manifest.schema.json","rel":"src/schemas/fixed-set-publication-manifest.schema.json","sha256":"382bbf8fd1ba99ddefb1e3f6077f379f30cd58cbafbaf3c4191151b3703c2ed2","size":3959},{"package":"skill-family-contracts","path":"src/schemas/fixed-set-publication-receipt.schema.json","rel":"src/schemas/fixed-set-publication-receipt.schema.json","sha256":"ed460c723d8a041b4cb9355c251b9c8f78e4dc03cddaa06af21ed8b2b86389a8","size":5726},{"package":"skill-family-contracts","path":"src/schemas/host-capability-fact.schema.json","rel":"src/schemas/host-capability-fact.schema.json","sha256":"120de1d79649e5d9a905c2039211565a7eb68aa6ce170fe0c60bb0d77ae92b22","size":1932},{"package":"skill-family-contracts","path":"src/schemas/host-descriptor.schema.json","rel":"src/schemas/host-descriptor.schema.json","sha256":"9898d2d1be5a39a5d01835dd5c3446566d6f7a3ce1821a26b5055a8783c57443","size":5950},{"package":"skill-family-contracts","path":"src/schemas/host-operation-plan.schema.json","rel":"src/schemas/host-operation-plan.schema.json","sha256":"536766652ab73aef2e2133f3379a9db967e765521f132749fb358bc91ba2a1d4","size":4244},{"package":"skill-family-contracts","path":"src/schemas/host-operation-receipt.schema.json","rel":"src/schemas/host-operation-receipt.schema.json","sha256":"be0901a0bd7c7d133031a9d5572b738ae697c2c5c019e6aa7d7e1b470d5b2fc5","size":4431},{"package":"skill-family-contracts","path":"src/schemas/host-probe-result.schema.json","rel":"src/schemas/host-probe-result.schema.json","sha256":"decd7ed048e0a511e67c7c7142456257577e737f56eccfeb9acd8c6a7caf03ef","size":1380},{"package":"skill-family-contracts","path":"src/schemas/host-registry.schema.json","rel":"src/schemas/host-registry.schema.json","sha256":"1fab4fa7c2bf8973dd314711e901ea7b7d8ab41f1f90eb45dc4b0c47a23bd241","size":561},{"package":"skill-family-contracts","path":"src/schemas/host-verification-request.schema.json","rel":"src/schemas/host-verification-request.schema.json","sha256":"1b145aca7f422ace5d5d5606ac644ad5e0b92b1eb42efad8ab4a04159c3e220f","size":3048},{"package":"skill-family-contracts","path":"src/schemas/host-verification-result.schema.json","rel":"src/schemas/host-verification-result.schema.json","sha256":"e4b40721b76b144f7709a27c82d657788a88f7bb1da16ab54f73e4fa42ae212a","size":6496},{"package":"skill-family-contracts","path":"src/schemas/managed-file-lock.schema.json","rel":"src/schemas/managed-file-lock.schema.json","sha256":"1b182ac2276a6ca2827a59e754b7cefbbe4c2d67a79f79e448620c56749eee51","size":2575},{"package":"skill-family-contracts","path":"src/schemas/migration-manifest.schema.json","rel":"src/schemas/migration-manifest.schema.json","sha256":"ff5ea2f22c61301b6d30f508d7e2182bc89fe3c340eb64e733e9bebc11120e50","size":13373},{"package":"skill-family-contracts","path":"src/schemas/observation-scope.schema.json","rel":"src/schemas/observation-scope.schema.json","sha256":"bc02d18a985335d2cd4e844705092decd47a3f2ec11433c67a0722ce6e1b3d01","size":3196},{"package":"skill-family-contracts","path":"src/schemas/operation-request.schema.json","rel":"src/schemas/operation-request.schema.json","sha256":"4553f7936c01a290d9c7b5f7e3467050788a6dd1758289815b9484e1557c5f71","size":2052},{"package":"skill-family-contracts","path":"src/schemas/operation-result.schema.json","rel":"src/schemas/operation-result.schema.json","sha256":"ed3c1d6473be94ffa60d2113a73169a12bb841f3887ab2c8e243aba21a1e15a1","size":3512},{"package":"skill-family-contracts","path":"src/schemas/platform-difference-registry.schema.json","rel":"src/schemas/platform-difference-registry.schema.json","sha256":"9665995a3a061bae37dbd0df3bb8d86f6de0faf772e8ac3d3fe30ef11668bc44","size":3942},{"package":"skill-family-contracts","path":"src/schemas/plugin-verification-request.schema.json","rel":"src/schemas/plugin-verification-request.schema.json","sha256":"3df01a29d3d8f18f88a765ca8e9e05e2b3868cb78c8673cd4d168d670f1fc917","size":14234},{"package":"skill-family-contracts","path":"src/schemas/plugin-verification-result.schema.json","rel":"src/schemas/plugin-verification-result.schema.json","sha256":"f890ad77dc9a96ba9ca489ffc5a46991262934459641ec412aacd75f1b19c4f9","size":38055},{"package":"skill-family-contracts","path":"src/schemas/profile-adoption-declaration.schema.json","rel":"src/schemas/profile-adoption-declaration.schema.json","sha256":"24603f16dd32e924da5d7b760063d8d7241e597d8fdc155fd8a0bf0dfa4e17c0","size":4127},{"package":"skill-family-contracts","path":"src/schemas/profile-descriptor.schema.json","rel":"src/schemas/profile-descriptor.schema.json","sha256":"603b166944aa1b1b8b944d1317b906f7a0a6d1e2f0e7e2f7108ffd3755985ec5","size":2999},{"package":"skill-family-contracts","path":"src/schemas/project-manifest.schema.json","rel":"src/schemas/project-manifest.schema.json","sha256":"ce3670b3aa00c92d5f5c060db251a6c1687acd0fd2c93710b1b176b07988d0c1","size":2199},{"package":"skill-family-contracts","path":"src/schemas/project-profile.schema.json","rel":"src/schemas/project-profile.schema.json","sha256":"228cb23a0983d746eaddd265deb270ccbf22f93b22d65f7ccab1ca469f3fc85d","size":1077},{"package":"skill-family-contracts","path":"src/schemas/public-boundary-declaration.schema.json","rel":"src/schemas/public-boundary-declaration.schema.json","sha256":"a22ae3dcf65138ea38058c8059fb06cff832f3017e339a50332ddf679c96195c","size":2937},{"package":"skill-family-contracts","path":"src/schemas/report-binding.schema.json","rel":"src/schemas/report-binding.schema.json","sha256":"8307e2e39ce4bc44d5c2921a0eb46fd269d416b61933468be39cc8e9ad0185c6","size":1831},{"package":"skill-family-contracts","path":"src/schemas/report-model.schema.json","rel":"src/schemas/report-model.schema.json","sha256":"edaaadec9459609a68f81f27d9a8c7404c32aea0db054240c8e34e3d7e09a461","size":10039},{"package":"skill-family-contracts","path":"src/schemas/skill-family-directory-verification-request.schema.json","rel":"src/schemas/skill-family-directory-verification-request.schema.json","sha256":"f78c7b6f2527f62cd104cdcd5c99e74fef5ad5e6eb1aa5f493f8ecb624ebfd01","size":4259},{"package":"skill-family-contracts","path":"src/schemas/skill-family-directory-verification-result.schema.json","rel":"src/schemas/skill-family-directory-verification-result.schema.json","sha256":"e9b752fb4009cfb1f4aecc7e54265ca3cdbb6aa1a1cd37c4c45d965bd4a23ac5","size":8546},{"package":"skill-family-contracts","path":"src/schemas/source-authority-receipt.schema.json","rel":"src/schemas/source-authority-receipt.schema.json","sha256":"e512a0bd6583f7ec58bc344827b5ffd2cb9c496acfab946e3fa29d6aa095cedc","size":1307},{"package":"skill-family-contracts","path":"src/schemas/state-event-envelope.schema.json","rel":"src/schemas/state-event-envelope.schema.json","sha256":"93a727af23c157a98798e7942005b508a69489b755a411afb809dee470f1c6de","size":1543},{"package":"skill-family-contracts","path":"src/schemas/state-snapshot-metadata.schema.json","rel":"src/schemas/state-snapshot-metadata.schema.json","sha256":"0b17ad49d0be9355b3ac04091daf3c554547c9584e8e58ef4d0c9d782b681de2","size":934},{"package":"skill-family-contracts","path":"src/schemas/structured-scan-policy.schema.json","rel":"src/schemas/structured-scan-policy.schema.json","sha256":"81cd438da6ac6c81d1533796dfbd209becadc30c2483e3881b19a9923b767929","size":3556},{"package":"skill-family-contracts","path":"src/schemas/surface-scan-policy.schema.json","rel":"src/schemas/surface-scan-policy.schema.json","sha256":"5617ac4ca58a9a35f55c58d67a5246ae3805a817744bdaadbdfc51475f2fb9e4","size":2359},{"package":"skill-family-contracts","path":"src/schemas/timeout-policy.schema.json","rel":"src/schemas/timeout-policy.schema.json","sha256":"671ac0fcb1ca82db0ee5fa5a4aae70a0597ee2628a70340eb4dda8f5bcaa4c33","size":1459},{"package":"skill-family-contracts","path":"src/schemas/token-estimate-record.schema.json","rel":"src/schemas/token-estimate-record.schema.json","sha256":"b34b6bc215cf20f50ddd3d453cb5799644f7c665ac596162a3270a0ec8a1ff2a","size":2920},{"package":"skill-family-contracts","path":"src/schemas/token-estimate-result.schema.json","rel":"src/schemas/token-estimate-result.schema.json","sha256":"941621696604ed7aec425e19cff2f0c66612417f949b26d415e41bf124565e14","size":1493},{"package":"skill-family-contracts","path":"src/schemas/watchdog-termination-envelope.schema.json","rel":"src/schemas/watchdog-termination-envelope.schema.json","sha256":"9c5f6e356a2300c89ac8dcfa758751a93cd5281604a5bb54ad4506ba1042a3c5","size":6285}],"schemaVersion":1,"sourcePackages":{"skill-family-contracts":"0.16.0","skill-family-engineering-kit":"0.16.0","skill-family-harness-node":"0.16.0"}}
@@ -351,7 +351,7 @@ Options:
351
351
  performs an append-only hooks edit of an existing config (create-once is untouched)
352
352
  --select-hooks <ids> Comma-separated proposal ids to adopt (propose-hooks mode)
353
353
  --foundation-profile <path> Explicit foundation postPublish profile JSON (proposal input only; never auto-applied)
354
- --unit <id> Release unit whose declared release documents are refreshed (docs refresh)
354
+ --unit <id> Select a release unit for prepare/ship (repeatable); docs refresh accepts one unit
355
355
  --confirm-refresh <sha256:...> Confirm the exact dry-run refreshDigest before any document write
356
356
  --ack-local-document-write Acknowledge the explicit local release-document write (docs refresh --write)
357
357
  --platform <id> Legacy attestation platform: kimi or codebuddy
@@ -559,6 +559,7 @@ if (command === 'ship' && (args.includes('--help') || args.includes('-h'))) {
559
559
  options: {
560
560
  targetVersion: '--target-version <version>',
561
561
  state: '--state <path>',
562
+ unit: '--unit <id> (repeatable before plan freeze)',
562
563
  approve: '--approve --actor <name>',
563
564
  },
564
565
  message: 'Repeat the same command to resume from the same state. For parallel or cross-session versions, use .release-skill/ships/<version>.json.',
@@ -572,6 +573,7 @@ Usage:
572
573
  Options:
573
574
  --target-version <version> Specify the target version
574
575
  --state <path> Specify the durable state file
576
+ --unit <id> Select a release unit before plan freeze (repeatable)
575
577
  --approve --actor <name> Approve the plan bound to the current state
576
578
 
577
579
  Repeat the same command to resume from the same state.
@@ -787,6 +789,7 @@ function printShipApprovalSummary(result) {
787
789
  const summary = result.approvalSummary;
788
790
  if (!summary) return;
789
791
  console.log('Approval summary:');
792
+ console.log(` This approval covers only these release units: ${(summary.units ?? []).map((unit) => unit.id).join(', ') || 'none'}`);
790
793
  for (const unit of summary.units ?? []) {
791
794
  console.log(` Unit ${unit.id} ${unit.targetVersion}`);
792
795
  console.log(` Public repo: ${unit.publicRepo}`);
@@ -817,6 +820,13 @@ if (command === 'ship') {
817
820
  return idx !== -1 && args[idx + 1] ? args[idx + 1] : undefined;
818
821
  };
819
822
  const root = resolve(value('--root') ?? process.cwd());
823
+ const hasUnitSelection = args.includes('--unit');
824
+ const unitIds = [];
825
+ for (let i = 0; i < args.length; i += 1) {
826
+ if (args[i] === '--unit') {
827
+ unitIds.push(args[i + 1] && !args[i + 1].startsWith('--') ? args[i + 1] : '');
828
+ }
829
+ }
820
830
  // Repeatable --hook-approval <path>: checkpoint approvals for
821
831
  // requiresApproval postPublish hooks (same convention as distribute;
822
832
  // review major-1 — without this the ship flow can never complete a
@@ -862,6 +872,7 @@ if (command === 'ship') {
862
872
  planApprovalDigest: value('--approve-plan'),
863
873
  actor: value('--actor'),
864
874
  adapterRegistry,
875
+ ...(hasUnitSelection ? { unitIds } : {}),
865
876
  ...(postpublishApprovalPaths.length > 0 ? { postpublishApprovalPaths } : {}),
866
877
  });
867
878
  if (hasJson) {
@@ -996,6 +1007,13 @@ if (command === 'prepare') {
996
1007
  const output = outputIdx !== -1 && args[outputIdx + 1] ? resolve(args[outputIdx + 1]) : undefined;
997
1008
  const runDirIdx = args.indexOf('--run-dir');
998
1009
  const runDir = runDirIdx !== -1 && args[runDirIdx + 1] ? resolve(args[runDirIdx + 1]) : undefined;
1010
+ const hasUnitSelection = args.includes('--unit');
1011
+ const unitIds = [];
1012
+ for (let i = 0; i < args.length; i += 1) {
1013
+ if (args[i] === '--unit') {
1014
+ unitIds.push(args[i + 1] && !args[i + 1].startsWith('--') ? args[i + 1] : '');
1015
+ }
1016
+ }
999
1017
 
1000
1018
  try {
1001
1019
  const { prepareRelease } = await import('../src/commands/prepare.mjs');
@@ -1012,6 +1030,7 @@ if (command === 'prepare') {
1012
1030
  testSelection,
1013
1031
  output,
1014
1032
  runDir,
1033
+ ...(hasUnitSelection ? { unitIds } : {}),
1015
1034
  });
1016
1035
 
1017
1036
  // Keep stdout compact and stable. The immutable plan remains the single
@@ -1041,6 +1060,7 @@ if (command === 'prepare') {
1041
1060
  })),
1042
1061
  warnings: result.warnings,
1043
1062
  nextSteps: result.nextSteps ?? [],
1063
+ ...(result.releaseScope ? { releaseScope: result.releaseScope } : {}),
1044
1064
  }, null, 2));
1045
1065
  } else {
1046
1066
  for (const warning of result.warnings) {
@@ -1050,7 +1070,11 @@ if (command === 'prepare') {
1050
1070
  console.log(`Plan digest: ${result.planDigest}`);
1051
1071
  console.log(`Evidence: ${result.evidenceDir}`);
1052
1072
  for (const step of result.nextSteps ?? []) {
1053
- console.log(`Next [${step.code}] ${step.message}`);
1073
+ console.log(`Next [${step.code}] ${step.message}${step.argv ? ` (${step.argv.join(' ')})` : ''}`);
1074
+ }
1075
+ if (result.releaseScope) {
1076
+ console.log(`Release scope: ${result.releaseScope.selectedUnitIds.join(', ')}`);
1077
+ console.log(`Deferred units: ${result.releaseScope.deferredUnitIds.join(', ') || 'none'}`);
1054
1078
  }
1055
1079
  if (plan.workflowKind && plan.workflowKind !== 'full') {
1056
1080
  console.log(`Workflow: ${plan.workflowKind}`);