release-skill 0.9.16 → 0.9.18

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 (356) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/.codebuddy-plugin/plugin.json +1 -1
  3. package/.codex-plugin/plugin.json +2 -2
  4. package/.cursor-plugin/plugin.json +10 -0
  5. package/.kimi-plugin/plugin.json +1 -1
  6. package/.qoder-plugin/plugin.json +10 -0
  7. package/CHANGELOG.md +64 -0
  8. package/INSTALL.md +104 -9
  9. package/INSTALL.zh-CN.md +78 -7
  10. package/README.md +87 -32
  11. package/README.zh-CN.md +71 -30
  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/error-codes.json +1 -1
  15. package/adapters/claude/bin/foundation-resource-binding.json +1 -1
  16. package/adapters/claude/bin/prebuild-manifest.json +8 -4
  17. package/adapters/claude/bin/prebuilds/darwin-arm64/bound_read.darwin-arm64.node +0 -0
  18. package/adapters/claude/bin/prebuilds/darwin-x64/bound_read.darwin-x64.node +0 -0
  19. package/adapters/claude/bin/prebuilds/linux-arm64-gnu/bound_read.linux-arm64-gnu.node +0 -0
  20. package/adapters/claude/bin/prebuilds/linux-x64-gnu/bound_read.linux-x64-gnu.node +0 -0
  21. package/adapters/claude/bin/registry.json +1 -1
  22. package/adapters/claude/bin/release-skill.bundle.mjs +4950 -1819
  23. package/adapters/claude/bin/rules.json +1 -1
  24. package/adapters/claude/data/hosts/cursor/host-descriptor.json +34 -0
  25. package/adapters/claude/data/hosts/registry.json +1 -0
  26. package/adapters/claude/schemas/release-plan.schema.json +255 -25
  27. package/adapters/claude/schemas/release-project.schema.json +228 -26
  28. package/adapters/claude/skills/release-finish/SKILL.md +29 -15
  29. package/adapters/claude/skills/release-help/SKILL.md +40 -39
  30. package/adapters/claude/skills/release-verify/SKILL.md +2 -2
  31. package/adapters/claude/src/schemas/host-descriptor.schema.json +9 -2
  32. package/adapters/codex/.codex-plugin/plugin.json +2 -2
  33. package/adapters/codex/bin/consumer-contract-vectors.json +7 -7
  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 +1 -1
  42. package/adapters/codex/bin/release-skill.bundle.mjs +4950 -1819
  43. package/adapters/codex/bin/rules.json +1 -1
  44. package/adapters/codex/data/hosts/cursor/host-descriptor.json +34 -0
  45. package/adapters/codex/data/hosts/registry.json +1 -0
  46. package/adapters/codex/schemas/release-plan.schema.json +255 -25
  47. package/adapters/codex/schemas/release-project.schema.json +228 -26
  48. package/adapters/codex/skills/release-finish/SKILL.md +29 -15
  49. package/adapters/codex/skills/release-help/SKILL.md +40 -39
  50. package/adapters/codex/skills/release-verify/SKILL.md +2 -2
  51. package/adapters/codex/src/schemas/host-descriptor.schema.json +9 -2
  52. package/adapters/cursor/.cursor-plugin/plugin.json +10 -0
  53. package/adapters/cursor/bin/consumer-contract-vectors.json +110 -0
  54. package/adapters/cursor/bin/error-codes.json +161 -0
  55. package/adapters/cursor/bin/foundation-legal/skill-family-contracts/LICENSE +202 -0
  56. package/adapters/cursor/bin/foundation-legal/skill-family-contracts/NOTICE +10 -0
  57. package/adapters/cursor/bin/foundation-legal/skill-family-engineering-kit/LICENSE +202 -0
  58. package/adapters/cursor/bin/foundation-legal/skill-family-engineering-kit/NOTICE +10 -0
  59. package/adapters/cursor/bin/foundation-legal/skill-family-engineering-kit/THIRD_PARTY_NOTICES +142 -0
  60. package/adapters/cursor/bin/foundation-legal/skill-family-harness-node/LICENSE +202 -0
  61. package/adapters/cursor/bin/foundation-legal/skill-family-harness-node/NOTICE +10 -0
  62. package/adapters/cursor/bin/foundation-legal/skill-family-harness-node/native-NOTICE +2 -0
  63. package/adapters/cursor/bin/foundation-resource-binding.json +1 -0
  64. package/adapters/cursor/bin/kernel-protocol.json +60 -0
  65. package/adapters/cursor/bin/license-texts/Apache-2.0.txt +201 -0
  66. package/adapters/cursor/bin/license-texts/MIT.txt +21 -0
  67. package/adapters/cursor/bin/prebuild-manifest.json +83 -0
  68. package/adapters/cursor/bin/prebuilds/darwin-arm64/bound_read.darwin-arm64.node +0 -0
  69. package/adapters/cursor/bin/prebuilds/darwin-x64/bound_read.darwin-x64.node +0 -0
  70. package/adapters/cursor/bin/prebuilds/linux-arm64-gnu/bound_read.linux-arm64-gnu.node +0 -0
  71. package/adapters/cursor/bin/prebuilds/linux-x64-gnu/bound_read.linux-x64-gnu.node +0 -0
  72. package/adapters/cursor/bin/registry.json +347 -0
  73. package/adapters/cursor/bin/release-skill-local-finish.mjs +4 -0
  74. package/adapters/cursor/bin/release-skill.bundle.mjs +151806 -0
  75. package/adapters/cursor/bin/release-skill.mjs +54 -0
  76. package/adapters/cursor/bin/rules.json +104 -0
  77. package/adapters/cursor/bin/schemas/consumer-contract-vector.schema.json +149 -0
  78. package/adapters/cursor/data/hosts/claude/host-descriptor.json +45 -0
  79. package/adapters/cursor/data/hosts/codebuddy/host-descriptor.json +26 -0
  80. package/adapters/cursor/data/hosts/codex/host-descriptor.json +45 -0
  81. package/adapters/cursor/data/hosts/cursor/host-descriptor.json +34 -0
  82. package/adapters/cursor/data/hosts/deepseek-harness/host-descriptor.json +23 -0
  83. package/adapters/cursor/data/hosts/kimi-code/host-descriptor.json +36 -0
  84. package/adapters/cursor/data/hosts/qoder/host-descriptor.json +26 -0
  85. package/adapters/cursor/data/hosts/registry.json +14 -0
  86. package/adapters/cursor/data/hosts/workbuddy/host-descriptor.json +34 -0
  87. package/adapters/cursor/data/licensing/registry.json +211 -0
  88. package/adapters/cursor/data/licensing/schema.json +207 -0
  89. package/adapters/cursor/native/safe-write/binding.gyp +41 -0
  90. package/adapters/cursor/native/safe-write/prebuilds/darwin-arm64/safe_write.node +0 -0
  91. package/adapters/cursor/native/safe-write/prebuilds.json +24 -0
  92. package/adapters/cursor/native/safe-write/src/safe_write.cc +2032 -0
  93. package/adapters/cursor/schemas/.render-manifest.json +41 -0
  94. package/adapters/cursor/schemas/approval-record.schema.json +115 -0
  95. package/adapters/cursor/schemas/artifact-lock.schema.json +111 -0
  96. package/adapters/cursor/schemas/artifact-plan.schema.json +52 -0
  97. package/adapters/cursor/schemas/artifact-policy.schema.json +76 -0
  98. package/adapters/cursor/schemas/evidence-event-v2.schema.json +164 -0
  99. package/adapters/cursor/schemas/evidence-event.schema.json +89 -0
  100. package/adapters/cursor/schemas/postpublish-approval-record.schema.json +47 -0
  101. package/adapters/cursor/schemas/release-plan.schema.json +2226 -0
  102. package/adapters/cursor/schemas/release-project.schema.json +1815 -0
  103. package/adapters/cursor/schemas/release-run.schema.json +777 -0
  104. package/adapters/cursor/skills/release-assess/SKILL.md +61 -0
  105. package/adapters/cursor/skills/release-config/SKILL.md +151 -0
  106. package/adapters/cursor/skills/release-docs/SKILL.md +120 -0
  107. package/adapters/cursor/skills/release-finish/SKILL.md +155 -0
  108. package/adapters/cursor/skills/release-help/SKILL.md +155 -0
  109. package/adapters/cursor/skills/release-marketplace/SKILL.md +157 -0
  110. package/adapters/cursor/skills/release-prepare/SKILL.md +136 -0
  111. package/adapters/cursor/skills/release-publish/SKILL.md +92 -0
  112. package/adapters/cursor/skills/release-reconcile/SKILL.md +81 -0
  113. package/adapters/cursor/skills/release-setup/SKILL.md +132 -0
  114. package/adapters/cursor/skills/release-verify/SKILL.md +110 -0
  115. package/adapters/cursor/src/schemas/adapter-build-manifest.schema.json +41 -0
  116. package/adapters/cursor/src/schemas/adapter-peer-verification-request.schema.json +54 -0
  117. package/adapters/cursor/src/schemas/adapter-peer-verification-result.schema.json +54 -0
  118. package/adapters/cursor/src/schemas/adapter-source.schema.json +47 -0
  119. package/adapters/cursor/src/schemas/audit-baseline-pin.schema.json +163 -0
  120. package/adapters/cursor/src/schemas/declared-read-surface-result.schema.json +61 -0
  121. package/adapters/cursor/src/schemas/engineering-baseline.schema.json +77 -0
  122. package/adapters/cursor/src/schemas/executable-identity-observation.schema.json +162 -0
  123. package/adapters/cursor/src/schemas/filesystem-root-binding.schema.json +14 -0
  124. package/adapters/cursor/src/schemas/filesystem-tree-observation.schema.json +71 -0
  125. package/adapters/cursor/src/schemas/fixed-set-publication-manifest.schema.json +108 -0
  126. package/adapters/cursor/src/schemas/fixed-set-publication-receipt.schema.json +148 -0
  127. package/adapters/cursor/src/schemas/host-capability-fact.schema.json +31 -0
  128. package/adapters/cursor/src/schemas/host-descriptor.schema.json +144 -0
  129. package/adapters/cursor/src/schemas/host-operation-plan.schema.json +57 -0
  130. package/adapters/cursor/src/schemas/host-operation-receipt.schema.json +81 -0
  131. package/adapters/cursor/src/schemas/host-probe-result.schema.json +30 -0
  132. package/adapters/cursor/src/schemas/host-registry.schema.json +18 -0
  133. package/adapters/cursor/src/schemas/host-verification-request.schema.json +67 -0
  134. package/adapters/cursor/src/schemas/host-verification-result.schema.json +149 -0
  135. package/adapters/cursor/src/schemas/managed-file-lock.schema.json +77 -0
  136. package/adapters/cursor/src/schemas/migration-manifest.schema.json +412 -0
  137. package/adapters/cursor/src/schemas/observation-scope.schema.json +91 -0
  138. package/adapters/cursor/src/schemas/operation-request.schema.json +58 -0
  139. package/adapters/cursor/src/schemas/operation-result.schema.json +130 -0
  140. package/adapters/cursor/src/schemas/platform-difference-registry.schema.json +110 -0
  141. package/adapters/cursor/src/schemas/plugin-verification-request.schema.json +499 -0
  142. package/adapters/cursor/src/schemas/plugin-verification-result.schema.json +1217 -0
  143. package/adapters/cursor/src/schemas/profile-adoption-declaration.schema.json +111 -0
  144. package/adapters/cursor/src/schemas/profile-descriptor.schema.json +99 -0
  145. package/adapters/cursor/src/schemas/project-manifest.schema.json +67 -0
  146. package/adapters/cursor/src/schemas/project-profile.schema.json +25 -0
  147. package/adapters/cursor/src/schemas/public-boundary-declaration.schema.json +73 -0
  148. package/adapters/cursor/src/schemas/report-binding.schema.json +42 -0
  149. package/adapters/cursor/src/schemas/report-model.schema.json +308 -0
  150. package/adapters/cursor/src/schemas/skill-family-directory-verification-request.schema.json +100 -0
  151. package/adapters/cursor/src/schemas/skill-family-directory-verification-result.schema.json +193 -0
  152. package/adapters/cursor/src/schemas/source-authority-receipt.schema.json +31 -0
  153. package/adapters/cursor/src/schemas/state-event-envelope.schema.json +38 -0
  154. package/adapters/cursor/src/schemas/state-snapshot-metadata.schema.json +25 -0
  155. package/adapters/cursor/src/schemas/structured-scan-policy.schema.json +97 -0
  156. package/adapters/cursor/src/schemas/surface-scan-policy.schema.json +42 -0
  157. package/adapters/cursor/src/schemas/timeout-policy.schema.json +24 -0
  158. package/adapters/cursor/src/schemas/token-estimate-record.schema.json +75 -0
  159. package/adapters/cursor/src/schemas/token-estimate-result.schema.json +43 -0
  160. package/adapters/cursor/src/schemas/watchdog-termination-envelope.schema.json +156 -0
  161. package/adapters/kimi/.kimi-plugin/plugin.json +1 -1
  162. package/adapters/kimi/bin/consumer-contract-vectors.json +7 -7
  163. package/adapters/kimi/bin/error-codes.json +1 -1
  164. package/adapters/kimi/bin/foundation-resource-binding.json +1 -1
  165. package/adapters/kimi/bin/prebuild-manifest.json +8 -4
  166. package/adapters/kimi/bin/prebuilds/darwin-arm64/bound_read.darwin-arm64.node +0 -0
  167. package/adapters/kimi/bin/prebuilds/darwin-x64/bound_read.darwin-x64.node +0 -0
  168. package/adapters/kimi/bin/prebuilds/linux-arm64-gnu/bound_read.linux-arm64-gnu.node +0 -0
  169. package/adapters/kimi/bin/prebuilds/linux-x64-gnu/bound_read.linux-x64-gnu.node +0 -0
  170. package/adapters/kimi/bin/registry.json +1 -1
  171. package/adapters/kimi/bin/release-skill.bundle.mjs +4950 -1819
  172. package/adapters/kimi/bin/rules.json +1 -1
  173. package/adapters/kimi/data/hosts/cursor/host-descriptor.json +34 -0
  174. package/adapters/kimi/data/hosts/registry.json +1 -0
  175. package/adapters/kimi/schemas/release-plan.schema.json +255 -25
  176. package/adapters/kimi/schemas/release-project.schema.json +228 -26
  177. package/adapters/kimi/skills/release-finish/SKILL.md +29 -15
  178. package/adapters/kimi/skills/release-help/SKILL.md +40 -39
  179. package/adapters/kimi/skills/release-verify/SKILL.md +2 -2
  180. package/adapters/kimi/src/schemas/host-descriptor.schema.json +9 -2
  181. package/adapters/qoder/.qoder-plugin/plugin.json +10 -0
  182. package/adapters/qoder/bin/consumer-contract-vectors.json +110 -0
  183. package/adapters/qoder/bin/error-codes.json +161 -0
  184. package/adapters/qoder/bin/foundation-legal/skill-family-contracts/LICENSE +202 -0
  185. package/adapters/qoder/bin/foundation-legal/skill-family-contracts/NOTICE +10 -0
  186. package/adapters/qoder/bin/foundation-legal/skill-family-engineering-kit/LICENSE +202 -0
  187. package/adapters/qoder/bin/foundation-legal/skill-family-engineering-kit/NOTICE +10 -0
  188. package/adapters/qoder/bin/foundation-legal/skill-family-engineering-kit/THIRD_PARTY_NOTICES +142 -0
  189. package/adapters/qoder/bin/foundation-legal/skill-family-harness-node/LICENSE +202 -0
  190. package/adapters/qoder/bin/foundation-legal/skill-family-harness-node/NOTICE +10 -0
  191. package/adapters/qoder/bin/foundation-legal/skill-family-harness-node/native-NOTICE +2 -0
  192. package/adapters/qoder/bin/foundation-resource-binding.json +1 -0
  193. package/adapters/qoder/bin/kernel-protocol.json +60 -0
  194. package/adapters/qoder/bin/license-texts/Apache-2.0.txt +201 -0
  195. package/adapters/qoder/bin/license-texts/MIT.txt +21 -0
  196. package/adapters/qoder/bin/prebuild-manifest.json +83 -0
  197. package/adapters/qoder/bin/prebuilds/darwin-arm64/bound_read.darwin-arm64.node +0 -0
  198. package/adapters/qoder/bin/prebuilds/darwin-x64/bound_read.darwin-x64.node +0 -0
  199. package/adapters/qoder/bin/prebuilds/linux-arm64-gnu/bound_read.linux-arm64-gnu.node +0 -0
  200. package/adapters/qoder/bin/prebuilds/linux-x64-gnu/bound_read.linux-x64-gnu.node +0 -0
  201. package/adapters/qoder/bin/registry.json +347 -0
  202. package/adapters/qoder/bin/release-skill-local-finish.mjs +4 -0
  203. package/adapters/qoder/bin/release-skill.bundle.mjs +151806 -0
  204. package/adapters/qoder/bin/release-skill.mjs +54 -0
  205. package/adapters/qoder/bin/rules.json +104 -0
  206. package/adapters/qoder/bin/schemas/consumer-contract-vector.schema.json +149 -0
  207. package/adapters/qoder/data/hosts/claude/host-descriptor.json +45 -0
  208. package/adapters/qoder/data/hosts/codebuddy/host-descriptor.json +26 -0
  209. package/adapters/qoder/data/hosts/codex/host-descriptor.json +45 -0
  210. package/adapters/qoder/data/hosts/cursor/host-descriptor.json +34 -0
  211. package/adapters/qoder/data/hosts/deepseek-harness/host-descriptor.json +23 -0
  212. package/adapters/qoder/data/hosts/kimi-code/host-descriptor.json +36 -0
  213. package/adapters/qoder/data/hosts/qoder/host-descriptor.json +26 -0
  214. package/adapters/qoder/data/hosts/registry.json +14 -0
  215. package/adapters/qoder/data/hosts/workbuddy/host-descriptor.json +34 -0
  216. package/adapters/qoder/data/licensing/registry.json +211 -0
  217. package/adapters/qoder/data/licensing/schema.json +207 -0
  218. package/adapters/qoder/native/safe-write/binding.gyp +41 -0
  219. package/adapters/qoder/native/safe-write/prebuilds/darwin-arm64/safe_write.node +0 -0
  220. package/adapters/qoder/native/safe-write/prebuilds.json +24 -0
  221. package/adapters/qoder/native/safe-write/src/safe_write.cc +2032 -0
  222. package/adapters/qoder/schemas/.render-manifest.json +41 -0
  223. package/adapters/qoder/schemas/approval-record.schema.json +115 -0
  224. package/adapters/qoder/schemas/artifact-lock.schema.json +111 -0
  225. package/adapters/qoder/schemas/artifact-plan.schema.json +52 -0
  226. package/adapters/qoder/schemas/artifact-policy.schema.json +76 -0
  227. package/adapters/qoder/schemas/evidence-event-v2.schema.json +164 -0
  228. package/adapters/qoder/schemas/evidence-event.schema.json +89 -0
  229. package/adapters/qoder/schemas/postpublish-approval-record.schema.json +47 -0
  230. package/adapters/qoder/schemas/release-plan.schema.json +2226 -0
  231. package/adapters/qoder/schemas/release-project.schema.json +1815 -0
  232. package/adapters/qoder/schemas/release-run.schema.json +777 -0
  233. package/adapters/qoder/skills/release-assess/SKILL.md +60 -0
  234. package/adapters/qoder/skills/release-config/SKILL.md +150 -0
  235. package/adapters/qoder/skills/release-docs/SKILL.md +119 -0
  236. package/adapters/qoder/skills/release-finish/SKILL.md +154 -0
  237. package/adapters/qoder/skills/release-help/SKILL.md +154 -0
  238. package/adapters/qoder/skills/release-marketplace/SKILL.md +156 -0
  239. package/adapters/qoder/skills/release-prepare/SKILL.md +135 -0
  240. package/adapters/qoder/skills/release-publish/SKILL.md +91 -0
  241. package/adapters/qoder/skills/release-reconcile/SKILL.md +80 -0
  242. package/adapters/qoder/skills/release-setup/SKILL.md +131 -0
  243. package/adapters/qoder/skills/release-verify/SKILL.md +109 -0
  244. package/adapters/qoder/src/schemas/adapter-build-manifest.schema.json +41 -0
  245. package/adapters/qoder/src/schemas/adapter-peer-verification-request.schema.json +54 -0
  246. package/adapters/qoder/src/schemas/adapter-peer-verification-result.schema.json +54 -0
  247. package/adapters/qoder/src/schemas/adapter-source.schema.json +47 -0
  248. package/adapters/qoder/src/schemas/audit-baseline-pin.schema.json +163 -0
  249. package/adapters/qoder/src/schemas/declared-read-surface-result.schema.json +61 -0
  250. package/adapters/qoder/src/schemas/engineering-baseline.schema.json +77 -0
  251. package/adapters/qoder/src/schemas/executable-identity-observation.schema.json +162 -0
  252. package/adapters/qoder/src/schemas/filesystem-root-binding.schema.json +14 -0
  253. package/adapters/qoder/src/schemas/filesystem-tree-observation.schema.json +71 -0
  254. package/adapters/qoder/src/schemas/fixed-set-publication-manifest.schema.json +108 -0
  255. package/adapters/qoder/src/schemas/fixed-set-publication-receipt.schema.json +148 -0
  256. package/adapters/qoder/src/schemas/host-capability-fact.schema.json +31 -0
  257. package/adapters/qoder/src/schemas/host-descriptor.schema.json +144 -0
  258. package/adapters/qoder/src/schemas/host-operation-plan.schema.json +57 -0
  259. package/adapters/qoder/src/schemas/host-operation-receipt.schema.json +81 -0
  260. package/adapters/qoder/src/schemas/host-probe-result.schema.json +30 -0
  261. package/adapters/qoder/src/schemas/host-registry.schema.json +18 -0
  262. package/adapters/qoder/src/schemas/host-verification-request.schema.json +67 -0
  263. package/adapters/qoder/src/schemas/host-verification-result.schema.json +149 -0
  264. package/adapters/qoder/src/schemas/managed-file-lock.schema.json +77 -0
  265. package/adapters/qoder/src/schemas/migration-manifest.schema.json +412 -0
  266. package/adapters/qoder/src/schemas/observation-scope.schema.json +91 -0
  267. package/adapters/qoder/src/schemas/operation-request.schema.json +58 -0
  268. package/adapters/qoder/src/schemas/operation-result.schema.json +130 -0
  269. package/adapters/qoder/src/schemas/platform-difference-registry.schema.json +110 -0
  270. package/adapters/qoder/src/schemas/plugin-verification-request.schema.json +499 -0
  271. package/adapters/qoder/src/schemas/plugin-verification-result.schema.json +1217 -0
  272. package/adapters/qoder/src/schemas/profile-adoption-declaration.schema.json +111 -0
  273. package/adapters/qoder/src/schemas/profile-descriptor.schema.json +99 -0
  274. package/adapters/qoder/src/schemas/project-manifest.schema.json +67 -0
  275. package/adapters/qoder/src/schemas/project-profile.schema.json +25 -0
  276. package/adapters/qoder/src/schemas/public-boundary-declaration.schema.json +73 -0
  277. package/adapters/qoder/src/schemas/report-binding.schema.json +42 -0
  278. package/adapters/qoder/src/schemas/report-model.schema.json +308 -0
  279. package/adapters/qoder/src/schemas/skill-family-directory-verification-request.schema.json +100 -0
  280. package/adapters/qoder/src/schemas/skill-family-directory-verification-result.schema.json +193 -0
  281. package/adapters/qoder/src/schemas/source-authority-receipt.schema.json +31 -0
  282. package/adapters/qoder/src/schemas/state-event-envelope.schema.json +38 -0
  283. package/adapters/qoder/src/schemas/state-snapshot-metadata.schema.json +25 -0
  284. package/adapters/qoder/src/schemas/structured-scan-policy.schema.json +97 -0
  285. package/adapters/qoder/src/schemas/surface-scan-policy.schema.json +42 -0
  286. package/adapters/qoder/src/schemas/timeout-policy.schema.json +24 -0
  287. package/adapters/qoder/src/schemas/token-estimate-record.schema.json +75 -0
  288. package/adapters/qoder/src/schemas/token-estimate-result.schema.json +43 -0
  289. package/adapters/qoder/src/schemas/watchdog-termination-envelope.schema.json +156 -0
  290. package/adapters/workbuddy/.codebuddy-plugin/plugin.json +1 -1
  291. package/adapters/workbuddy/bin/consumer-contract-vectors.json +7 -7
  292. package/adapters/workbuddy/bin/error-codes.json +1 -1
  293. package/adapters/workbuddy/bin/foundation-resource-binding.json +1 -1
  294. package/adapters/workbuddy/bin/prebuild-manifest.json +8 -4
  295. package/adapters/workbuddy/bin/prebuilds/darwin-arm64/bound_read.darwin-arm64.node +0 -0
  296. package/adapters/workbuddy/bin/prebuilds/darwin-x64/bound_read.darwin-x64.node +0 -0
  297. package/adapters/workbuddy/bin/prebuilds/linux-arm64-gnu/bound_read.linux-arm64-gnu.node +0 -0
  298. package/adapters/workbuddy/bin/prebuilds/linux-x64-gnu/bound_read.linux-x64-gnu.node +0 -0
  299. package/adapters/workbuddy/bin/registry.json +1 -1
  300. package/adapters/workbuddy/bin/release-skill.bundle.mjs +4950 -1819
  301. package/adapters/workbuddy/bin/rules.json +1 -1
  302. package/adapters/workbuddy/data/hosts/cursor/host-descriptor.json +34 -0
  303. package/adapters/workbuddy/data/hosts/registry.json +1 -0
  304. package/adapters/workbuddy/schemas/release-plan.schema.json +255 -25
  305. package/adapters/workbuddy/schemas/release-project.schema.json +228 -26
  306. package/adapters/workbuddy/skills/release-finish/SKILL.md +29 -15
  307. package/adapters/workbuddy/skills/release-help/SKILL.md +40 -39
  308. package/adapters/workbuddy/skills/release-verify/SKILL.md +2 -2
  309. package/adapters/workbuddy/src/schemas/host-descriptor.schema.json +9 -2
  310. package/bin/consumer-contract-vectors.json +7 -7
  311. package/bin/error-codes.json +1 -1
  312. package/bin/foundation-resource-binding.json +1 -1
  313. package/bin/prebuild-manifest.json +8 -4
  314. package/bin/prebuilds/darwin-arm64/bound_read.darwin-arm64.node +0 -0
  315. package/bin/prebuilds/darwin-x64/bound_read.darwin-x64.node +0 -0
  316. package/bin/prebuilds/linux-arm64-gnu/bound_read.linux-arm64-gnu.node +0 -0
  317. package/bin/prebuilds/linux-x64-gnu/bound_read.linux-x64-gnu.node +0 -0
  318. package/bin/registry.json +1 -1
  319. package/bin/release-skill-cli.mjs +148 -6
  320. package/bin/release-skill.bundle.mjs +4950 -1819
  321. package/bin/rules.json +1 -1
  322. package/data/hosts/cursor/host-descriptor.json +34 -0
  323. package/data/hosts/registry.json +1 -0
  324. package/package.json +9 -5
  325. package/platform-manifest.json +140 -8
  326. package/references/02-project-config.md +9 -2
  327. package/schemas/release-plan.schema.json +255 -25
  328. package/schemas/release-project.schema.json +228 -26
  329. package/scripts/sync-public-files.mjs +3 -22
  330. package/skills/release-finish/SKILL.md +29 -15
  331. package/skills/release-help/SKILL.md +40 -39
  332. package/skills/release-verify/SKILL.md +2 -2
  333. package/skills-src/release-finish/SKILL.md +29 -15
  334. package/skills-src/release-help/SKILL.md +40 -39
  335. package/skills-src/release-verify/SKILL.md +2 -2
  336. package/src/adapters/contract.mjs +1 -0
  337. package/src/adapters/plugin-marketplace.mjs +201 -9
  338. package/src/commands/post-release-local.mjs +618 -53
  339. package/src/commands/prepare.mjs +74 -9
  340. package/src/commands/publish.mjs +4 -1
  341. package/src/commands/ship.mjs +2 -0
  342. package/src/commands/verify-records.mjs +467 -0
  343. package/src/commands/verify.mjs +73 -0
  344. package/src/core/checkpoints.mjs +5 -2
  345. package/src/core/config.mjs +1 -1
  346. package/src/core/foundation-host-verification.mjs +168 -0
  347. package/src/core/plan.mjs +19 -1
  348. package/src/core/postpublish.mjs +9 -1
  349. package/src/core/run-retention.mjs +1 -1
  350. package/src/core/run.mjs +1 -1
  351. package/src/core/surface-host-bindings.mjs +1 -0
  352. package/src/core/verification-gates.mjs +1 -1
  353. package/src/platforms/registry.mjs +225 -16
  354. package/src/producers/build-adapters.mjs +43 -25
  355. package/src/producers/foundation-resource-projection.mjs +3 -3
  356. package/src/schemas/host-descriptor.schema.json +9 -2
@@ -0,0 +1,38 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://contracts.skill-family.example/v1/state-event-envelope.json",
4
+ "title": "StateEventEnvelope",
5
+ "description": "Business-neutral append-only state event. Sequence, digest links and writer fencing are mechanism-owned; event type, producer and payload meaning remain consumer-owned.",
6
+ "type": "object",
7
+ "additionalProperties": false,
8
+ "required": [
9
+ "schemaVersion",
10
+ "kind",
11
+ "eventId",
12
+ "eventType",
13
+ "payloadSchemaVersion",
14
+ "producer",
15
+ "idempotencyKey",
16
+ "writerOwner",
17
+ "writerFencing",
18
+ "sequence",
19
+ "prevDigest",
20
+ "payload",
21
+ "recordDigest"
22
+ ],
23
+ "properties": {
24
+ "schemaVersion": { "const": 1 },
25
+ "kind": { "const": "skill-family.state-event-envelope" },
26
+ "eventId": { "type": "string", "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$" },
27
+ "eventType": { "type": "string", "pattern": "^[A-Za-z][A-Za-z0-9._-]{0,127}$" },
28
+ "payloadSchemaVersion": { "type": "integer", "minimum": 1 },
29
+ "producer": { "type": "string", "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$" },
30
+ "idempotencyKey": { "type": "string", "pattern": "^[!-~]{1,256}$" },
31
+ "writerOwner": { "type": "string", "minLength": 1, "maxLength": 256 },
32
+ "writerFencing": { "type": "integer", "minimum": 1 },
33
+ "sequence": { "type": "integer", "minimum": 1 },
34
+ "prevDigest": { "type": "string", "pattern": "^[0-9a-f]{64}$" },
35
+ "payload": {},
36
+ "recordDigest": { "type": "string", "pattern": "^[0-9a-f]{64}$" }
37
+ }
38
+ }
@@ -0,0 +1,25 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://contracts.skill-family.example/v1/state-snapshot-metadata.json",
4
+ "title": "StateSnapshotMetadata",
5
+ "description": "Derived snapshot bound to one fully verified event prefix. Corrupt snapshots are disposable; event history remains authoritative.",
6
+ "type": "object",
7
+ "additionalProperties": false,
8
+ "required": [
9
+ "schemaVersion",
10
+ "kind",
11
+ "lastSequence",
12
+ "chainHeadDigest",
13
+ "stateDigest",
14
+ "state"
15
+ ],
16
+ "properties": {
17
+ "schemaVersion": { "const": 1 },
18
+ "kind": { "const": "skill-family.state-snapshot-metadata" },
19
+ "lastSequence": { "type": "integer", "minimum": 0 },
20
+ "chainHeadDigest": { "type": "string", "pattern": "^[0-9a-f]{64}$" },
21
+ "stateDigest": { "type": "string", "pattern": "^[0-9a-f]{64}$" },
22
+ "state": {},
23
+ "hostSessionRef": { "type": "string", "minLength": 1, "maxLength": 512 }
24
+ }
25
+ }
@@ -0,0 +1,97 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://contracts.skill-family.example/v1/structured-scan-policy.json",
4
+ "title": "StructuredScanPolicy",
5
+ "description": "Declarative policy for the structured surface scanner (FND-ADR-011). Consumers declare allowed IP networks (CIDR), approved registries, approved npm coordinates, format adapters and fail-closed symlink/binary modes; the scanner applies the closed rule vocabulary non-public-address, private-npm-scope, unapproved-dependency-coordinate, non-approved-registry, non-reserved-hostname, format-adapter-parse-failed, format-adapter-unknown, binary-unclassified, symlink-forbidden. Relationship to the leak policy (no byte-level compatibility): the consumer-facing policy of the generic surface scanner is surface-scan-policy; leak-policy.json is a workspace-private instance document that is not a subset, not isomorphic and not a migration target of this schema — the two documents share rule vocabulary and fail-closed semantics by design, but their byte-level shapes are independent and must not be compared for compatibility. scanSurface is the execution-core generalization projection: the structured scanner is the public, consumer-parameterized form of the same mechanism family, without any private identity, path, or approval-list interpretation of its own.",
6
+ "type": "object",
7
+ "additionalProperties": false,
8
+ "required": [
9
+ "schemaVersion",
10
+ "kind",
11
+ "allowedNetworks",
12
+ "approvedRegistries",
13
+ "approvedCoordinates",
14
+ "formatAdapters",
15
+ "symlinkPolicy",
16
+ "binaryPolicy"
17
+ ],
18
+ "properties": {
19
+ "schemaVersion": { "const": 1 },
20
+ "kind": { "const": "skill-family.structured-scan-policy" },
21
+ "allowedNetworks": {
22
+ "type": "array",
23
+ "minItems": 1,
24
+ "maxItems": 64,
25
+ "uniqueItems": true,
26
+ "items": {
27
+ "type": "string",
28
+ "minLength": 1,
29
+ "maxLength": 128
30
+ }
31
+ },
32
+ "approvedRegistries": {
33
+ "type": "array",
34
+ "minItems": 1,
35
+ "maxItems": 64,
36
+ "uniqueItems": true,
37
+ "items": {
38
+ "type": "string",
39
+ "minLength": 1,
40
+ "maxLength": 256
41
+ }
42
+ },
43
+ "approvedCoordinates": {
44
+ "type": "array",
45
+ "minItems": 1,
46
+ "maxItems": 1024,
47
+ "uniqueItems": true,
48
+ "items": {
49
+ "type": "string",
50
+ "minLength": 1,
51
+ "maxLength": 256
52
+ }
53
+ },
54
+ "formatAdapters": {
55
+ "type": "array",
56
+ "minItems": 1,
57
+ "maxItems": 64,
58
+ "uniqueItems": true,
59
+ "items": {
60
+ "type": "object",
61
+ "additionalProperties": false,
62
+ "required": ["name", "pathPattern"],
63
+ "properties": {
64
+ "name": { "type": "string", "minLength": 1, "maxLength": 128 },
65
+ "pathPattern": { "type": "string", "minLength": 1, "maxLength": 512 }
66
+ }
67
+ }
68
+ },
69
+ "symlinkPolicy": {
70
+ "type": "object",
71
+ "additionalProperties": false,
72
+ "required": ["mode"],
73
+ "properties": {
74
+ "mode": { "const": "forbid" }
75
+ }
76
+ },
77
+ "binaryPolicy": {
78
+ "type": "object",
79
+ "additionalProperties": false,
80
+ "required": ["mode", "approvedPaths"],
81
+ "properties": {
82
+ "mode": { "const": "fail-closed" },
83
+ "approvedPaths": {
84
+ "type": "array",
85
+ "maxItems": 1024,
86
+ "uniqueItems": true,
87
+ "items": { "type": "string", "minLength": 1, "maxLength": 512 }
88
+ }
89
+ }
90
+ },
91
+ "hostKeyPattern": {
92
+ "type": "string",
93
+ "minLength": 1,
94
+ "maxLength": 512
95
+ }
96
+ }
97
+ }
@@ -0,0 +1,42 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://contracts.skill-family.example/v1/surface-scan-policy.json",
4
+ "title": "SurfaceScanPolicy",
5
+ "description": "Declarative policy for the generic strategy-driven surface scanner. Consumers provide forbidden path patterns, forbidden content patterns and the list of intended uses; the scanner applies pathPatterns and contentPatterns only. Foundation does not interpret any private identity, path, or the meaning of allowedUses: every pattern hit fails closed, and the interpretation or exemption of allowed uses belongs to the consumer. Policy pattern strings are compiled as RegExp sources by the harness and a compile failure is a fail-closed scan-policy-invalid result. This schema is the consumer-facing policy of the generic surface scanner (scanSurface); the workspace-private leak-policy.json instance document is not a subset, not isomorphic and not a migration target of this schema — the two documents share rule vocabulary and fail-closed semantics by design, but their byte-level shapes are independent and must not be compared for compatibility. scanSurface is the execution-core generalization projection: the public, consumer-parameterized form of the same mechanism family, without any private identity, path, or approval-list interpretation of its own.",
6
+ "type": "object",
7
+ "additionalProperties": false,
8
+ "required": [
9
+ "schemaVersion",
10
+ "kind",
11
+ "pathPatterns",
12
+ "contentPatterns",
13
+ "allowedUses"
14
+ ],
15
+ "properties": {
16
+ "schemaVersion": { "const": 1 },
17
+ "kind": { "const": "skill-family.surface-scan-policy" },
18
+ "pathPatterns": {
19
+ "type": "array",
20
+ "maxItems": 200,
21
+ "uniqueItems": true,
22
+ "items": { "type": "string", "minLength": 1, "maxLength": 512 }
23
+ },
24
+ "contentPatterns": {
25
+ "type": "array",
26
+ "maxItems": 200,
27
+ "uniqueItems": true,
28
+ "items": { "type": "string", "minLength": 1, "maxLength": 512 }
29
+ },
30
+ "allowedUses": {
31
+ "type": "array",
32
+ "minItems": 1,
33
+ "maxItems": 200,
34
+ "uniqueItems": true,
35
+ "items": { "type": "string", "minLength": 1, "maxLength": 200 }
36
+ }
37
+ },
38
+ "anyOf": [
39
+ { "properties": { "pathPatterns": { "type": "array", "minItems": 1 } } },
40
+ { "properties": { "contentPatterns": { "type": "array", "minItems": 1 } } }
41
+ ]
42
+ }
@@ -0,0 +1,24 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://contracts.skill-family.example/v1/timeout-policy.json",
4
+ "title": "TimeoutPolicy",
5
+ "description": "Consumer-supplied timeout parameters for bounded subprocess supervision (FND-ADR-012). The mechanism holds no timeout values of its own: every dimension is supplied by the consumer and only shape-validated here. `maxSeconds` (hard ceiling) and `killGraceSeconds` (SIGTERM-to-SIGKILL grace) are required; the remaining dimensions are optional and, when absent, disable that timeout dimension. All values are positive numbers in seconds. `additionalProperties: false` rejects smuggled fields. The mechanism never interprets these values as business policy; it only enforces them deterministically.",
6
+ "type": "object",
7
+ "additionalProperties": false,
8
+ "required": [
9
+ "schemaVersion",
10
+ "kind",
11
+ "maxSeconds",
12
+ "killGraceSeconds"
13
+ ],
14
+ "properties": {
15
+ "schemaVersion": { "const": 1 },
16
+ "kind": { "const": "skill-family.timeout-policy" },
17
+ "startupStaleSeconds": { "type": "number", "exclusiveMinimum": 0 },
18
+ "startupIdleSeconds": { "type": "number", "exclusiveMinimum": 0 },
19
+ "streamIdleSeconds": { "type": "number", "exclusiveMinimum": 0 },
20
+ "maxSeconds": { "type": "number", "exclusiveMinimum": 0 },
21
+ "toolLeaseSeconds": { "type": "number", "exclusiveMinimum": 0 },
22
+ "killGraceSeconds": { "type": "number", "exclusiveMinimum": 0 }
23
+ }
24
+ }
@@ -0,0 +1,75 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://contracts.skill-family.example/v1/token-estimate-record.json",
4
+ "title": "TokenEstimateRecord",
5
+ "description": "Authoritative deterministic token estimate record (audit remediation C1; promoted from the harness-node token estimator). One measurement of a content text under algorithm cjk-char-whitespace-split: every CJK code point is exactly one token, every maximal run of non-CJK non-whitespace code points is exactly one token, whitespace code points are separators. The record carries the estimator identity and version required by audit SFA-CONTEXT-028 so one threshold decision never silently mixes estimation methods, plus the exact segmentation counts so any consumer can re-derive tokens === segmentation.cjkCharacters + segmentation.otherRuns. Pure measurement convention: no model call, no tokenizer dependency, no network, no timestamp; declares no bias direction relative to any real tokenizer.",
6
+ "type": "object",
7
+ "additionalProperties": false,
8
+ "required": [
9
+ "schemaVersion",
10
+ "kind",
11
+ "estimator",
12
+ "algorithm",
13
+ "unit",
14
+ "input",
15
+ "segmentation",
16
+ "tokens",
17
+ "precision",
18
+ "scope",
19
+ "guarantees"
20
+ ],
21
+ "properties": {
22
+ "schemaVersion": { "const": 1 },
23
+ "kind": { "const": "skill-family.token-estimate-record" },
24
+ "estimator": {
25
+ "type": "object",
26
+ "additionalProperties": false,
27
+ "required": ["id", "version"],
28
+ "properties": {
29
+ "id": { "const": "skill-family.token-estimator" },
30
+ "version": {
31
+ "type": "string",
32
+ "pattern": "^[0-9]+\\.[0-9]+\\.[0-9]+$"
33
+ }
34
+ }
35
+ },
36
+ "algorithm": { "const": "cjk-char-whitespace-split" },
37
+ "unit": { "const": "tokens" },
38
+ "input": {
39
+ "type": "object",
40
+ "additionalProperties": false,
41
+ "required": ["codePoints", "inputBytes"],
42
+ "properties": {
43
+ "codePoints": { "type": "integer", "minimum": 0 },
44
+ "inputBytes": { "type": "integer", "minimum": 0 }
45
+ }
46
+ },
47
+ "segmentation": {
48
+ "type": "object",
49
+ "additionalProperties": false,
50
+ "required": ["cjkCharacters", "whitespaceSeparators", "otherRuns"],
51
+ "properties": {
52
+ "cjkCharacters": { "type": "integer", "minimum": 0 },
53
+ "whitespaceSeparators": { "type": "integer", "minimum": 0 },
54
+ "otherRuns": { "type": "integer", "minimum": 0 }
55
+ }
56
+ },
57
+ "tokens": { "type": "integer", "minimum": 0 },
58
+ "precision": { "const": "deterministic-heuristic" },
59
+ "scope": { "const": "content-text-only" },
60
+ "guarantees": {
61
+ "type": "array",
62
+ "minItems": 1,
63
+ "uniqueItems": true,
64
+ "items": {
65
+ "enum": [
66
+ "covers-content-text-only",
67
+ "no-model-calls",
68
+ "no-tokenizer-dependency",
69
+ "no-network-access",
70
+ "deterministic-segmentation"
71
+ ]
72
+ }
73
+ }
74
+ }
75
+ }
@@ -0,0 +1,43 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://contracts.skill-family.example/v1/token-estimate-result.json",
4
+ "title": "TokenEstimateResult",
5
+ "description": "Deterministic upper-bound estimate of the UTF-8 byte length of content text. The algorithm, scope and bias direction are declared in the contract: exact UTF-8 byte count, conservative upper bound for byte-level BPE tokenizers, content text only. No model call, no tokenizer dependency, no network, no persistent state; the result carries no timestamp.",
6
+ "type": "object",
7
+ "additionalProperties": false,
8
+ "required": [
9
+ "schemaVersion",
10
+ "kind",
11
+ "algorithm",
12
+ "unit",
13
+ "inputBytes",
14
+ "upperBound",
15
+ "precision",
16
+ "scope",
17
+ "guarantees"
18
+ ],
19
+ "properties": {
20
+ "schemaVersion": { "const": 1 },
21
+ "kind": { "const": "skill-family.token-estimate-result" },
22
+ "algorithm": { "const": "utf8-byte-count" },
23
+ "unit": { "const": "bytes" },
24
+ "inputBytes": { "type": "integer", "minimum": 0 },
25
+ "upperBound": { "type": "integer", "minimum": 0 },
26
+ "precision": { "const": "exact" },
27
+ "scope": { "const": "content-text-only" },
28
+ "guarantees": {
29
+ "type": "array",
30
+ "minItems": 1,
31
+ "uniqueItems": true,
32
+ "items": {
33
+ "enum": [
34
+ "covers-content-text-only",
35
+ "no-model-calls",
36
+ "no-tokenizer-dependency",
37
+ "no-network-access",
38
+ "deterministic-byte-count"
39
+ ]
40
+ }
41
+ }
42
+ }
43
+ }
@@ -0,0 +1,156 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://contracts.skill-family.example/v1/watchdog-termination-envelope.json",
4
+ "title": "WatchdogTerminationEnvelope",
5
+ "description": "Termination evidence envelope produced by bounded subprocess supervision (FND-ADR-012). Closed enums, fail-closed direction and mechanism purity are declared in `guarantees`: the mechanism reports the termination fact only; retry/restart policy stays with the upper orchestration layer (workflow-orchestration exclusion), and the mechanism never auto-restarts the supervised process. Liveness is confirmed only by explicit events (exit, signal, process-group probe); ps/process-table observation, if ever used, is restricted to residual-descendant tracking and is never used for liveness guessing. `terminationReason`/`watchdogReason` are the closed vocabulary of FND-ADR-012 section 7 (watchdog_reason 9 values, termination_reason 8 values, process status 7 values), each nullable when no watchdog termination occurred.",
6
+ "type": "object",
7
+ "additionalProperties": false,
8
+ "required": [
9
+ "schemaVersion",
10
+ "kind",
11
+ "ok",
12
+ "exitStatus",
13
+ "processStatus",
14
+ "terminationReason",
15
+ "watchdogReason",
16
+ "evidence"
17
+ ],
18
+ "properties": {
19
+ "schemaVersion": { "const": 1 },
20
+ "kind": { "const": "skill-family.watchdog-termination-envelope" },
21
+ "ok": { "type": "boolean" },
22
+ "exitStatus": { "type": "integer", "minimum": 0 },
23
+ "processStatus": {
24
+ "enum": [
25
+ "PLANNED",
26
+ "STARTING",
27
+ "RUNNING",
28
+ "EXITED",
29
+ "FAILED_TO_START",
30
+ "TIMED_OUT",
31
+ "TERMINATED"
32
+ ]
33
+ },
34
+ "terminationReason": {
35
+ "enum": [
36
+ "hard_ceiling",
37
+ "startup_idle",
38
+ "stream_idle",
39
+ "tool_lease_expired",
40
+ "failed_to_start",
41
+ "completed",
42
+ "child_exit",
43
+ "context_budget_exhausted",
44
+ "output_limit_exceeded",
45
+ null
46
+ ]
47
+ },
48
+ "watchdogReason": {
49
+ "enum": [
50
+ "max_seconds",
51
+ "startup_stale_progress",
52
+ "stale_progress",
53
+ "tool_lease_expired",
54
+ "runtime_error",
55
+ "terminal_progress",
56
+ "no_terminal_result",
57
+ "residual_process_group",
58
+ "context_budget_exhausted",
59
+ "output_limit_exceeded",
60
+ null
61
+ ]
62
+ },
63
+ "evidence": {
64
+ "type": "object",
65
+ "additionalProperties": false,
66
+ "required": [
67
+ "command",
68
+ "args",
69
+ "cwd",
70
+ "startedAt",
71
+ "finishedAt",
72
+ "checkIntervalSeconds",
73
+ "signalSequence",
74
+ "forcedKill",
75
+ "startupProgressPaths",
76
+ "terminalProgressPaths",
77
+ "timeoutPolicy",
78
+ "guarantees"
79
+ ],
80
+ "properties": {
81
+ "command": { "type": "string" },
82
+ "args": { "type": "array", "items": { "type": "string" } },
83
+ "cwd": { "type": "string" },
84
+ "startedAt": { "type": "string", "format": "date-time" },
85
+ "finishedAt": { "type": "string", "format": "date-time" },
86
+ "checkIntervalSeconds": { "type": "number", "exclusiveMinimum": 0 },
87
+ "pid": { "type": "integer", "minimum": 0 },
88
+ "processGroupId": { "type": "integer", "minimum": 0 },
89
+ "childExitCode": { "type": ["integer", "null"], "minimum": 0 },
90
+ "childSignal": { "type": ["string", "null"] },
91
+ "spawnError": { "type": "string" },
92
+ "signalSequence": {
93
+ "type": "array",
94
+ "items": {
95
+ "type": "object",
96
+ "additionalProperties": false,
97
+ "required": ["signal", "requestedMode"],
98
+ "properties": {
99
+ "signal": { "type": "string" },
100
+ "requestedMode": { "enum": ["process_group", "child_process"] },
101
+ "successfulMode": { "enum": ["process_group", "child_process"] }
102
+ }
103
+ }
104
+ },
105
+ "forcedKill": { "type": "boolean" },
106
+ "startupProgressPaths": { "type": "array", "items": { "type": "string" } },
107
+ "terminalProgressPaths": { "type": "array", "items": { "type": "string" } },
108
+ "timeoutPolicy": {
109
+ "type": "object",
110
+ "additionalProperties": false,
111
+ "required": ["maxSeconds", "killGraceSeconds"],
112
+ "properties": {
113
+ "startupStaleSeconds": { "type": "number", "exclusiveMinimum": 0 },
114
+ "startupIdleSeconds": { "type": "number", "exclusiveMinimum": 0 },
115
+ "streamIdleSeconds": { "type": "number", "exclusiveMinimum": 0 },
116
+ "maxSeconds": { "type": "number", "exclusiveMinimum": 0 },
117
+ "toolLeaseSeconds": { "type": "number", "exclusiveMinimum": 0 },
118
+ "killGraceSeconds": { "type": "number", "exclusiveMinimum": 0 }
119
+ }
120
+ },
121
+ "terminalIdentity": { "type": "string" },
122
+ "terminalStatus": { "type": "string" },
123
+ "residualGroupCleanupCompleted": { "type": "boolean" },
124
+ "outputByteLimits": { "$ref": "#/$defs/outputByteLimits" },
125
+ "outputLimitExceeded": { "enum": ["stdout", "stderr", null] },
126
+ "guarantees": {
127
+ "type": "array",
128
+ "minItems": 1,
129
+ "uniqueItems": true,
130
+ "items": {
131
+ "enum": [
132
+ "closed-enum-evidence",
133
+ "fail-closed",
134
+ "no-auto-restart",
135
+ "no-liveness-guessing",
136
+ "process-group-termination",
137
+ "mechanism-holds-no-timeout-values"
138
+ ]
139
+ }
140
+ }
141
+ }
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
+ }
155
+ }
156
+ }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "release-skill",
3
- "version": "0.9.16",
3
+ "version": "0.9.18",
4
4
  "description": "Safe preparation and frozen GitHub/npm production publishing with full happy end verification",
5
5
  "author": {
6
6
  "name": "广州市风荷科技有限公司"
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
3
  "kind": "skill-family.contracts.consumer-contract-vectors",
4
- "foundationVersion": "0.17.0",
4
+ "foundationVersion": "0.21.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.17.0",
18
+ "foundationVersion": "0.21.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.17.0",
34
+ "foundationVersion": "0.21.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.17.0",
50
+ "foundationVersion": "0.21.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.17.0",
74
+ "foundationVersion": "0.21.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.17.0",
87
+ "foundationVersion": "0.21.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.17.0",
100
+ "foundationVersion": "0.21.0",
101
101
  "contractId": "skill-family-harness-node:writeFileAtomic",
102
102
  "caseClass": "positive",
103
103
  "strategy": "official-fake",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
3
  "kind": "skill-family.contracts.error-codes",
4
- "contractsVersion": "1.16.0",
4
+ "contractsVersion": "1.18.0",
5
5
  "policy": {
6
6
  "format": "^SFC[0-9]{4}$",
7
7
  "ranges": [