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.
- package/.claude-plugin/plugin.json +1 -1
- package/.codebuddy-plugin/plugin.json +1 -1
- package/.codex-plugin/plugin.json +2 -2
- package/.cursor-plugin/plugin.json +10 -0
- package/.kimi-plugin/plugin.json +1 -1
- package/.qoder-plugin/plugin.json +10 -0
- package/CHANGELOG.md +64 -0
- package/INSTALL.md +104 -9
- package/INSTALL.zh-CN.md +78 -7
- package/README.md +87 -32
- package/README.zh-CN.md +71 -30
- package/adapters/claude/.claude-plugin/plugin.json +1 -1
- package/adapters/claude/bin/consumer-contract-vectors.json +7 -7
- package/adapters/claude/bin/error-codes.json +1 -1
- package/adapters/claude/bin/foundation-resource-binding.json +1 -1
- package/adapters/claude/bin/prebuild-manifest.json +8 -4
- package/adapters/claude/bin/prebuilds/darwin-arm64/bound_read.darwin-arm64.node +0 -0
- package/adapters/claude/bin/prebuilds/darwin-x64/bound_read.darwin-x64.node +0 -0
- package/adapters/claude/bin/prebuilds/linux-arm64-gnu/bound_read.linux-arm64-gnu.node +0 -0
- package/adapters/claude/bin/prebuilds/linux-x64-gnu/bound_read.linux-x64-gnu.node +0 -0
- package/adapters/claude/bin/registry.json +1 -1
- package/adapters/claude/bin/release-skill.bundle.mjs +4950 -1819
- package/adapters/claude/bin/rules.json +1 -1
- package/adapters/claude/data/hosts/cursor/host-descriptor.json +34 -0
- package/adapters/claude/data/hosts/registry.json +1 -0
- package/adapters/claude/schemas/release-plan.schema.json +255 -25
- package/adapters/claude/schemas/release-project.schema.json +228 -26
- package/adapters/claude/skills/release-finish/SKILL.md +29 -15
- package/adapters/claude/skills/release-help/SKILL.md +40 -39
- package/adapters/claude/skills/release-verify/SKILL.md +2 -2
- package/adapters/claude/src/schemas/host-descriptor.schema.json +9 -2
- package/adapters/codex/.codex-plugin/plugin.json +2 -2
- package/adapters/codex/bin/consumer-contract-vectors.json +7 -7
- package/adapters/codex/bin/error-codes.json +1 -1
- package/adapters/codex/bin/foundation-resource-binding.json +1 -1
- package/adapters/codex/bin/prebuild-manifest.json +8 -4
- package/adapters/codex/bin/prebuilds/darwin-arm64/bound_read.darwin-arm64.node +0 -0
- package/adapters/codex/bin/prebuilds/darwin-x64/bound_read.darwin-x64.node +0 -0
- package/adapters/codex/bin/prebuilds/linux-arm64-gnu/bound_read.linux-arm64-gnu.node +0 -0
- package/adapters/codex/bin/prebuilds/linux-x64-gnu/bound_read.linux-x64-gnu.node +0 -0
- package/adapters/codex/bin/registry.json +1 -1
- package/adapters/codex/bin/release-skill.bundle.mjs +4950 -1819
- package/adapters/codex/bin/rules.json +1 -1
- package/adapters/codex/data/hosts/cursor/host-descriptor.json +34 -0
- package/adapters/codex/data/hosts/registry.json +1 -0
- package/adapters/codex/schemas/release-plan.schema.json +255 -25
- package/adapters/codex/schemas/release-project.schema.json +228 -26
- package/adapters/codex/skills/release-finish/SKILL.md +29 -15
- package/adapters/codex/skills/release-help/SKILL.md +40 -39
- package/adapters/codex/skills/release-verify/SKILL.md +2 -2
- package/adapters/codex/src/schemas/host-descriptor.schema.json +9 -2
- package/adapters/cursor/.cursor-plugin/plugin.json +10 -0
- package/adapters/cursor/bin/consumer-contract-vectors.json +110 -0
- package/adapters/cursor/bin/error-codes.json +161 -0
- package/adapters/cursor/bin/foundation-legal/skill-family-contracts/LICENSE +202 -0
- package/adapters/cursor/bin/foundation-legal/skill-family-contracts/NOTICE +10 -0
- package/adapters/cursor/bin/foundation-legal/skill-family-engineering-kit/LICENSE +202 -0
- package/adapters/cursor/bin/foundation-legal/skill-family-engineering-kit/NOTICE +10 -0
- package/adapters/cursor/bin/foundation-legal/skill-family-engineering-kit/THIRD_PARTY_NOTICES +142 -0
- package/adapters/cursor/bin/foundation-legal/skill-family-harness-node/LICENSE +202 -0
- package/adapters/cursor/bin/foundation-legal/skill-family-harness-node/NOTICE +10 -0
- package/adapters/cursor/bin/foundation-legal/skill-family-harness-node/native-NOTICE +2 -0
- package/adapters/cursor/bin/foundation-resource-binding.json +1 -0
- package/adapters/cursor/bin/kernel-protocol.json +60 -0
- package/adapters/cursor/bin/license-texts/Apache-2.0.txt +201 -0
- package/adapters/cursor/bin/license-texts/MIT.txt +21 -0
- package/adapters/cursor/bin/prebuild-manifest.json +83 -0
- package/adapters/cursor/bin/prebuilds/darwin-arm64/bound_read.darwin-arm64.node +0 -0
- package/adapters/cursor/bin/prebuilds/darwin-x64/bound_read.darwin-x64.node +0 -0
- package/adapters/cursor/bin/prebuilds/linux-arm64-gnu/bound_read.linux-arm64-gnu.node +0 -0
- package/adapters/cursor/bin/prebuilds/linux-x64-gnu/bound_read.linux-x64-gnu.node +0 -0
- package/adapters/cursor/bin/registry.json +347 -0
- package/adapters/cursor/bin/release-skill-local-finish.mjs +4 -0
- package/adapters/cursor/bin/release-skill.bundle.mjs +151806 -0
- package/adapters/cursor/bin/release-skill.mjs +54 -0
- package/adapters/cursor/bin/rules.json +104 -0
- package/adapters/cursor/bin/schemas/consumer-contract-vector.schema.json +149 -0
- package/adapters/cursor/data/hosts/claude/host-descriptor.json +45 -0
- package/adapters/cursor/data/hosts/codebuddy/host-descriptor.json +26 -0
- package/adapters/cursor/data/hosts/codex/host-descriptor.json +45 -0
- package/adapters/cursor/data/hosts/cursor/host-descriptor.json +34 -0
- package/adapters/cursor/data/hosts/deepseek-harness/host-descriptor.json +23 -0
- package/adapters/cursor/data/hosts/kimi-code/host-descriptor.json +36 -0
- package/adapters/cursor/data/hosts/qoder/host-descriptor.json +26 -0
- package/adapters/cursor/data/hosts/registry.json +14 -0
- package/adapters/cursor/data/hosts/workbuddy/host-descriptor.json +34 -0
- package/adapters/cursor/data/licensing/registry.json +211 -0
- package/adapters/cursor/data/licensing/schema.json +207 -0
- package/adapters/cursor/native/safe-write/binding.gyp +41 -0
- package/adapters/cursor/native/safe-write/prebuilds/darwin-arm64/safe_write.node +0 -0
- package/adapters/cursor/native/safe-write/prebuilds.json +24 -0
- package/adapters/cursor/native/safe-write/src/safe_write.cc +2032 -0
- package/adapters/cursor/schemas/.render-manifest.json +41 -0
- package/adapters/cursor/schemas/approval-record.schema.json +115 -0
- package/adapters/cursor/schemas/artifact-lock.schema.json +111 -0
- package/adapters/cursor/schemas/artifact-plan.schema.json +52 -0
- package/adapters/cursor/schemas/artifact-policy.schema.json +76 -0
- package/adapters/cursor/schemas/evidence-event-v2.schema.json +164 -0
- package/adapters/cursor/schemas/evidence-event.schema.json +89 -0
- package/adapters/cursor/schemas/postpublish-approval-record.schema.json +47 -0
- package/adapters/cursor/schemas/release-plan.schema.json +2226 -0
- package/adapters/cursor/schemas/release-project.schema.json +1815 -0
- package/adapters/cursor/schemas/release-run.schema.json +777 -0
- package/adapters/cursor/skills/release-assess/SKILL.md +61 -0
- package/adapters/cursor/skills/release-config/SKILL.md +151 -0
- package/adapters/cursor/skills/release-docs/SKILL.md +120 -0
- package/adapters/cursor/skills/release-finish/SKILL.md +155 -0
- package/adapters/cursor/skills/release-help/SKILL.md +155 -0
- package/adapters/cursor/skills/release-marketplace/SKILL.md +157 -0
- package/adapters/cursor/skills/release-prepare/SKILL.md +136 -0
- package/adapters/cursor/skills/release-publish/SKILL.md +92 -0
- package/adapters/cursor/skills/release-reconcile/SKILL.md +81 -0
- package/adapters/cursor/skills/release-setup/SKILL.md +132 -0
- package/adapters/cursor/skills/release-verify/SKILL.md +110 -0
- package/adapters/cursor/src/schemas/adapter-build-manifest.schema.json +41 -0
- package/adapters/cursor/src/schemas/adapter-peer-verification-request.schema.json +54 -0
- package/adapters/cursor/src/schemas/adapter-peer-verification-result.schema.json +54 -0
- package/adapters/cursor/src/schemas/adapter-source.schema.json +47 -0
- package/adapters/cursor/src/schemas/audit-baseline-pin.schema.json +163 -0
- package/adapters/cursor/src/schemas/declared-read-surface-result.schema.json +61 -0
- package/adapters/cursor/src/schemas/engineering-baseline.schema.json +77 -0
- package/adapters/cursor/src/schemas/executable-identity-observation.schema.json +162 -0
- package/adapters/cursor/src/schemas/filesystem-root-binding.schema.json +14 -0
- package/adapters/cursor/src/schemas/filesystem-tree-observation.schema.json +71 -0
- package/adapters/cursor/src/schemas/fixed-set-publication-manifest.schema.json +108 -0
- package/adapters/cursor/src/schemas/fixed-set-publication-receipt.schema.json +148 -0
- package/adapters/cursor/src/schemas/host-capability-fact.schema.json +31 -0
- package/adapters/cursor/src/schemas/host-descriptor.schema.json +144 -0
- package/adapters/cursor/src/schemas/host-operation-plan.schema.json +57 -0
- package/adapters/cursor/src/schemas/host-operation-receipt.schema.json +81 -0
- package/adapters/cursor/src/schemas/host-probe-result.schema.json +30 -0
- package/adapters/cursor/src/schemas/host-registry.schema.json +18 -0
- package/adapters/cursor/src/schemas/host-verification-request.schema.json +67 -0
- package/adapters/cursor/src/schemas/host-verification-result.schema.json +149 -0
- package/adapters/cursor/src/schemas/managed-file-lock.schema.json +77 -0
- package/adapters/cursor/src/schemas/migration-manifest.schema.json +412 -0
- package/adapters/cursor/src/schemas/observation-scope.schema.json +91 -0
- package/adapters/cursor/src/schemas/operation-request.schema.json +58 -0
- package/adapters/cursor/src/schemas/operation-result.schema.json +130 -0
- package/adapters/cursor/src/schemas/platform-difference-registry.schema.json +110 -0
- package/adapters/cursor/src/schemas/plugin-verification-request.schema.json +499 -0
- package/adapters/cursor/src/schemas/plugin-verification-result.schema.json +1217 -0
- package/adapters/cursor/src/schemas/profile-adoption-declaration.schema.json +111 -0
- package/adapters/cursor/src/schemas/profile-descriptor.schema.json +99 -0
- package/adapters/cursor/src/schemas/project-manifest.schema.json +67 -0
- package/adapters/cursor/src/schemas/project-profile.schema.json +25 -0
- package/adapters/cursor/src/schemas/public-boundary-declaration.schema.json +73 -0
- package/adapters/cursor/src/schemas/report-binding.schema.json +42 -0
- package/adapters/cursor/src/schemas/report-model.schema.json +308 -0
- package/adapters/cursor/src/schemas/skill-family-directory-verification-request.schema.json +100 -0
- package/adapters/cursor/src/schemas/skill-family-directory-verification-result.schema.json +193 -0
- package/adapters/cursor/src/schemas/source-authority-receipt.schema.json +31 -0
- package/adapters/cursor/src/schemas/state-event-envelope.schema.json +38 -0
- package/adapters/cursor/src/schemas/state-snapshot-metadata.schema.json +25 -0
- package/adapters/cursor/src/schemas/structured-scan-policy.schema.json +97 -0
- package/adapters/cursor/src/schemas/surface-scan-policy.schema.json +42 -0
- package/adapters/cursor/src/schemas/timeout-policy.schema.json +24 -0
- package/adapters/cursor/src/schemas/token-estimate-record.schema.json +75 -0
- package/adapters/cursor/src/schemas/token-estimate-result.schema.json +43 -0
- package/adapters/cursor/src/schemas/watchdog-termination-envelope.schema.json +156 -0
- package/adapters/kimi/.kimi-plugin/plugin.json +1 -1
- package/adapters/kimi/bin/consumer-contract-vectors.json +7 -7
- package/adapters/kimi/bin/error-codes.json +1 -1
- package/adapters/kimi/bin/foundation-resource-binding.json +1 -1
- package/adapters/kimi/bin/prebuild-manifest.json +8 -4
- package/adapters/kimi/bin/prebuilds/darwin-arm64/bound_read.darwin-arm64.node +0 -0
- package/adapters/kimi/bin/prebuilds/darwin-x64/bound_read.darwin-x64.node +0 -0
- package/adapters/kimi/bin/prebuilds/linux-arm64-gnu/bound_read.linux-arm64-gnu.node +0 -0
- package/adapters/kimi/bin/prebuilds/linux-x64-gnu/bound_read.linux-x64-gnu.node +0 -0
- package/adapters/kimi/bin/registry.json +1 -1
- package/adapters/kimi/bin/release-skill.bundle.mjs +4950 -1819
- package/adapters/kimi/bin/rules.json +1 -1
- package/adapters/kimi/data/hosts/cursor/host-descriptor.json +34 -0
- package/adapters/kimi/data/hosts/registry.json +1 -0
- package/adapters/kimi/schemas/release-plan.schema.json +255 -25
- package/adapters/kimi/schemas/release-project.schema.json +228 -26
- package/adapters/kimi/skills/release-finish/SKILL.md +29 -15
- package/adapters/kimi/skills/release-help/SKILL.md +40 -39
- package/adapters/kimi/skills/release-verify/SKILL.md +2 -2
- package/adapters/kimi/src/schemas/host-descriptor.schema.json +9 -2
- package/adapters/qoder/.qoder-plugin/plugin.json +10 -0
- package/adapters/qoder/bin/consumer-contract-vectors.json +110 -0
- package/adapters/qoder/bin/error-codes.json +161 -0
- package/adapters/qoder/bin/foundation-legal/skill-family-contracts/LICENSE +202 -0
- package/adapters/qoder/bin/foundation-legal/skill-family-contracts/NOTICE +10 -0
- package/adapters/qoder/bin/foundation-legal/skill-family-engineering-kit/LICENSE +202 -0
- package/adapters/qoder/bin/foundation-legal/skill-family-engineering-kit/NOTICE +10 -0
- package/adapters/qoder/bin/foundation-legal/skill-family-engineering-kit/THIRD_PARTY_NOTICES +142 -0
- package/adapters/qoder/bin/foundation-legal/skill-family-harness-node/LICENSE +202 -0
- package/adapters/qoder/bin/foundation-legal/skill-family-harness-node/NOTICE +10 -0
- package/adapters/qoder/bin/foundation-legal/skill-family-harness-node/native-NOTICE +2 -0
- package/adapters/qoder/bin/foundation-resource-binding.json +1 -0
- package/adapters/qoder/bin/kernel-protocol.json +60 -0
- package/adapters/qoder/bin/license-texts/Apache-2.0.txt +201 -0
- package/adapters/qoder/bin/license-texts/MIT.txt +21 -0
- package/adapters/qoder/bin/prebuild-manifest.json +83 -0
- package/adapters/qoder/bin/prebuilds/darwin-arm64/bound_read.darwin-arm64.node +0 -0
- package/adapters/qoder/bin/prebuilds/darwin-x64/bound_read.darwin-x64.node +0 -0
- package/adapters/qoder/bin/prebuilds/linux-arm64-gnu/bound_read.linux-arm64-gnu.node +0 -0
- package/adapters/qoder/bin/prebuilds/linux-x64-gnu/bound_read.linux-x64-gnu.node +0 -0
- package/adapters/qoder/bin/registry.json +347 -0
- package/adapters/qoder/bin/release-skill-local-finish.mjs +4 -0
- package/adapters/qoder/bin/release-skill.bundle.mjs +151806 -0
- package/adapters/qoder/bin/release-skill.mjs +54 -0
- package/adapters/qoder/bin/rules.json +104 -0
- package/adapters/qoder/bin/schemas/consumer-contract-vector.schema.json +149 -0
- package/adapters/qoder/data/hosts/claude/host-descriptor.json +45 -0
- package/adapters/qoder/data/hosts/codebuddy/host-descriptor.json +26 -0
- package/adapters/qoder/data/hosts/codex/host-descriptor.json +45 -0
- package/adapters/qoder/data/hosts/cursor/host-descriptor.json +34 -0
- package/adapters/qoder/data/hosts/deepseek-harness/host-descriptor.json +23 -0
- package/adapters/qoder/data/hosts/kimi-code/host-descriptor.json +36 -0
- package/adapters/qoder/data/hosts/qoder/host-descriptor.json +26 -0
- package/adapters/qoder/data/hosts/registry.json +14 -0
- package/adapters/qoder/data/hosts/workbuddy/host-descriptor.json +34 -0
- package/adapters/qoder/data/licensing/registry.json +211 -0
- package/adapters/qoder/data/licensing/schema.json +207 -0
- package/adapters/qoder/native/safe-write/binding.gyp +41 -0
- package/adapters/qoder/native/safe-write/prebuilds/darwin-arm64/safe_write.node +0 -0
- package/adapters/qoder/native/safe-write/prebuilds.json +24 -0
- package/adapters/qoder/native/safe-write/src/safe_write.cc +2032 -0
- package/adapters/qoder/schemas/.render-manifest.json +41 -0
- package/adapters/qoder/schemas/approval-record.schema.json +115 -0
- package/adapters/qoder/schemas/artifact-lock.schema.json +111 -0
- package/adapters/qoder/schemas/artifact-plan.schema.json +52 -0
- package/adapters/qoder/schemas/artifact-policy.schema.json +76 -0
- package/adapters/qoder/schemas/evidence-event-v2.schema.json +164 -0
- package/adapters/qoder/schemas/evidence-event.schema.json +89 -0
- package/adapters/qoder/schemas/postpublish-approval-record.schema.json +47 -0
- package/adapters/qoder/schemas/release-plan.schema.json +2226 -0
- package/adapters/qoder/schemas/release-project.schema.json +1815 -0
- package/adapters/qoder/schemas/release-run.schema.json +777 -0
- package/adapters/qoder/skills/release-assess/SKILL.md +60 -0
- package/adapters/qoder/skills/release-config/SKILL.md +150 -0
- package/adapters/qoder/skills/release-docs/SKILL.md +119 -0
- package/adapters/qoder/skills/release-finish/SKILL.md +154 -0
- package/adapters/qoder/skills/release-help/SKILL.md +154 -0
- package/adapters/qoder/skills/release-marketplace/SKILL.md +156 -0
- package/adapters/qoder/skills/release-prepare/SKILL.md +135 -0
- package/adapters/qoder/skills/release-publish/SKILL.md +91 -0
- package/adapters/qoder/skills/release-reconcile/SKILL.md +80 -0
- package/adapters/qoder/skills/release-setup/SKILL.md +131 -0
- package/adapters/qoder/skills/release-verify/SKILL.md +109 -0
- package/adapters/qoder/src/schemas/adapter-build-manifest.schema.json +41 -0
- package/adapters/qoder/src/schemas/adapter-peer-verification-request.schema.json +54 -0
- package/adapters/qoder/src/schemas/adapter-peer-verification-result.schema.json +54 -0
- package/adapters/qoder/src/schemas/adapter-source.schema.json +47 -0
- package/adapters/qoder/src/schemas/audit-baseline-pin.schema.json +163 -0
- package/adapters/qoder/src/schemas/declared-read-surface-result.schema.json +61 -0
- package/adapters/qoder/src/schemas/engineering-baseline.schema.json +77 -0
- package/adapters/qoder/src/schemas/executable-identity-observation.schema.json +162 -0
- package/adapters/qoder/src/schemas/filesystem-root-binding.schema.json +14 -0
- package/adapters/qoder/src/schemas/filesystem-tree-observation.schema.json +71 -0
- package/adapters/qoder/src/schemas/fixed-set-publication-manifest.schema.json +108 -0
- package/adapters/qoder/src/schemas/fixed-set-publication-receipt.schema.json +148 -0
- package/adapters/qoder/src/schemas/host-capability-fact.schema.json +31 -0
- package/adapters/qoder/src/schemas/host-descriptor.schema.json +144 -0
- package/adapters/qoder/src/schemas/host-operation-plan.schema.json +57 -0
- package/adapters/qoder/src/schemas/host-operation-receipt.schema.json +81 -0
- package/adapters/qoder/src/schemas/host-probe-result.schema.json +30 -0
- package/adapters/qoder/src/schemas/host-registry.schema.json +18 -0
- package/adapters/qoder/src/schemas/host-verification-request.schema.json +67 -0
- package/adapters/qoder/src/schemas/host-verification-result.schema.json +149 -0
- package/adapters/qoder/src/schemas/managed-file-lock.schema.json +77 -0
- package/adapters/qoder/src/schemas/migration-manifest.schema.json +412 -0
- package/adapters/qoder/src/schemas/observation-scope.schema.json +91 -0
- package/adapters/qoder/src/schemas/operation-request.schema.json +58 -0
- package/adapters/qoder/src/schemas/operation-result.schema.json +130 -0
- package/adapters/qoder/src/schemas/platform-difference-registry.schema.json +110 -0
- package/adapters/qoder/src/schemas/plugin-verification-request.schema.json +499 -0
- package/adapters/qoder/src/schemas/plugin-verification-result.schema.json +1217 -0
- package/adapters/qoder/src/schemas/profile-adoption-declaration.schema.json +111 -0
- package/adapters/qoder/src/schemas/profile-descriptor.schema.json +99 -0
- package/adapters/qoder/src/schemas/project-manifest.schema.json +67 -0
- package/adapters/qoder/src/schemas/project-profile.schema.json +25 -0
- package/adapters/qoder/src/schemas/public-boundary-declaration.schema.json +73 -0
- package/adapters/qoder/src/schemas/report-binding.schema.json +42 -0
- package/adapters/qoder/src/schemas/report-model.schema.json +308 -0
- package/adapters/qoder/src/schemas/skill-family-directory-verification-request.schema.json +100 -0
- package/adapters/qoder/src/schemas/skill-family-directory-verification-result.schema.json +193 -0
- package/adapters/qoder/src/schemas/source-authority-receipt.schema.json +31 -0
- package/adapters/qoder/src/schemas/state-event-envelope.schema.json +38 -0
- package/adapters/qoder/src/schemas/state-snapshot-metadata.schema.json +25 -0
- package/adapters/qoder/src/schemas/structured-scan-policy.schema.json +97 -0
- package/adapters/qoder/src/schemas/surface-scan-policy.schema.json +42 -0
- package/adapters/qoder/src/schemas/timeout-policy.schema.json +24 -0
- package/adapters/qoder/src/schemas/token-estimate-record.schema.json +75 -0
- package/adapters/qoder/src/schemas/token-estimate-result.schema.json +43 -0
- package/adapters/qoder/src/schemas/watchdog-termination-envelope.schema.json +156 -0
- package/adapters/workbuddy/.codebuddy-plugin/plugin.json +1 -1
- package/adapters/workbuddy/bin/consumer-contract-vectors.json +7 -7
- package/adapters/workbuddy/bin/error-codes.json +1 -1
- package/adapters/workbuddy/bin/foundation-resource-binding.json +1 -1
- package/adapters/workbuddy/bin/prebuild-manifest.json +8 -4
- package/adapters/workbuddy/bin/prebuilds/darwin-arm64/bound_read.darwin-arm64.node +0 -0
- package/adapters/workbuddy/bin/prebuilds/darwin-x64/bound_read.darwin-x64.node +0 -0
- package/adapters/workbuddy/bin/prebuilds/linux-arm64-gnu/bound_read.linux-arm64-gnu.node +0 -0
- package/adapters/workbuddy/bin/prebuilds/linux-x64-gnu/bound_read.linux-x64-gnu.node +0 -0
- package/adapters/workbuddy/bin/registry.json +1 -1
- package/adapters/workbuddy/bin/release-skill.bundle.mjs +4950 -1819
- package/adapters/workbuddy/bin/rules.json +1 -1
- package/adapters/workbuddy/data/hosts/cursor/host-descriptor.json +34 -0
- package/adapters/workbuddy/data/hosts/registry.json +1 -0
- package/adapters/workbuddy/schemas/release-plan.schema.json +255 -25
- package/adapters/workbuddy/schemas/release-project.schema.json +228 -26
- package/adapters/workbuddy/skills/release-finish/SKILL.md +29 -15
- package/adapters/workbuddy/skills/release-help/SKILL.md +40 -39
- package/adapters/workbuddy/skills/release-verify/SKILL.md +2 -2
- package/adapters/workbuddy/src/schemas/host-descriptor.schema.json +9 -2
- package/bin/consumer-contract-vectors.json +7 -7
- package/bin/error-codes.json +1 -1
- package/bin/foundation-resource-binding.json +1 -1
- package/bin/prebuild-manifest.json +8 -4
- package/bin/prebuilds/darwin-arm64/bound_read.darwin-arm64.node +0 -0
- package/bin/prebuilds/darwin-x64/bound_read.darwin-x64.node +0 -0
- package/bin/prebuilds/linux-arm64-gnu/bound_read.linux-arm64-gnu.node +0 -0
- package/bin/prebuilds/linux-x64-gnu/bound_read.linux-x64-gnu.node +0 -0
- package/bin/registry.json +1 -1
- package/bin/release-skill-cli.mjs +148 -6
- package/bin/release-skill.bundle.mjs +4950 -1819
- package/bin/rules.json +1 -1
- package/data/hosts/cursor/host-descriptor.json +34 -0
- package/data/hosts/registry.json +1 -0
- package/package.json +9 -5
- package/platform-manifest.json +140 -8
- package/references/02-project-config.md +9 -2
- package/schemas/release-plan.schema.json +255 -25
- package/schemas/release-project.schema.json +228 -26
- package/scripts/sync-public-files.mjs +3 -22
- package/skills/release-finish/SKILL.md +29 -15
- package/skills/release-help/SKILL.md +40 -39
- package/skills/release-verify/SKILL.md +2 -2
- package/skills-src/release-finish/SKILL.md +29 -15
- package/skills-src/release-help/SKILL.md +40 -39
- package/skills-src/release-verify/SKILL.md +2 -2
- package/src/adapters/contract.mjs +1 -0
- package/src/adapters/plugin-marketplace.mjs +201 -9
- package/src/commands/post-release-local.mjs +618 -53
- package/src/commands/prepare.mjs +74 -9
- package/src/commands/publish.mjs +4 -1
- package/src/commands/ship.mjs +2 -0
- package/src/commands/verify-records.mjs +467 -0
- package/src/commands/verify.mjs +73 -0
- package/src/core/checkpoints.mjs +5 -2
- package/src/core/config.mjs +1 -1
- package/src/core/foundation-host-verification.mjs +168 -0
- package/src/core/plan.mjs +19 -1
- package/src/core/postpublish.mjs +9 -1
- package/src/core/run-retention.mjs +1 -1
- package/src/core/run.mjs +1 -1
- package/src/core/surface-host-bindings.mjs +1 -0
- package/src/core/verification-gates.mjs +1 -1
- package/src/platforms/registry.mjs +225 -16
- package/src/producers/build-adapters.mjs +43 -25
- package/src/producers/foundation-resource-projection.mjs +3 -3
- 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,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
3
|
"kind": "skill-family.contracts.consumer-contract-vectors",
|
|
4
|
-
"foundationVersion": "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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
100
|
+
"foundationVersion": "0.21.0",
|
|
101
101
|
"contractId": "skill-family-harness-node:writeFileAtomic",
|
|
102
102
|
"caseClass": "positive",
|
|
103
103
|
"strategy": "official-fake",
|