release-skill 0.8.0 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (144) 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 +65 -7
  7. package/INSTALL.md +14 -2
  8. package/INSTALL.zh-CN.md +12 -2
  9. package/README.md +51 -31
  10. package/README.zh-CN.md +33 -20
  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/error-codes.json +1 -1
  14. package/adapters/claude/bin/foundation-resource-binding.json +1 -1
  15. package/adapters/claude/bin/prebuild-manifest.json +8 -4
  16. package/adapters/claude/bin/prebuilds/darwin-arm64/bound_read.darwin-arm64.node +0 -0
  17. package/adapters/claude/bin/prebuilds/darwin-x64/bound_read.darwin-x64.node +0 -0
  18. package/adapters/claude/bin/prebuilds/linux-arm64-gnu/bound_read.linux-arm64-gnu.node +0 -0
  19. package/adapters/claude/bin/prebuilds/linux-x64-gnu/bound_read.linux-x64-gnu.node +0 -0
  20. package/adapters/claude/bin/registry.json +22 -1
  21. package/adapters/claude/bin/release-skill-local-finish.mjs +4 -0
  22. package/adapters/claude/bin/release-skill.bundle.mjs +7152 -4231
  23. package/adapters/claude/bin/rules.json +1 -1
  24. package/adapters/claude/schemas/release-plan.schema.json +43 -5
  25. package/adapters/claude/schemas/release-run.schema.json +35 -1
  26. package/adapters/claude/skills/release-finish/SKILL.md +65 -0
  27. package/adapters/claude/skills/release-verify/SKILL.md +6 -1
  28. package/adapters/claude/src/schemas/filesystem-tree-observation.schema.json +55 -0
  29. package/adapters/claude/src/schemas/host-verification-result.schema.json +2 -2
  30. package/adapters/claude/src/schemas/plugin-verification-request.schema.json +374 -0
  31. package/adapters/claude/src/schemas/plugin-verification-result.schema.json +799 -0
  32. package/adapters/claude/src/schemas/watchdog-termination-envelope.schema.json +16 -0
  33. package/adapters/codex/.codex-plugin/plugin.json +2 -2
  34. package/adapters/codex/bin/error-codes.json +1 -1
  35. package/adapters/codex/bin/foundation-resource-binding.json +1 -1
  36. package/adapters/codex/bin/prebuild-manifest.json +8 -4
  37. package/adapters/codex/bin/prebuilds/darwin-arm64/bound_read.darwin-arm64.node +0 -0
  38. package/adapters/codex/bin/prebuilds/darwin-x64/bound_read.darwin-x64.node +0 -0
  39. package/adapters/codex/bin/prebuilds/linux-arm64-gnu/bound_read.linux-arm64-gnu.node +0 -0
  40. package/adapters/codex/bin/prebuilds/linux-x64-gnu/bound_read.linux-x64-gnu.node +0 -0
  41. package/adapters/codex/bin/registry.json +22 -1
  42. package/adapters/codex/bin/release-skill-local-finish.mjs +4 -0
  43. package/adapters/codex/bin/release-skill.bundle.mjs +7152 -4231
  44. package/adapters/codex/bin/rules.json +1 -1
  45. package/adapters/codex/schemas/release-plan.schema.json +43 -5
  46. package/adapters/codex/schemas/release-run.schema.json +35 -1
  47. package/adapters/codex/skills/release-finish/SKILL.md +72 -0
  48. package/adapters/codex/skills/release-verify/SKILL.md +6 -1
  49. package/adapters/codex/src/schemas/filesystem-tree-observation.schema.json +55 -0
  50. package/adapters/codex/src/schemas/host-verification-result.schema.json +2 -2
  51. package/adapters/codex/src/schemas/plugin-verification-request.schema.json +374 -0
  52. package/adapters/codex/src/schemas/plugin-verification-result.schema.json +799 -0
  53. package/adapters/codex/src/schemas/watchdog-termination-envelope.schema.json +16 -0
  54. package/adapters/kimi/.kimi-plugin/plugin.json +1 -1
  55. package/adapters/kimi/bin/error-codes.json +1 -1
  56. package/adapters/kimi/bin/foundation-resource-binding.json +1 -1
  57. package/adapters/kimi/bin/prebuild-manifest.json +8 -4
  58. package/adapters/kimi/bin/prebuilds/darwin-arm64/bound_read.darwin-arm64.node +0 -0
  59. package/adapters/kimi/bin/prebuilds/darwin-x64/bound_read.darwin-x64.node +0 -0
  60. package/adapters/kimi/bin/prebuilds/linux-arm64-gnu/bound_read.linux-arm64-gnu.node +0 -0
  61. package/adapters/kimi/bin/prebuilds/linux-x64-gnu/bound_read.linux-x64-gnu.node +0 -0
  62. package/adapters/kimi/bin/registry.json +22 -1
  63. package/adapters/kimi/bin/release-skill-local-finish.mjs +4 -0
  64. package/adapters/kimi/bin/release-skill.bundle.mjs +7152 -4231
  65. package/adapters/kimi/bin/rules.json +1 -1
  66. package/adapters/kimi/schemas/release-plan.schema.json +43 -5
  67. package/adapters/kimi/schemas/release-run.schema.json +35 -1
  68. package/adapters/kimi/skills/release-finish/SKILL.md +72 -0
  69. package/adapters/kimi/skills/release-verify/SKILL.md +6 -1
  70. package/adapters/kimi/src/schemas/filesystem-tree-observation.schema.json +55 -0
  71. package/adapters/kimi/src/schemas/host-verification-result.schema.json +2 -2
  72. package/adapters/kimi/src/schemas/plugin-verification-request.schema.json +374 -0
  73. package/adapters/kimi/src/schemas/plugin-verification-result.schema.json +799 -0
  74. package/adapters/kimi/src/schemas/watchdog-termination-envelope.schema.json +16 -0
  75. package/adapters/workbuddy/.codebuddy-plugin/plugin.json +1 -1
  76. package/adapters/workbuddy/bin/error-codes.json +1 -1
  77. package/adapters/workbuddy/bin/foundation-resource-binding.json +1 -1
  78. package/adapters/workbuddy/bin/prebuild-manifest.json +8 -4
  79. package/adapters/workbuddy/bin/prebuilds/darwin-arm64/bound_read.darwin-arm64.node +0 -0
  80. package/adapters/workbuddy/bin/prebuilds/darwin-x64/bound_read.darwin-x64.node +0 -0
  81. package/adapters/workbuddy/bin/prebuilds/linux-arm64-gnu/bound_read.linux-arm64-gnu.node +0 -0
  82. package/adapters/workbuddy/bin/prebuilds/linux-x64-gnu/bound_read.linux-x64-gnu.node +0 -0
  83. package/adapters/workbuddy/bin/registry.json +22 -1
  84. package/adapters/workbuddy/bin/release-skill-local-finish.mjs +4 -0
  85. package/adapters/workbuddy/bin/release-skill.bundle.mjs +7152 -4231
  86. package/adapters/workbuddy/bin/rules.json +1 -1
  87. package/adapters/workbuddy/schemas/release-plan.schema.json +43 -5
  88. package/adapters/workbuddy/schemas/release-run.schema.json +35 -1
  89. package/adapters/workbuddy/skills/release-finish/SKILL.md +65 -0
  90. package/adapters/workbuddy/skills/release-verify/SKILL.md +6 -1
  91. package/adapters/workbuddy/src/schemas/filesystem-tree-observation.schema.json +55 -0
  92. package/adapters/workbuddy/src/schemas/host-verification-result.schema.json +2 -2
  93. package/adapters/workbuddy/src/schemas/plugin-verification-request.schema.json +374 -0
  94. package/adapters/workbuddy/src/schemas/plugin-verification-result.schema.json +799 -0
  95. package/adapters/workbuddy/src/schemas/watchdog-termination-envelope.schema.json +16 -0
  96. package/bin/error-codes.json +1 -1
  97. package/bin/foundation-resource-binding.json +1 -1
  98. package/bin/prebuild-manifest.json +8 -4
  99. package/bin/prebuilds/darwin-arm64/bound_read.darwin-arm64.node +0 -0
  100. package/bin/prebuilds/darwin-x64/bound_read.darwin-x64.node +0 -0
  101. package/bin/prebuilds/linux-arm64-gnu/bound_read.linux-arm64-gnu.node +0 -0
  102. package/bin/prebuilds/linux-x64-gnu/bound_read.linux-x64-gnu.node +0 -0
  103. package/bin/registry.json +22 -1
  104. package/bin/release-skill-cli.mjs +126 -1
  105. package/bin/release-skill-local-finish.mjs +4 -0
  106. package/bin/release-skill.bundle.mjs +7152 -4231
  107. package/bin/rules.json +1 -1
  108. package/package.json +4 -4
  109. package/platform-manifest.json +30 -4
  110. package/schemas/release-plan.schema.json +43 -5
  111. package/schemas/release-run.schema.json +35 -1
  112. package/skills/release-finish/SKILL.md +65 -0
  113. package/skills/release-verify/SKILL.md +6 -1
  114. package/skills-src/release-finish/SKILL.md +65 -0
  115. package/skills-src/release-verify/SKILL.md +6 -1
  116. package/src/commands/approve.mjs +14 -2
  117. package/src/commands/distribute.mjs +562 -321
  118. package/src/commands/post-release-local.mjs +611 -0
  119. package/src/commands/postverify.mjs +262 -155
  120. package/src/commands/prepare.mjs +83 -57
  121. package/src/commands/publish.mjs +11 -10
  122. package/src/commands/reconcile.mjs +11 -10
  123. package/src/commands/setup.mjs +26 -13
  124. package/src/commands/ship.mjs +45 -12
  125. package/src/commands/verify.mjs +81 -18
  126. package/src/core/adoption-assessment.mjs +0 -3
  127. package/src/core/approval.mjs +11 -8
  128. package/src/core/foundation-plugin-verification.mjs +247 -0
  129. package/src/core/hooks.mjs +0 -16
  130. package/src/core/plan.mjs +19 -11
  131. package/src/core/postpublish-approval.mjs +12 -2
  132. package/src/core/postpublish-bundle.mjs +51 -13
  133. package/src/core/postpublish.mjs +146 -6
  134. package/src/core/preset-executor.mjs +53 -0
  135. package/src/core/proposal-inbox.mjs +91 -27
  136. package/src/core/recovery.mjs +27 -12
  137. package/src/core/skill-resource-closure.mjs +8 -4
  138. package/src/producers/build-adapters.mjs +10 -1
  139. package/src/producers/foundation-resource-projection.mjs +3 -3
  140. package/src/schemas/filesystem-tree-observation.schema.json +55 -0
  141. package/src/schemas/host-verification-result.schema.json +2 -2
  142. package/src/schemas/plugin-verification-request.schema.json +374 -0
  143. package/src/schemas/plugin-verification-result.schema.json +799 -0
  144. package/src/schemas/watchdog-termination-envelope.schema.json +16 -0
@@ -41,6 +41,7 @@
41
41
  "completed",
42
42
  "child_exit",
43
43
  "context_budget_exhausted",
44
+ "output_limit_exceeded",
44
45
  null
45
46
  ]
46
47
  },
@@ -55,6 +56,7 @@
55
56
  "no_terminal_result",
56
57
  "residual_process_group",
57
58
  "context_budget_exhausted",
59
+ "output_limit_exceeded",
58
60
  null
59
61
  ]
60
62
  },
@@ -119,6 +121,8 @@
119
121
  "terminalIdentity": { "type": "string" },
120
122
  "terminalStatus": { "type": "string" },
121
123
  "residualGroupCleanupCompleted": { "type": "boolean" },
124
+ "outputByteLimits": { "$ref": "#/$defs/outputByteLimits" },
125
+ "outputLimitExceeded": { "enum": ["stdout", "stderr", null] },
122
126
  "guarantees": {
123
127
  "type": "array",
124
128
  "minItems": 1,
@@ -136,5 +140,17 @@
136
140
  }
137
141
  }
138
142
  }
143
+ },
144
+ "$defs": {
145
+ "outputByteLimits": {
146
+ "description": "Optional per-stream raw-byte caps for bounded subprocess supervision (FND-DES-014 section 6.2). A closed object with at least one stream; each value is an integer byte count between 0 (no bytes allowed) and Number.MAX_SAFE_INTEGER. Absent streams stay unlimited. The mechanism counts raw Buffer.length bytes per data event; the first stream whose cumulative count exceeds its cap latches the fact and enters the existing termination path.",
147
+ "type": "object",
148
+ "additionalProperties": false,
149
+ "minProperties": 1,
150
+ "properties": {
151
+ "stdout": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 },
152
+ "stderr": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 }
153
+ }
154
+ }
139
155
  }
140
156
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
3
  "kind": "skill-family.contracts.error-codes",
4
- "contractsVersion": "1.12.0",
4
+ "contractsVersion": "1.13.0",
5
5
  "policy": {
6
6
  "format": "^SFC[0-9]{4}$",
7
7
  "ranges": [
@@ -1 +1 @@
1
- {"kind":"skill-family.foundation-resource-binding","resources":[{"package":"skill-family-contracts","path":"bin/error-codes.json","rel":"src/error-codes.json","sha256":"4a2024c2637c33043acf1c9182924d1f56757ecef22c639b51600123bdd2fde4","size":5813},{"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":"1ded122cb8692d7ec6038bf79b11baaa330d94e3407cff159b9d94f61ee8337e","size":2074},{"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":"edf0be6988f0c0d26ec03860e55d81be8ddf85fd82d29aba4ab6963bd58f9651","size":53232},{"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":"cf11633c8ea804a4c9af58eb205852d38eb6f49979bdad21abc93ba49184ac41","size":28120},{"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":"577db2c4b200ecddf0e5807034a57afa0f4d98fd6ee7cdbaeb358f3ff05313ae","size":73136},{"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":"f12ed96d4b5a338d87232a074b5d95117d81c5fdeb31f79c664a93c17f28a809","size":27040},{"package":"skill-family-contracts","path":"bin/registry.json","rel":"src/registry.json","sha256":"a55141e7d173b296ccc02e13aba1c884bcebca5bde221624ef4288c48eea3b03","size":10942},{"package":"skill-family-contracts","path":"bin/rules.json","rel":"src/rules.json","sha256":"d87691ebaa9c771bc2190d3b3cbf0a3d5425d8a554b4f6d7cb2914fb2f4e9abb","size":3578},{"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/filesystem-root-binding.schema.json","rel":"src/schemas/filesystem-root-binding.schema.json","sha256":"5e54c0febdc6c831fcc94b7d1cfb8f14aef838d718eb5e80a4f1b63bef1e3e61","size":567},{"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":"b6456b80e378b3dd2c5dbfbc4a17b49d2f7ac879b084a4b1df63954a2dd29bbe","size":6406},{"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":"297121243b92f1415b2e72285a9dcea4f9d90e349daf888617595b0845ab7d01","size":5964},{"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/profile-adoption-declaration.schema.json","rel":"src/schemas/profile-adoption-declaration.schema.json","sha256":"30ba6f637b0fa5e8a25f46d526b3c1103fbb936e7d83a49b8c0440ca2d553969","size":3896},{"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/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":"bc94a4f1e38a12ff973ebbd83ee54d8bea20504cac6d41d869efd64a7f0831aa","size":5283}],"schemaVersion":1,"sourcePackages":{"skill-family-contracts":"0.12.0","skill-family-engineering-kit":"0.12.0","skill-family-harness-node":"0.12.0"}}
1
+ {"kind":"skill-family.foundation-resource-binding","resources":[{"package":"skill-family-contracts","path":"bin/error-codes.json","rel":"src/error-codes.json","sha256":"6cfc1942b7d0b0823437ff8460a07e4f6eaa78ff5abe966ac34b77dccb0359c2","size":5813},{"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":"ca5c88fdc5d01b8f973e35f7ca4dd3a6dc9b401d039e96067c34c2a6e5e6d8f5","size":11767},{"package":"skill-family-contracts","path":"bin/rules.json","rel":"src/rules.json","sha256":"b97ebdb14fae1d73005c9912b379b549c25805d6d4f9fcdc94beb8ed6a2dd182","size":3578},{"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/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":"9b9ae14963abff4a48192a45e5a592809171c11073dadf6456e54ff997a439aa","size":2377},{"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":"297121243b92f1415b2e72285a9dcea4f9d90e349daf888617595b0845ab7d01","size":5964},{"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":"21d5af0a7d22b976369978a4c8621d34f7e06fbd02c3345e7255d55306d2bdca","size":9802},{"package":"skill-family-contracts","path":"src/schemas/plugin-verification-result.schema.json","rel":"src/schemas/plugin-verification-result.schema.json","sha256":"5156afdde86a93d573061a2e2e8f6921310e6ac605b6a3fb8767d2cb41b16a36","size":20729},{"package":"skill-family-contracts","path":"src/schemas/profile-adoption-declaration.schema.json","rel":"src/schemas/profile-adoption-declaration.schema.json","sha256":"30ba6f637b0fa5e8a25f46d526b3c1103fbb936e7d83a49b8c0440ca2d553969","size":3896},{"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/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.13.0","skill-family-engineering-kit":"0.13.0","skill-family-harness-node":"0.13.0"}}
@@ -10,10 +10,11 @@
10
10
  "libc": "none",
11
11
  "binary": "prebuilds/darwin-arm64/bound_read.darwin-arm64.node",
12
12
  "mode": 420,
13
- "sha256": "edf0be6988f0c0d26ec03860e55d81be8ddf85fd82d29aba4ab6963bd58f9651",
13
+ "sha256": "19ce71026b737ba6b56da78ffabca4bb25f21249c30b545d68633d4b77547fde",
14
14
  "napi": 10,
15
15
  "exports": [
16
16
  "closeParentDirectory",
17
+ "observeFilesystemTreeNative",
17
18
  "openParentDirectory",
18
19
  "platform",
19
20
  "readFileBoundNative",
@@ -27,10 +28,11 @@
27
28
  "libc": "none",
28
29
  "binary": "prebuilds/darwin-x64/bound_read.darwin-x64.node",
29
30
  "mode": 420,
30
- "sha256": "cf11633c8ea804a4c9af58eb205852d38eb6f49979bdad21abc93ba49184ac41",
31
+ "sha256": "e01e4a1df3554da857189f483174d0480eb36063ce17b5857a23fa8a02f4a664",
31
32
  "napi": 10,
32
33
  "exports": [
33
34
  "closeParentDirectory",
35
+ "observeFilesystemTreeNative",
34
36
  "openParentDirectory",
35
37
  "platform",
36
38
  "readFileBoundNative",
@@ -44,10 +46,11 @@
44
46
  "libc": "glibc",
45
47
  "binary": "prebuilds/linux-arm64-gnu/bound_read.linux-arm64-gnu.node",
46
48
  "mode": 420,
47
- "sha256": "577db2c4b200ecddf0e5807034a57afa0f4d98fd6ee7cdbaeb358f3ff05313ae",
49
+ "sha256": "7b7fd1188d2bbf356fe8c44690fd80bc7fb02e9f6f9dc7ee1c10834bf1c519b1",
48
50
  "napi": 10,
49
51
  "exports": [
50
52
  "closeParentDirectory",
53
+ "observeFilesystemTreeNative",
51
54
  "openParentDirectory",
52
55
  "platform",
53
56
  "readFileBoundNative",
@@ -61,10 +64,11 @@
61
64
  "libc": "glibc",
62
65
  "binary": "prebuilds/linux-x64-gnu/bound_read.linux-x64-gnu.node",
63
66
  "mode": 420,
64
- "sha256": "f12ed96d4b5a338d87232a074b5d95117d81c5fdeb31f79c664a93c17f28a809",
67
+ "sha256": "749b69ba1b7da3496e59f92f2ca8d04800031b2479c13b3ca63555ee69671acc",
65
68
  "napi": 10,
66
69
  "exports": [
67
70
  "closeParentDirectory",
71
+ "observeFilesystemTreeNative",
68
72
  "openParentDirectory",
69
73
  "platform",
70
74
  "readFileBoundNative",
package/bin/registry.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
3
  "kind": "skill-family.contracts.registry",
4
- "contractsVersion": "1.12.0",
4
+ "contractsVersion": "1.13.0",
5
5
  "note": "Protocol-name and schema-$id registry. Registration mechanically rejects duplicate protocol name/version (SFC1004) and duplicate $id (SFC1003). This file is the single registration surface; adding an entry is a contracts change.",
6
6
  "protocols": [
7
7
  {
@@ -285,6 +285,27 @@
285
285
  "dialect": "2020-12",
286
286
  "status": "candidate",
287
287
  "file": "src/schemas/host-verification-result.schema.json"
288
+ },
289
+ {
290
+ "$id": "https://contracts.skill-family.example/v1/plugin-verification-request.json",
291
+ "object": "plugin-verification-request",
292
+ "dialect": "2020-12",
293
+ "status": "candidate",
294
+ "file": "src/schemas/plugin-verification-request.schema.json"
295
+ },
296
+ {
297
+ "$id": "https://contracts.skill-family.example/v1/plugin-verification-result.json",
298
+ "object": "plugin-verification-result",
299
+ "dialect": "2020-12",
300
+ "status": "candidate",
301
+ "file": "src/schemas/plugin-verification-result.schema.json"
302
+ },
303
+ {
304
+ "$id": "https://contracts.skill-family.example/v1/filesystem-tree-observation.json",
305
+ "object": "filesystem-tree-observation",
306
+ "dialect": "2020-12",
307
+ "status": "candidate",
308
+ "file": "src/schemas/filesystem-tree-observation.schema.json"
288
309
  }
289
310
  ],
290
311
  "dialects": {
@@ -1,5 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
 
3
+ import { readFile } from 'node:fs/promises';
3
4
  import { basename, dirname, join, resolve } from 'node:path';
4
5
  import { execFile as execFileCb } from 'node:child_process';
5
6
  import { promisify } from 'node:util';
@@ -36,7 +37,7 @@ registerPathRedactor(redactSensitivePaths);
36
37
 
37
38
  const execFile = promisify(execFileCb);
38
39
 
39
- const COMMANDS = new Set(['help', 'setup', 'assess', 'prepare', 'approve', 'publish', 'reconcile', 'verify', 'ship', 'attest', 'hooks', 'artifacts', 'docs', 'distribute', 'route', 'lineage']);
40
+ const COMMANDS = new Set(['help', 'setup', 'assess', 'prepare', 'approve', 'publish', 'reconcile', 'verify', 'ship', 'post-release', 'attest', 'hooks', 'artifacts', 'docs', 'distribute', 'route', 'lineage']);
40
41
 
41
42
  /**
42
43
  * Wait until writes already queued on a process output stream have reached
@@ -308,6 +309,8 @@ Commands:
308
309
  verify Fresh remote and consumer verification; only this reaches VERIFIED
309
310
  ship Resume one durable prepare -> approve -> publish -> verify flow; completes a parked
310
311
  postVerify hook once its checkpoint approval is provided (--hook-approval)
312
+ post-release Inspect optional local finishing work after VERIFIED; update installed host plugins
313
+ only after exact plan confirmation
311
314
  attest Legacy only: record a Kimi/CodeBuddy result for an old frozen plan
312
315
  hooks Run declared development hooks and populate reusable receipts
313
316
  artifacts Artifact status, inspect, update/apply, resolution, and diagnostics
@@ -360,6 +363,9 @@ Options:
360
363
  --approve Approve the ship plan (boolean; plan digest is auto-resolved)
361
364
  --hook-approval <path> Checkpoint approval for a requiresApproval postPublish hook (ship/distribute; repeatable)
362
365
  --state <path> Override the durable ship state file
366
+ --update-local-hosts Update installed plugins for selected local hosts after VERIFIED
367
+ --hosts <ids> Comma-separated local hosts for post-release update (default: all declared)
368
+ --confirm-plan <digest> Confirm the exact VERIFIED plan before local host mutation
363
369
  --no-hook-cache Force every prepare hook to run in full; neither read nor write the hook cache
364
370
  --json Output results as JSON
365
371
  --version Show version and exit
@@ -377,6 +383,7 @@ Safety:
377
383
  - To ensure zero remote writes, disable hooks or audit them separately
378
384
  - docs refresh --write rewrites only declared README managed regions and the current CHANGELOG entry after exact refreshDigest confirmation; it never commits, pushes, tags, publishes, or installs.
379
385
  - publish requires explicit approval; plan digest is auto-read from the plan file
386
+ - post-release local host updates are optional local mutations and never change VERIFIED
380
387
  - publish consumes frozen Git/npm artifacts, never the live workspace
381
388
  - existing remote objects and uncertain checks stop for human intervention
382
389
  - production-equivalent protocol sandbox is verified; a real remote canary is not
@@ -815,6 +822,19 @@ if (command === 'ship') {
815
822
  console.log('then re-run: release-skill ship --root <root> --hook-approval <approval-record>');
816
823
  }
817
824
  }
825
+ if (result.status === 'VERIFIED' && result.postRelease) {
826
+ if (result.postRelease.status === 'UNAVAILABLE') {
827
+ console.warn(`Post-release checklist unavailable: ${result.postRelease.diagnostic?.message ?? 'unknown error'}`);
828
+ } else if (result.postRelease.merge.promptRequired) {
829
+ console.log('Post-release: ask whether to merge the remaining release branch.');
830
+ } else {
831
+ console.log('Post-release: branch advancement was already included; skip the merge question.');
832
+ }
833
+ if (result.postRelease.localHostUpdate?.promptRequired) {
834
+ console.log(`Post-release: ask whether to update local host plugins (${result.postRelease.localHostUpdate.hosts.join(', ')}).`);
835
+ console.log(`Post-release command: release-skill post-release --plan ${result.planPath} --run ${result.verifyRunPath}`);
836
+ }
837
+ }
818
838
  for (const followUp of result.manualFollowUps ?? []) {
819
839
  console.log(`Manual follow-up [${followUp.platform}] ${followUp.plugin}: not verified by system`);
820
840
  }
@@ -1178,6 +1198,91 @@ if (command === 'reconcile') {
1178
1198
  }
1179
1199
  }
1180
1200
 
1201
+ // --- Optional local finishing after VERIFIED ---
1202
+ if (command === 'post-release') {
1203
+ const value = (flag) => {
1204
+ const idx = args.indexOf(flag);
1205
+ return idx !== -1 && args[idx + 1] ? args[idx + 1] : undefined;
1206
+ };
1207
+ const planPath = value('--plan') ? resolve(value('--plan')) : undefined;
1208
+ const runPath = value('--run') ? resolve(value('--run')) : undefined;
1209
+ if (!planPath || !runPath) {
1210
+ const message = 'post-release requires --plan <path> and --run <verified-run-path>';
1211
+ if (hasJson) console.log(JSON.stringify({ error: 'MISSING_PARAMETERS', message, exitCode: 1 }));
1212
+ else console.error(`Error: ${message}`);
1213
+ await exitAfterFlush(1);
1214
+ }
1215
+ try {
1216
+ const {
1217
+ assertVerifiedReleaseRun,
1218
+ derivePostReleaseChecklist,
1219
+ updateLocalHostPlugins,
1220
+ } = await import('../src/commands/post-release-local.mjs');
1221
+ const { validatePlan } = await import('../src/core/plan.mjs');
1222
+ const {
1223
+ loadRun,
1224
+ resolveRunPath,
1225
+ validateRunLineage,
1226
+ } = await import('../src/core/run.mjs');
1227
+ const plan = JSON.parse(await readFile(planPath, 'utf8'));
1228
+ validatePlan(plan);
1229
+ const resolvedRunPath = await resolveRunPath(runPath);
1230
+ const runRecord = await loadRun(resolvedRunPath, {
1231
+ requireDigest: true,
1232
+ authorityPlanPath: planPath,
1233
+ });
1234
+ await validateRunLineage(runRecord, {
1235
+ plan,
1236
+ planPath,
1237
+ runPath: resolvedRunPath,
1238
+ production: Boolean(plan.production),
1239
+ });
1240
+ assertVerifiedReleaseRun(plan, runRecord);
1241
+
1242
+ const updateRequested = args.includes('--update-local-hosts');
1243
+ const selectedHosts = value('--hosts')
1244
+ ?.split(',')
1245
+ .map((host) => host.trim())
1246
+ .filter(Boolean);
1247
+ const result = updateRequested
1248
+ ? await updateLocalHostPlugins({
1249
+ plan,
1250
+ root: resolve(value('--root') ?? process.cwd()),
1251
+ confirmPlanDigest: value('--confirm-plan'),
1252
+ selectedHosts,
1253
+ })
1254
+ : derivePostReleaseChecklist(plan);
1255
+
1256
+ if (hasJson) {
1257
+ console.log(JSON.stringify(result, null, 2));
1258
+ } else if (!updateRequested) {
1259
+ console.log(`Post-release status: ${result.status}`);
1260
+ if (result.merge.promptRequired) console.log('Ask whether the user wants to merge the remaining branch.');
1261
+ else console.log('Branch advancement was already included in the release workflow; skip the merge question.');
1262
+ if (result.localHostUpdate.promptRequired) {
1263
+ console.log(`Ask whether to update local host plugins: ${result.localHostUpdate.hosts.join(', ')}`);
1264
+ }
1265
+ } else {
1266
+ console.log(`Local host update: ${result.status}`);
1267
+ for (const entry of result.results) {
1268
+ console.log(` ${entry.host}/${entry.unitId}: ${entry.status}${entry.version ? ` (${entry.version})` : ''}`);
1269
+ }
1270
+ console.log('The release remains VERIFIED; restart updated hosts before using the new plugin bytes.');
1271
+ }
1272
+ const success = !updateRequested || ['UPDATED', 'ALREADY_CURRENT', 'NO_APPLICABLE_HOSTS'].includes(result.status);
1273
+ await exitAfterFlush(success ? 0 : 1);
1274
+ } catch (err) {
1275
+ if (hasJson) {
1276
+ console.log(JSON.stringify({
1277
+ error: err.code ?? 'POST_RELEASE_FAILED',
1278
+ message: err.message,
1279
+ exitCode: err.exitCode ?? 1,
1280
+ }));
1281
+ } else console.error(`Error: ${err.message}`);
1282
+ await exitAfterFlush(err.exitCode ?? 1);
1283
+ }
1284
+ }
1285
+
1181
1286
  // --- Verify command routing ---
1182
1287
  if (command === 'verify') {
1183
1288
 
@@ -1221,6 +1326,18 @@ if (command === 'verify') {
1221
1326
  root,
1222
1327
  verificationGatesAuthorized,
1223
1328
  });
1329
+ if (result.status === 'VERIFIED') {
1330
+ const {
1331
+ derivePostReleaseChecklist,
1332
+ unavailablePostReleaseChecklist,
1333
+ } = await import('../src/commands/post-release-local.mjs');
1334
+ const plan = JSON.parse(await readFile(planPath, 'utf8'));
1335
+ try {
1336
+ result.postRelease = derivePostReleaseChecklist(plan);
1337
+ } catch (error) {
1338
+ result.postRelease = unavailablePostReleaseChecklist(plan, error);
1339
+ }
1340
+ }
1224
1341
 
1225
1342
  if (hasJson) {
1226
1343
  console.log(JSON.stringify(result, null, 2));
@@ -1237,6 +1354,14 @@ if (command === 'verify') {
1237
1354
  console.log(`Baseline advance: ${result.baselineAdvance.committed ? 'advanced and committed' : 'advanced (uncommitted — commit .release-skill/project.yaml manually)'}`);
1238
1355
  }
1239
1356
  }
1357
+ if (result.postRelease?.status === 'UNAVAILABLE') {
1358
+ console.warn(`Post-release checklist unavailable: ${result.postRelease.diagnostic?.message ?? 'unknown error'}`);
1359
+ } else if (result.postRelease?.merge.promptRequired) {
1360
+ console.log('Post-release: ask whether to merge the remaining branch.');
1361
+ }
1362
+ if (result.postRelease?.localHostUpdate.promptRequired) {
1363
+ console.log(`Post-release: ask whether to update local host plugins (${result.postRelease.localHostUpdate.hosts.join(', ')}).`);
1364
+ }
1240
1365
  }
1241
1366
 
1242
1367
  await exitAfterFlush(result.status === 'VERIFIED' ? 0 : 1);
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env node
2
+
3
+ if (process.argv[2] !== 'post-release') process.argv.splice(2, 0, 'post-release');
4
+ await import('./release-skill.mjs');