sneakoscope 4.0.13 → 4.0.15

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 (898) hide show
  1. package/README.md +19 -2
  2. package/config/codex-releases/rust-v0.142.0.json +39 -0
  3. package/crates/sks-core/Cargo.lock +1 -1
  4. package/crates/sks-core/Cargo.toml +1 -1
  5. package/crates/sks-core/src/main.rs +1 -1
  6. package/dist/bin/sks.js +1 -1
  7. package/dist/cli/global-mode-router.js +2 -1
  8. package/dist/commands/codex.js +15 -1
  9. package/dist/core/codex-adapter.js +7 -12
  10. package/dist/core/codex-compat/codex-compat-report.js +11 -1
  11. package/dist/core/codex-compat/codex-release-manifest.js +66 -0
  12. package/dist/core/codex-compat/codex-version-policy.js +5 -4
  13. package/dist/core/codex-compat/codex-version.js +5 -2
  14. package/dist/core/codex-control/codex-0142-capability.js +243 -0
  15. package/dist/core/codex-control/codex-app-server-v2-client.js +211 -0
  16. package/dist/core/codex-control/codex-sdk-adapter.js +37 -7
  17. package/dist/core/codex-control/codex-sdk-capability.js +2 -1
  18. package/dist/core/codex-control/codex-sdk-config-policy.js +16 -0
  19. package/dist/core/codex-control/codex-sdk-env-policy.js +29 -5
  20. package/dist/core/codex-control/codex-thread-registry.js +110 -19
  21. package/dist/core/codex-runtime/resolve-codex-runtime.js +102 -0
  22. package/dist/core/commands/mad-sks-command.js +3 -0
  23. package/dist/core/fsx.js +1 -1
  24. package/dist/core/providers/glm/bench/glm-bench-model-lock-proof.js +32 -3
  25. package/dist/core/providers/glm/bench/glm-benchmark-runner.js +29 -5
  26. package/dist/core/providers/glm/bench/glm-benchmark-types.js +1 -1
  27. package/dist/core/providers/glm/naruto/glm-naruto-critical-path.js +51 -0
  28. package/dist/core/providers/glm/naruto/glm-naruto-final-seal.js +9 -2
  29. package/dist/core/providers/glm/naruto/glm-naruto-orchestrator.js +101 -15
  30. package/dist/core/providers/glm/naruto/glm-naruto-parallelism-summary.js +55 -0
  31. package/dist/core/providers/glm/naruto/glm-naruto-requirement-coverage.js +92 -0
  32. package/dist/core/providers/glm/naruto/glm-naruto-requirement-ledger.js +42 -0
  33. package/dist/core/providers/glm/naruto/glm-naruto-stage-scheduler.js +85 -0
  34. package/dist/core/providers/glm/naruto/glm-naruto-task-size-classifier.js +12 -0
  35. package/dist/core/providers/glm/naruto/glm-naruto-trace.js +4 -0
  36. package/dist/core/providers/glm/naruto/glm-naruto-verifier-output.js +5 -0
  37. package/dist/core/providers/glm/naruto/glm-naruto-worker-pool.js +130 -44
  38. package/dist/core/providers/glm/naruto/glm-naruto-worker-runtime.js +6 -2
  39. package/dist/core/release/gate-manifest.js +24 -1
  40. package/dist/core/release/gate-pack-manifest.js +6 -6
  41. package/dist/core/release/release-gate-affected-selector.js +24 -0
  42. package/dist/core/routes/model-mode-router.js +44 -0
  43. package/dist/core/routes.js +1 -1
  44. package/dist/core/version.js +1 -1
  45. package/dist/scripts/agent-ast-aware-work-graph-check.js +25 -0
  46. package/dist/scripts/agent-backfill-replenishment-check.js +13 -0
  47. package/dist/scripts/agent-backfill-route-blackbox.js +5 -0
  48. package/dist/scripts/agent-background-terminals-check.js +16 -0
  49. package/dist/scripts/agent-cleanup-command-ux-check.js +12 -0
  50. package/dist/scripts/agent-cleanup-executor-check.js +53 -0
  51. package/dist/scripts/agent-cleanup-executor-v2-check.js +39 -0
  52. package/dist/scripts/agent-cli-options-to-task-graph-check.js +5 -0
  53. package/dist/scripts/agent-codex-app-cockpit-check.js +91 -0
  54. package/dist/scripts/agent-codex-child-overlap-check.js +21 -0
  55. package/dist/scripts/agent-dynamic-cockpit-check.js +10 -0
  56. package/dist/scripts/agent-dynamic-pool-check.js +13 -0
  57. package/dist/scripts/agent-dynamic-pool-route-blackbox.js +5 -0
  58. package/dist/scripts/agent-fast-mode-default-check.js +79 -0
  59. package/dist/scripts/agent-fast-mode-worker-propagation-check.js +7 -0
  60. package/dist/scripts/agent-follow-up-work-schema-check.js +80 -0
  61. package/dist/scripts/agent-goal-mode-propagation-check.js +9 -0
  62. package/dist/scripts/agent-intelligent-work-graph-check.js +29 -0
  63. package/dist/scripts/agent-janitor-check.js +79 -0
  64. package/dist/scripts/agent-main-no-scout-check.js +11 -0
  65. package/dist/scripts/agent-message-bus-reader-check.js +19 -0
  66. package/dist/scripts/agent-model-authored-patch-envelope-check.js +15 -0
  67. package/dist/scripts/agent-multi-project-isolation-check.js +86 -0
  68. package/dist/scripts/agent-native-cli-session-proof-check.js +7 -0
  69. package/dist/scripts/agent-native-cli-session-swarm-10-check.js +7 -0
  70. package/dist/scripts/agent-native-cli-session-swarm-20-check.js +7 -0
  71. package/dist/scripts/agent-native-cli-session-swarm-check.js +7 -0
  72. package/dist/scripts/agent-no-subagent-scaling-check.js +7 -0
  73. package/dist/scripts/agent-official-subagent-helper-policy-check.js +71 -0
  74. package/dist/scripts/agent-parallel-write-blackbox.js +56 -0
  75. package/dist/scripts/agent-parallel-write-kernel-check.js +103 -0
  76. package/dist/scripts/agent-patch-conflict-rebase-check.js +198 -0
  77. package/dist/scripts/agent-patch-envelope-extraction-check.js +17 -0
  78. package/dist/scripts/agent-patch-proof-check.js +41 -0
  79. package/dist/scripts/agent-patch-proof-runtime-check.js +63 -0
  80. package/dist/scripts/agent-patch-queue-runtime-check.js +36 -0
  81. package/dist/scripts/agent-patch-rollback-check.js +38 -0
  82. package/dist/scripts/agent-patch-rollback-dag-check.js +14 -0
  83. package/dist/scripts/agent-patch-swarm-route-blackbox.js +10 -0
  84. package/dist/scripts/agent-patch-swarm-runtime-check.js +10 -0
  85. package/dist/scripts/agent-patch-swarm-runtime-truth-check.js +76 -0
  86. package/dist/scripts/agent-patch-transaction-journal-check.js +57 -0
  87. package/dist/scripts/agent-patch-verification-dag-check.js +14 -0
  88. package/dist/scripts/agent-proof-contract-reconciled-check.js +5 -0
  89. package/dist/scripts/agent-real-codex-dynamic-smoke-check.js +166 -0
  90. package/dist/scripts/agent-real-codex-dynamic-smoke-v2-check.js +14 -0
  91. package/dist/scripts/agent-real-codex-in-zellij-worker-pane-check.js +227 -0
  92. package/dist/scripts/agent-real-codex-parallel-workers-10-check.js +5 -0
  93. package/dist/scripts/agent-real-codex-parallel-workers-20-check.js +5 -0
  94. package/dist/scripts/agent-real-codex-parallel-workers-5-check.js +5 -0
  95. package/dist/scripts/agent-real-codex-parallel-workers-check.js +5 -0
  96. package/dist/scripts/agent-role-config-repair-check.js +33 -0
  97. package/dist/scripts/agent-rollback-command-check.js +86 -0
  98. package/dist/scripts/agent-route-truth-backfill-check.js +5 -0
  99. package/dist/scripts/agent-scheduler-proof-check.js +13 -0
  100. package/dist/scripts/agent-scheduler-proof-hardening-check.js +22 -0
  101. package/dist/scripts/agent-session-generation-check.js +21 -0
  102. package/dist/scripts/agent-slot-pane-binding-proof-check.js +64 -0
  103. package/dist/scripts/agent-slot-telemetry-wiring-check.js +11 -0
  104. package/dist/scripts/agent-source-intelligence-propagation-check.js +9 -0
  105. package/dist/scripts/agent-strategy-to-lease-wiring-check.js +32 -0
  106. package/dist/scripts/agent-strategy-to-patch-strict-check.js +54 -0
  107. package/dist/scripts/agent-task-graph-expansion-check.js +14 -0
  108. package/dist/scripts/agent-terminal-generations-check.js +23 -0
  109. package/dist/scripts/agent-visual-consistency-check.js +9 -0
  110. package/dist/scripts/agent-wiki-context-proof-check.js +62 -0
  111. package/dist/scripts/agent-worker-backend-router-check.js +63 -0
  112. package/dist/scripts/agent-worker-scout-limited-check.js +17 -0
  113. package/dist/scripts/agent-zellij-dynamic-backfill-panes-check.js +34 -0
  114. package/dist/scripts/agent-zellij-runtime-check.js +85 -0
  115. package/dist/scripts/all-feature-deep-completion-check.js +31 -0
  116. package/dist/scripts/appshots-capability-check.js +18 -0
  117. package/dist/scripts/appshots-evidence-check.js +48 -0
  118. package/dist/scripts/appshots-operator-policy-check.js +25 -0
  119. package/dist/scripts/appshots-privacy-safety-check.js +48 -0
  120. package/dist/scripts/appshots-source-intelligence-check.js +53 -0
  121. package/dist/scripts/appshots-thread-attachment-discovery-check.js +87 -0
  122. package/dist/scripts/appshots-triwiki-voxel-check.js +46 -0
  123. package/dist/scripts/architecture-guard-check.js +55 -0
  124. package/dist/scripts/brand-neutrality-generated-artifacts-check.js +161 -0
  125. package/dist/scripts/brand-neutrality-rename-map-check.js +4 -0
  126. package/dist/scripts/brand-neutrality-zero-leakage-blackbox.js +4 -0
  127. package/dist/scripts/brand-neutrality-zero-leakage-check.js +4 -0
  128. package/dist/scripts/build-once-runner-blackbox.js +34 -0
  129. package/dist/scripts/build-once-runner-check.js +8 -0
  130. package/dist/scripts/certificate-sla-check.js +9 -0
  131. package/dist/scripts/changelog-check.js +47 -0
  132. package/dist/scripts/changelog-loop-productionization-check.js +3 -0
  133. package/dist/scripts/cli-check-tiers-check.js +10 -0
  134. package/dist/scripts/cli-five-minute-task-check.js +6 -0
  135. package/dist/scripts/codex-0-133-official-compat-report.js +53 -0
  136. package/dist/scripts/codex-0-134-official-compat-report.js +110 -0
  137. package/dist/scripts/codex-0-134-runner-truth-check.js +66 -0
  138. package/dist/scripts/codex-0-135-compat-check.js +57 -0
  139. package/dist/scripts/codex-0-136-compat-check.js +30 -0
  140. package/dist/scripts/codex-0-137-compat-check.js +27 -0
  141. package/dist/scripts/codex-0138-capability-artifact-check.js +15 -0
  142. package/dist/scripts/codex-0138-capability-check.js +11 -0
  143. package/dist/scripts/codex-0138-doctor-check.js +15 -0
  144. package/dist/scripts/codex-0138-feature-probes-check.js +12 -0
  145. package/dist/scripts/codex-0139-capability-check.js +26 -0
  146. package/dist/scripts/codex-0139-code-mode-web-search-check.js +25 -0
  147. package/dist/scripts/codex-0139-code-mode-web-search-real-check.js +10 -0
  148. package/dist/scripts/codex-0139-doctor-env-real-check.js +10 -0
  149. package/dist/scripts/codex-0139-doctor-env-redaction-check.js +18 -0
  150. package/dist/scripts/codex-0139-feature-probes-check.js +30 -0
  151. package/dist/scripts/codex-0139-image-path-real-check.js +10 -0
  152. package/dist/scripts/codex-0139-interrupt-agent-check.js +14 -0
  153. package/dist/scripts/codex-0139-interrupt-agent-real-check.js +8 -0
  154. package/dist/scripts/codex-0139-marketplace-source-check.js +13 -0
  155. package/dist/scripts/codex-0139-plugin-cache-real-check.js +10 -0
  156. package/dist/scripts/codex-0139-plugin-marketplace-real-check.js +10 -0
  157. package/dist/scripts/codex-0139-real-probe-summary-check.js +14 -0
  158. package/dist/scripts/codex-0139-real-probes-check.js +37 -0
  159. package/dist/scripts/codex-0139-rich-tool-schema-check.js +12 -0
  160. package/dist/scripts/codex-0139-rich-tool-schema-real-check.js +10 -0
  161. package/dist/scripts/codex-0139-sandbox-profile-alias-check.js +13 -0
  162. package/dist/scripts/codex-0139-sandbox-profile-alias-real-check.js +10 -0
  163. package/dist/scripts/codex-0139-sandbox-proxy-real-check.js +10 -0
  164. package/dist/scripts/codex-0140-bedrock-managed-auth-check.js +4 -0
  165. package/dist/scripts/codex-0140-capability-check.js +15 -0
  166. package/dist/scripts/codex-0140-deep-probes-check.js +40 -0
  167. package/dist/scripts/codex-0140-feature-probes-check.js +24 -0
  168. package/dist/scripts/codex-0140-goal-attachment-preservation-check.js +8 -0
  169. package/dist/scripts/codex-0140-goal-attachment-roundtrip-check.js +9 -0
  170. package/dist/scripts/codex-0140-import-check.js +4 -0
  171. package/dist/scripts/codex-0140-integration-blackbox.js +13 -0
  172. package/dist/scripts/codex-0140-large-repo-performance-check.js +4 -0
  173. package/dist/scripts/codex-0140-mcp-reliability-check.js +4 -0
  174. package/dist/scripts/codex-0140-non-tty-interrupt-check.js +4 -0
  175. package/dist/scripts/codex-0140-real-probes-check.js +9 -0
  176. package/dist/scripts/codex-0140-session-delete-check.js +4 -0
  177. package/dist/scripts/codex-0140-sqlite-recovery-check.js +4 -0
  178. package/dist/scripts/codex-0140-unified-mentions-check.js +4 -0
  179. package/dist/scripts/codex-0140-usage-check.js +4 -0
  180. package/dist/scripts/codex-0140-usage-real-parser-check.js +17 -0
  181. package/dist/scripts/codex-0141-capability-check.js +17 -0
  182. package/dist/scripts/codex-0142-app-server-v2-check.js +46 -0
  183. package/dist/scripts/codex-0142-binary-identity-check.js +17 -0
  184. package/dist/scripts/codex-0142-capability-check.js +21 -0
  185. package/dist/scripts/codex-0142-manifest-check.js +21 -0
  186. package/dist/scripts/codex-0142-policy-check.js +32 -0
  187. package/dist/scripts/codex-0142-thread-store-check.js +54 -0
  188. package/dist/scripts/codex-account-usage-autodiscovery-check.js +22 -0
  189. package/dist/scripts/codex-account-usage-check.js +9 -0
  190. package/dist/scripts/codex-agent-role-rich-content-check.js +4 -0
  191. package/dist/scripts/codex-agent-role-sync-check.js +4 -0
  192. package/dist/scripts/codex-agent-type-blackbox.js +4 -0
  193. package/dist/scripts/codex-agent-type-probe-check.js +4 -0
  194. package/dist/scripts/codex-agent-type-routing-check.js +4 -0
  195. package/dist/scripts/codex-app-execution-profile-check.js +4 -0
  196. package/dist/scripts/codex-app-fast-ui-preservation-check.js +32 -0
  197. package/dist/scripts/codex-app-handoff-check.js +25 -0
  198. package/dist/scripts/codex-app-handoff-launch-check.js +25 -0
  199. package/dist/scripts/codex-app-harness-blackbox.js +4 -0
  200. package/dist/scripts/codex-app-harness-matrix-check.js +4 -0
  201. package/dist/scripts/codex-app-launcher-check.js +17 -0
  202. package/dist/scripts/codex-app-provider-badge-check.js +37 -0
  203. package/dist/scripts/codex-app-skill-agent-blackbox.js +4 -0
  204. package/dist/scripts/codex-app-type-safety-check.js +4 -0
  205. package/dist/scripts/codex-app-ui-clobber-guard-check.js +22 -0
  206. package/dist/scripts/codex-app-ui-preservation-check.js +96 -0
  207. package/dist/scripts/codex-control-all-pipelines-check.js +37 -0
  208. package/dist/scripts/codex-control-capability-check.js +10 -0
  209. package/dist/scripts/codex-control-empty-result-retry-check.js +43 -0
  210. package/dist/scripts/codex-control-event-stream-ledger-check.js +10 -0
  211. package/dist/scripts/codex-control-keepalive-no-cot-leak-check.js +14 -0
  212. package/dist/scripts/codex-control-no-legacy-fallback-check.js +31 -0
  213. package/dist/scripts/codex-control-side-effect-scope-check.js +26 -0
  214. package/dist/scripts/codex-control-stream-idle-watchdog-check.js +18 -0
  215. package/dist/scripts/codex-control-structured-output-check.js +11 -0
  216. package/dist/scripts/codex-control-thread-registry-check.js +11 -0
  217. package/dist/scripts/codex-control-tool-call-sequence-repair-check.js +14 -0
  218. package/dist/scripts/codex-effort-auto-discovery-check.js +17 -0
  219. package/dist/scripts/codex-effort-order-check.js +9 -0
  220. package/dist/scripts/codex-environment-scoped-approvals-check.js +10 -0
  221. package/dist/scripts/codex-exec-output-schema-actual-syntax-check.js +33 -0
  222. package/dist/scripts/codex-fast-mode-profile-propagation-check.js +14 -0
  223. package/dist/scripts/codex-history-search-check.js +19 -0
  224. package/dist/scripts/codex-hook-approval-blackbox.js +4 -0
  225. package/dist/scripts/codex-hook-approval-matrix-check.js +4 -0
  226. package/dist/scripts/codex-hook-approval-probe-check.js +4 -0
  227. package/dist/scripts/codex-hook-lifecycle-check.js +4 -0
  228. package/dist/scripts/codex-hook-semantic-check.js +15 -0
  229. package/dist/scripts/codex-hook-strict-subset-check.js +61 -0
  230. package/dist/scripts/codex-init-deep-check.js +4 -0
  231. package/dist/scripts/codex-init-deep-directory-local-blackbox.js +4 -0
  232. package/dist/scripts/codex-init-deep-managed-agents-check.js +4 -0
  233. package/dist/scripts/codex-lb-config-toml-safety-check.js +85 -0
  234. package/dist/scripts/codex-lb-persistence-truth-check.js +96 -0
  235. package/dist/scripts/codex-lb-setup-fixture-check.js +91 -0
  236. package/dist/scripts/codex-lb-setup-truthfulness-check.js +84 -0
  237. package/dist/scripts/codex-legacy-profile-consumers-removed-check.js +24 -0
  238. package/dist/scripts/codex-managed-proxy-env-check.js +17 -0
  239. package/dist/scripts/codex-model-metadata-check.js +10 -0
  240. package/dist/scripts/codex-native-agent-role-content-check.js +27 -0
  241. package/dist/scripts/codex-native-broker-read-only-check.js +44 -0
  242. package/dist/scripts/codex-native-feature-broker-blackbox.js +4 -0
  243. package/dist/scripts/codex-native-feature-broker-check.js +4 -0
  244. package/dist/scripts/codex-native-harness-compat-check.js +4 -0
  245. package/dist/scripts/codex-native-hook-lifecycle-proof-check.js +4 -0
  246. package/dist/scripts/codex-native-interop-policy-check.js +4 -0
  247. package/dist/scripts/codex-native-invocation-defaults-check.js +4 -0
  248. package/dist/scripts/codex-native-invocation-router-check.js +4 -0
  249. package/dist/scripts/codex-native-pattern-analysis-blackbox.js +4 -0
  250. package/dist/scripts/codex-native-pattern-analysis-check.js +4 -0
  251. package/dist/scripts/codex-native-read-repair-split-blackbox.js +55 -0
  252. package/dist/scripts/codex-native-reference-cache-blackbox.js +41 -0
  253. package/dist/scripts/codex-native-reference-cache-check.js +23 -0
  254. package/dist/scripts/codex-native-reference-evidence-check.js +4 -0
  255. package/dist/scripts/codex-native-repair-transaction-check.js +45 -0
  256. package/dist/scripts/codex-native-route-map-check.js +4 -0
  257. package/dist/scripts/codex-native-skill-content-check.js +24 -0
  258. package/dist/scripts/codex-output-schema-fixture-check.js +25 -0
  259. package/dist/scripts/codex-permission-profiles-check.js +36 -0
  260. package/dist/scripts/codex-plugin-app-template-policy-check.js +11 -0
  261. package/dist/scripts/codex-plugin-cache-check.js +15 -0
  262. package/dist/scripts/codex-plugin-diff-check.js +16 -0
  263. package/dist/scripts/codex-plugin-inventory-check.js +15 -0
  264. package/dist/scripts/codex-plugin-json-check.js +10 -0
  265. package/dist/scripts/codex-plugin-list-json-check.js +8 -0
  266. package/dist/scripts/codex-plugin-parallel-detail-fetch-check.js +12 -0
  267. package/dist/scripts/codex-profile-primary-check.js +13 -0
  268. package/dist/scripts/codex-project-config-policy-splitter-check.js +51 -0
  269. package/dist/scripts/codex-resume-cwd-truth-check.js +17 -0
  270. package/dist/scripts/codex-sdk-all-pipelines-check.js +33 -0
  271. package/dist/scripts/codex-sdk-backend-router-check.js +65 -0
  272. package/dist/scripts/codex-sdk-capability-check.js +11 -0
  273. package/dist/scripts/codex-sdk-core-skill-pipeline-check.js +9 -0
  274. package/dist/scripts/codex-sdk-dfix-pipeline-check.js +9 -0
  275. package/dist/scripts/codex-sdk-event-stream-ledger-check.js +9 -0
  276. package/dist/scripts/codex-sdk-no-legacy-fallback-check.js +33 -0
  277. package/dist/scripts/codex-sdk-qa-pipeline-check.js +8 -0
  278. package/dist/scripts/codex-sdk-real-smoke-check.js +39 -0
  279. package/dist/scripts/codex-sdk-release-review-pipeline-check.js +13 -0
  280. package/dist/scripts/codex-sdk-research-pipeline-check.js +47 -0
  281. package/dist/scripts/codex-sdk-sandbox-policy-check.js +21 -0
  282. package/dist/scripts/codex-sdk-structured-output-check.js +10 -0
  283. package/dist/scripts/codex-sdk-team-naruto-agent-pipeline-check.js +12 -0
  284. package/dist/scripts/codex-sdk-thread-registry-check.js +11 -0
  285. package/dist/scripts/codex-sdk-ux-ppt-review-pipeline-check.js +9 -0
  286. package/dist/scripts/codex-sdk-version-compat-check.js +10 -0
  287. package/dist/scripts/codex-sdk-zellij-pane-binding-check.js +13 -0
  288. package/dist/scripts/codex-skill-rich-content-check.js +4 -0
  289. package/dist/scripts/codex-skill-sync-check.js +4 -0
  290. package/dist/scripts/codex-thread-runtime-choice-check.js +10 -0
  291. package/dist/scripts/codex-web-adapter-check.js +12 -0
  292. package/dist/scripts/computer-use-live-evidence-check.js +55 -0
  293. package/dist/scripts/computer-use-live-optional-check.js +32 -0
  294. package/dist/scripts/computer-use-policy-check.js +69 -0
  295. package/dist/scripts/computer-use-visual-route-fixture-check.js +37 -0
  296. package/dist/scripts/config-managed-merge-callsite-coverage-check.js +200 -0
  297. package/dist/scripts/context7-evidence-dedupe-check.js +54 -0
  298. package/dist/scripts/core-skill-card-schema-check.js +61 -0
  299. package/dist/scripts/core-skill-deployment-snapshot-check.js +54 -0
  300. package/dist/scripts/core-skill-heldout-validation-check.js +49 -0
  301. package/dist/scripts/core-skill-immutable-sync-check.js +18 -0
  302. package/dist/scripts/core-skill-integrity-blackbox.js +32 -0
  303. package/dist/scripts/core-skill-manifest-check.js +15 -0
  304. package/dist/scripts/core-skill-no-drift-check.js +24 -0
  305. package/dist/scripts/core-skill-no-inference-optimizer-check.js +75 -0
  306. package/dist/scripts/core-skill-patch-check.js +79 -0
  307. package/dist/scripts/core-skill-promotion-side-effect-ledger-check.js +64 -0
  308. package/dist/scripts/core-skill-rollout-scoring-check.js +72 -0
  309. package/dist/scripts/core-skill-route-runtime-integration-check.js +49 -0
  310. package/dist/scripts/core-skill-trainer-check.js +116 -0
  311. package/dist/scripts/dfix-fast-blackbox-check.js +37 -0
  312. package/dist/scripts/dfix-fast-kernel-check.js +26 -0
  313. package/dist/scripts/dfix-fixture-check.js +6 -0
  314. package/dist/scripts/dfix-parallel-write-blackbox.js +48 -0
  315. package/dist/scripts/dfix-patch-handoff-check.js +13 -0
  316. package/dist/scripts/dfix-patch-swarm-route-blackbox.js +10 -0
  317. package/dist/scripts/dfix-performance-check.js +15 -0
  318. package/dist/scripts/dfix-verification-check.js +9 -0
  319. package/dist/scripts/dfix-verification-recommendation-check.js +15 -0
  320. package/dist/scripts/docs-brand-neutrality-check.js +4 -0
  321. package/dist/scripts/docs-codex-0139-wording-check.js +21 -0
  322. package/dist/scripts/docs-loop-productionization-check.js +3 -0
  323. package/dist/scripts/docs-loop-runtime-check.js +3 -0
  324. package/dist/scripts/docs-truthfulness-check.js +61 -0
  325. package/dist/scripts/doctor-codex-0138-fix-check.js +10 -0
  326. package/dist/scripts/doctor-codex-0139-real-probes-check.js +25 -0
  327. package/dist/scripts/doctor-codex-app-harness-check.js +4 -0
  328. package/dist/scripts/doctor-codex-doctor-parity-check.js +17 -0
  329. package/dist/scripts/doctor-codex-native-readiness-ux-check.js +29 -0
  330. package/dist/scripts/doctor-codex-native-repair-actions-check.js +24 -0
  331. package/dist/scripts/doctor-codex-startup-repair-check.js +103 -0
  332. package/dist/scripts/doctor-context7-mcp-repair-blackbox.js +16 -0
  333. package/dist/scripts/doctor-context7-mcp-repair-check.js +11 -0
  334. package/dist/scripts/doctor-context7-repair-check.js +47 -0
  335. package/dist/scripts/doctor-dirty-plan-check.js +9 -0
  336. package/dist/scripts/doctor-dirty-repair-blackbox.js +22 -0
  337. package/dist/scripts/doctor-dirty-repair-check.js +8 -0
  338. package/dist/scripts/doctor-dirty-semantic-blackbox.js +8 -0
  339. package/dist/scripts/doctor-dirty-semantic-check.js +7 -0
  340. package/dist/scripts/doctor-fix-production-blackbox.js +26 -0
  341. package/dist/scripts/doctor-fix-proves-codex-read-check.js +102 -0
  342. package/dist/scripts/doctor-fix-recovers-corrupted-config-check.js +122 -0
  343. package/dist/scripts/doctor-fixes-codex-app-fast-ui-check.js +44 -0
  344. package/dist/scripts/doctor-native-capability-repair-blackbox.js +39 -0
  345. package/dist/scripts/doctor-native-capability-repair-check.js +10 -0
  346. package/dist/scripts/doctor-native-repair-output-check.js +18 -0
  347. package/dist/scripts/doctor-startup-config-repair-blackbox.js +13 -0
  348. package/dist/scripts/doctor-startup-config-repair-check.js +10 -0
  349. package/dist/scripts/doctor-supabase-mcp-repair-blackbox.js +14 -0
  350. package/dist/scripts/doctor-supabase-mcp-repair-check.js +12 -0
  351. package/dist/scripts/doctor-transaction-engine-blackbox.js +28 -0
  352. package/dist/scripts/doctor-transaction-engine-check.js +31 -0
  353. package/dist/scripts/doctor-zellij-fix-blackbox.js +4 -0
  354. package/dist/scripts/doctor-zellij-fix-output-check.js +4 -0
  355. package/dist/scripts/doctor-zellij-no-homebrew-blackbox.js +4 -0
  356. package/dist/scripts/doctor-zellij-repair-check.js +4 -0
  357. package/dist/scripts/doctor-zellij-upgrade-blackbox.js +4 -0
  358. package/dist/scripts/evidence-fixture-check.js +26 -0
  359. package/dist/scripts/evidence-flagship-coverage-check.js +55 -0
  360. package/dist/scripts/fake-real-proof-policy-v2-check.js +27 -0
  361. package/dist/scripts/fake-vs-real-proof-policy-check.js +14 -0
  362. package/dist/scripts/fast-codex-service-tier-proof-check.js +42 -0
  363. package/dist/scripts/flagship-proof-graph-v2-check.js +48 -0
  364. package/dist/scripts/flagship-proof-graph-v3-check.js +67 -0
  365. package/dist/scripts/flagship-proof-graph-v4-check.js +61 -0
  366. package/dist/scripts/gate-pack-fixture-cache-check.js +9 -0
  367. package/dist/scripts/gate-pack-manifest-check.js +9 -0
  368. package/dist/scripts/gate-pack-runner-blackbox.js +27 -0
  369. package/dist/scripts/gate-pack-runner-check.js +6 -0
  370. package/dist/scripts/gate-pack-v2-blackbox.js +18 -0
  371. package/dist/scripts/git-precommit-fixture-check.js +41 -0
  372. package/dist/scripts/git-worktree-batch-allocation-check.js +10 -0
  373. package/dist/scripts/git-worktree-cache-performance-check.js +25 -0
  374. package/dist/scripts/git-worktree-capability-check.js +27 -0
  375. package/dist/scripts/git-worktree-checkpoint-check.js +20 -0
  376. package/dist/scripts/git-worktree-cleanup-check.js +27 -0
  377. package/dist/scripts/git-worktree-cross-rebase-check.js +41 -0
  378. package/dist/scripts/git-worktree-diff-envelope-check.js +17 -0
  379. package/dist/scripts/git-worktree-diff-export-check.js +43 -0
  380. package/dist/scripts/git-worktree-dirty-lock-check.js +17 -0
  381. package/dist/scripts/git-worktree-dirty-main-detection-check.js +14 -0
  382. package/dist/scripts/git-worktree-integration-primary-check.js +24 -0
  383. package/dist/scripts/git-worktree-integration-primary-runtime-check.js +20 -0
  384. package/dist/scripts/git-worktree-manager-check.js +37 -0
  385. package/dist/scripts/git-worktree-manifest-append-check.js +18 -0
  386. package/dist/scripts/git-worktree-merge-queue-check.js +31 -0
  387. package/dist/scripts/git-worktree-pool-performance-check.js +20 -0
  388. package/dist/scripts/git-worktree-prewarm-runtime-check.js +7 -0
  389. package/dist/scripts/git-worktree-untracked-diff-check.js +18 -0
  390. package/dist/scripts/goal-artifact-compat-check.js +3 -0
  391. package/dist/scripts/goal-legacy-runtime-escape-check.js +3 -0
  392. package/dist/scripts/goal-loop-compat-check.js +3 -0
  393. package/dist/scripts/goal-loop-runtime-default-check.js +3 -0
  394. package/dist/scripts/goal-mode-official-default-check.js +12 -0
  395. package/dist/scripts/gpt-final-arbiter-check.js +63 -0
  396. package/dist/scripts/gpt-final-arbiter-performance-check.js +36 -0
  397. package/dist/scripts/gpt-image-2-request-validator-check.js +35 -0
  398. package/dist/scripts/hooks-0.134-context-parity-check.js +20 -0
  399. package/dist/scripts/hooks-actual-parity-check.js +17 -0
  400. package/dist/scripts/hooks-actual-parity-v2-check.js +21 -0
  401. package/dist/scripts/hooks-latest-schema-check.js +20 -0
  402. package/dist/scripts/hooks-managed-install-fixture-check.js +21 -0
  403. package/dist/scripts/hooks-official-hash-oracle-check.js +35 -0
  404. package/dist/scripts/hooks-official-hash-parity-check.js +17 -0
  405. package/dist/scripts/hooks-subagent-events-check.js +17 -0
  406. package/dist/scripts/hooks-trust-state-check.js +14 -0
  407. package/dist/scripts/image-artifact-path-contract-check.js +14 -0
  408. package/dist/scripts/image-artifact-registry-check.js +14 -0
  409. package/dist/scripts/image-fidelity-fixture-check.js +24 -0
  410. package/dist/scripts/image-followup-edit-path-check.js +14 -0
  411. package/dist/scripts/image-generation-path-handoff-check.js +8 -0
  412. package/dist/scripts/image-global-path-contract-check.js +38 -0
  413. package/dist/scripts/imagegen-capability-check.js +30 -0
  414. package/dist/scripts/imagegen-real-smoke-check.js +155 -0
  415. package/dist/scripts/init-deep-backup-retention-check.js +37 -0
  416. package/dist/scripts/init-deep-memory-scope-safety-check.js +23 -0
  417. package/dist/scripts/install-update-preserves-config-check.js +172 -0
  418. package/dist/scripts/json-schema-recursive-check.js +78 -0
  419. package/dist/scripts/legacy-gate-inventory-check.js +49 -0
  420. package/dist/scripts/legacy-gate-purge-check.js +7 -0
  421. package/dist/scripts/legacy-multiagent-removal-check.js +85 -0
  422. package/dist/scripts/legacy-purge-final-check.js +5 -0
  423. package/dist/scripts/legacy-strong-inventory-check.js +43 -0
  424. package/dist/scripts/legacy-upgrade-matrix-check.js +300 -0
  425. package/dist/scripts/local-collab-all-pipelines-final-gpt-check.js +21 -0
  426. package/dist/scripts/local-collab-gpt-final-availability-check.js +58 -0
  427. package/dist/scripts/local-collab-no-local-only-final-check.js +27 -0
  428. package/dist/scripts/local-collab-policy-check.js +17 -0
  429. package/dist/scripts/local-collab-worktree-gpt-final-apply-policy-check.js +63 -0
  430. package/dist/scripts/local-llm-all-pipelines-check.js +11 -0
  431. package/dist/scripts/local-llm-cache-performance-check.js +10 -0
  432. package/dist/scripts/local-llm-capability-check.js +14 -0
  433. package/dist/scripts/local-llm-smoke-check.js +32 -0
  434. package/dist/scripts/local-llm-structured-output-check.js +11 -0
  435. package/dist/scripts/local-llm-throughput-check.js +10 -0
  436. package/dist/scripts/local-llm-tool-call-repair-check.js +10 -0
  437. package/dist/scripts/local-llm-warmup-check.js +11 -0
  438. package/dist/scripts/loop-artifact-paths-check.js +3 -0
  439. package/dist/scripts/loop-blocker-check.js +15 -0
  440. package/dist/scripts/loop-cli-check.js +3 -0
  441. package/dist/scripts/loop-cli-registry-check.js +3 -0
  442. package/dist/scripts/loop-collision-blackbox.js +3 -0
  443. package/dist/scripts/loop-concurrency-budget-check.js +3 -0
  444. package/dist/scripts/loop-concurrency-budget-runtime-check.js +3 -0
  445. package/dist/scripts/loop-concurrency-oversubscription-blackbox.js +3 -0
  446. package/dist/scripts/loop-continuation-enforcer-check.js +4 -0
  447. package/dist/scripts/loop-decomposer-check.js +3 -0
  448. package/dist/scripts/loop-directive-check-lib.js +388 -0
  449. package/dist/scripts/loop-execution-profile-routing-check.js +4 -0
  450. package/dist/scripts/loop-final-arbiter-contract-check.js +3 -0
  451. package/dist/scripts/loop-fixture-policy-check.js +3 -0
  452. package/dist/scripts/loop-fixture-production-misuse-blackbox.js +3 -0
  453. package/dist/scripts/loop-fixture-safety-check.js +3 -0
  454. package/dist/scripts/loop-gate-fixture-guard-check.js +3 -0
  455. package/dist/scripts/loop-gate-ladder-check.js +3 -0
  456. package/dist/scripts/loop-gate-runner-check.js +3 -0
  457. package/dist/scripts/loop-gate-selector-check.js +3 -0
  458. package/dist/scripts/loop-gpt-final-contract-crossref-check.js +3 -0
  459. package/dist/scripts/loop-gpt-final-fixture-guard-check.js +3 -0
  460. package/dist/scripts/loop-gpt-final-gate-contract-check.js +3 -0
  461. package/dist/scripts/loop-hardening-check-lib.js +289 -0
  462. package/dist/scripts/loop-integration-finalizer-check.js +3 -0
  463. package/dist/scripts/loop-integration-merge-strategy-check.js +3 -0
  464. package/dist/scripts/loop-interrupt-registry-check.js +3 -0
  465. package/dist/scripts/loop-kill-interrupt-real-blackbox.js +3 -0
  466. package/dist/scripts/loop-lease-check.js +3 -0
  467. package/dist/scripts/loop-merge-strategy-blackbox.js +3 -0
  468. package/dist/scripts/loop-merge-strategy-check.js +3 -0
  469. package/dist/scripts/loop-mesh-production-e2e-blackbox.js +3 -0
  470. package/dist/scripts/loop-mutation-ledger-check.js +3 -0
  471. package/dist/scripts/loop-observability-check.js +3 -0
  472. package/dist/scripts/loop-owner-inference-check.js +3 -0
  473. package/dist/scripts/loop-planner-check.js +3 -0
  474. package/dist/scripts/loop-planner-project-memory-check.js +4 -0
  475. package/dist/scripts/loop-planner-project-memory-deep-check.js +4 -0
  476. package/dist/scripts/loop-proof-check.js +3 -0
  477. package/dist/scripts/loop-proof-summary-cli-check.js +3 -0
  478. package/dist/scripts/loop-risk-classifier-check.js +3 -0
  479. package/dist/scripts/loop-runtime-check.js +3 -0
  480. package/dist/scripts/loop-scheduler-check.js +3 -0
  481. package/dist/scripts/loop-schema-check.js +3 -0
  482. package/dist/scripts/loop-side-effect-blackbox.js +3 -0
  483. package/dist/scripts/loop-side-effect-final-arbiter-check.js +3 -0
  484. package/dist/scripts/loop-side-effect-scanner-check.js +3 -0
  485. package/dist/scripts/loop-state-check.js +3 -0
  486. package/dist/scripts/loop-status-proof-ux-check.js +3 -0
  487. package/dist/scripts/loop-worker-fixture-guard-check.js +3 -0
  488. package/dist/scripts/loop-worker-handle-registration-check.js +3 -0
  489. package/dist/scripts/loop-worker-interrupt-check.js +3 -0
  490. package/dist/scripts/loop-worktree-policy-check.js +3 -0
  491. package/dist/scripts/loop-zellij-ui-check.js +3 -0
  492. package/dist/scripts/mad-db-capability-check.js +15 -0
  493. package/dist/scripts/mad-db-command-check.js +13 -0
  494. package/dist/scripts/mad-db-ledger-check.js +7 -0
  495. package/dist/scripts/mad-db-lifecycle-hook-decision-check.js +17 -0
  496. package/dist/scripts/mad-db-mad-command-check.js +100 -0
  497. package/dist/scripts/mad-db-mcp-result-lifecycle-check.js +30 -0
  498. package/dist/scripts/mad-db-one-cycle-bounded-check.js +27 -0
  499. package/dist/scripts/mad-db-one-cycle-consumption-check.js +16 -0
  500. package/dist/scripts/mad-db-operation-lifecycle-blackbox.js +29 -0
  501. package/dist/scripts/mad-db-operation-lifecycle-ledger-check.js +17 -0
  502. package/dist/scripts/mad-db-priority-resolver-check.js +20 -0
  503. package/dist/scripts/mad-db-safety-conflict-matrix-check.js +22 -0
  504. package/dist/scripts/mad-preflight-blocks-unreadable-config-check.js +66 -0
  505. package/dist/scripts/mad-sks-actual-executor-blackbox.js +5 -0
  506. package/dist/scripts/mad-sks-app-ui-no-mutation-check.js +92 -0
  507. package/dist/scripts/mad-sks-audit-proof-check.js +34 -0
  508. package/dist/scripts/mad-sks-db-executor-check.js +5 -0
  509. package/dist/scripts/mad-sks-executor-proof-graph-check.js +5 -0
  510. package/dist/scripts/mad-sks-fast-mode-propagation-check.js +24 -0
  511. package/dist/scripts/mad-sks-file-write-executor-check.js +5 -0
  512. package/dist/scripts/mad-sks-immutable-harness-check.js +36 -0
  513. package/dist/scripts/mad-sks-no-harness-modification-check.js +25 -0
  514. package/dist/scripts/mad-sks-package-executor-check.js +5 -0
  515. package/dist/scripts/mad-sks-permission-model-check.js +22 -0
  516. package/dist/scripts/mad-sks-rollback-apply-check.js +5 -0
  517. package/dist/scripts/mad-sks-service-executor-check.js +5 -0
  518. package/dist/scripts/mad-sks-shell-executor-check.js +5 -0
  519. package/dist/scripts/mad-sks-write-guard-check.js +28 -0
  520. package/dist/scripts/mad-sks-zellij-default-pane-worker-check.js +37 -0
  521. package/dist/scripts/mad-sks-zellij-launch-check.js +102 -0
  522. package/dist/scripts/mad-zellij-headless-fallback-blackbox.js +4 -0
  523. package/dist/scripts/mad-zellij-no-contradictory-output-check.js +4 -0
  524. package/dist/scripts/mad-zellij-self-heal-blackbox.js +4 -0
  525. package/dist/scripts/mad-zellij-self-heal-check.js +4 -0
  526. package/dist/scripts/managed-config-merge-check.js +24 -0
  527. package/dist/scripts/mcp-0-134-modernization-check.js +55 -0
  528. package/dist/scripts/mcp-plugin-inventory-check.js +12 -0
  529. package/dist/scripts/mcp-readonly-concurrency-check.js +17 -0
  530. package/dist/scripts/mcp-readonly-runtime-scheduler-check.js +20 -0
  531. package/dist/scripts/mcp-tool-naming-parity-check.js +16 -0
  532. package/dist/scripts/memory-summary-rebuild-check.js +22 -0
  533. package/dist/scripts/model-call-concurrency-check.js +15 -0
  534. package/dist/scripts/mutation-callsite-coverage-check.js +180 -0
  535. package/dist/scripts/naruto-active-pool-check.js +39 -0
  536. package/dist/scripts/naruto-actual-worker-control-plane-check.js +56 -0
  537. package/dist/scripts/naruto-allocation-policy-check.js +33 -0
  538. package/dist/scripts/naruto-allocation-runtime-wiring-check.js +92 -0
  539. package/dist/scripts/naruto-concurrency-governor-check.js +53 -0
  540. package/dist/scripts/naruto-extreme-parallelism-check.js +22 -0
  541. package/dist/scripts/naruto-extreme-parallelism-real-check.js +43 -0
  542. package/dist/scripts/naruto-gpt-final-pack-check.js +34 -0
  543. package/dist/scripts/naruto-loop-maker-checker-check.js +3 -0
  544. package/dist/scripts/naruto-loop-mesh-blackbox.js +3 -0
  545. package/dist/scripts/naruto-loop-mesh-check.js +3 -0
  546. package/dist/scripts/naruto-loop-worker-router-check.js +3 -0
  547. package/dist/scripts/naruto-orchestrator-runtime-source-check.js +70 -0
  548. package/dist/scripts/naruto-parallel-gate-consistency-check.js +8 -0
  549. package/dist/scripts/naruto-parallel-patch-apply-check.js +41 -0
  550. package/dist/scripts/naruto-parallel-runtime-proof-check.js +9 -0
  551. package/dist/scripts/naruto-parallelism-mode-check.js +12 -0
  552. package/dist/scripts/naruto-parallelism-ux-check.js +8 -0
  553. package/dist/scripts/naruto-proof-message-summary-check.js +9 -0
  554. package/dist/scripts/naruto-proof-zellij-stacked-summary-check.js +47 -0
  555. package/dist/scripts/naruto-readonly-routing-check.js +119 -0
  556. package/dist/scripts/naruto-real-active-pool-check.js +39 -0
  557. package/dist/scripts/naruto-real-active-pool-runtime-check.js +55 -0
  558. package/dist/scripts/naruto-real-parallelism-blackbox.js +294 -0
  559. package/dist/scripts/naruto-rebalance-policy-check.js +41 -0
  560. package/dist/scripts/naruto-role-distribution-check.js +23 -0
  561. package/dist/scripts/naruto-shadow-clone-swarm-check.js +164 -0
  562. package/dist/scripts/naruto-ssot-default-check.js +9 -0
  563. package/dist/scripts/naruto-ssot-gate-aliases-check.js +10 -0
  564. package/dist/scripts/naruto-ssot-pipeline-default-check.js +11 -0
  565. package/dist/scripts/naruto-ssot-route-normalization-check.js +9 -0
  566. package/dist/scripts/naruto-ssot-routing-check.js +13 -0
  567. package/dist/scripts/naruto-verification-pool-check.js +36 -0
  568. package/dist/scripts/naruto-visible-vs-active-workers-check.js +10 -0
  569. package/dist/scripts/naruto-work-graph-check.js +24 -0
  570. package/dist/scripts/naruto-worktree-coding-blackbox.js +29 -0
  571. package/dist/scripts/naruto-worktree-coding-check.js +44 -0
  572. package/dist/scripts/naruto-worktree-gpt-final-check.js +45 -0
  573. package/dist/scripts/naruto-worktree-zellij-ui-check.js +28 -0
  574. package/dist/scripts/naruto-zellij-dynamic-right-column-check.js +48 -0
  575. package/dist/scripts/naruto-zellij-massive-ui-check.js +23 -0
  576. package/dist/scripts/native-app-screenshot-repair-check.js +11 -0
  577. package/dist/scripts/native-capability-postcheck-check.js +16 -0
  578. package/dist/scripts/native-capability-repair-check.js +15 -0
  579. package/dist/scripts/native-capability-repair-matrix-check.js +10 -0
  580. package/dist/scripts/native-chrome-web-review-repair-check.js +10 -0
  581. package/dist/scripts/native-computer-use-repair-check.js +10 -0
  582. package/dist/scripts/native-image-generation-repair-check.js +9 -0
  583. package/dist/scripts/native-swarm-heartbeat-does-not-serialize-launch-check.js +8 -0
  584. package/dist/scripts/native-swarm-process-spawn-proof-check.js +7 -0
  585. package/dist/scripts/native-swarm-zellij-does-not-block-workers-check.js +11 -0
  586. package/dist/scripts/no-ts-nocheck-core-check.js +4 -0
  587. package/dist/scripts/no-ts-nocheck-release-scripts-check.js +4 -0
  588. package/dist/scripts/non-recursive-pipeline-check.js +68 -0
  589. package/dist/scripts/npm-publish-performance-check.js +65 -0
  590. package/dist/scripts/official-docs-compat-report.js +304 -0
  591. package/dist/scripts/orphan-gate-detection-check.js +53 -0
  592. package/dist/scripts/orphan-purge-final-check.js +5 -0
  593. package/dist/scripts/orphan-strong-detection-check.js +12 -0
  594. package/dist/scripts/package-published-contract-check.js +46 -0
  595. package/dist/scripts/packlist-performance-check.js +83 -0
  596. package/dist/scripts/parallel-claim-enforcement-check.js +21 -0
  597. package/dist/scripts/parallel-missing-pid-rejection-check.js +55 -0
  598. package/dist/scripts/parallel-runtime-proof-check.js +23 -0
  599. package/dist/scripts/parallel-runtime-proof-events-check.js +13 -0
  600. package/dist/scripts/parallel-runtime-real-blackbox.js +44 -0
  601. package/dist/scripts/parallel-strict-pid-proof-check.js +54 -0
  602. package/dist/scripts/parallel-verification-engine-check.js +85 -0
  603. package/dist/scripts/pipeline-codex-0140-integration-check.js +30 -0
  604. package/dist/scripts/pipeline-codex-native-doctor-mad-routing-check.js +4 -0
  605. package/dist/scripts/pipeline-codex-native-doctor-mad-routing-real-blackbox.js +77 -0
  606. package/dist/scripts/pipeline-codex-native-e2e-blackbox.js +13 -0
  607. package/dist/scripts/pipeline-codex-native-image-routing-check.js +4 -0
  608. package/dist/scripts/pipeline-codex-native-image-routing-real-blackbox.js +50 -0
  609. package/dist/scripts/pipeline-codex-native-loop-routing-check.js +4 -0
  610. package/dist/scripts/pipeline-codex-native-loop-routing-real-blackbox.js +74 -0
  611. package/dist/scripts/pipeline-codex-native-qa-routing-check.js +4 -0
  612. package/dist/scripts/pipeline-codex-native-qa-routing-real-blackbox.js +51 -0
  613. package/dist/scripts/pipeline-codex-native-research-routing-check.js +4 -0
  614. package/dist/scripts/pipeline-codex-native-research-routing-real-blackbox.js +45 -0
  615. package/dist/scripts/pipeline-execution-profile-routing-blackbox.js +4 -0
  616. package/dist/scripts/pipeline-five-minute-sla-check.js +7 -0
  617. package/dist/scripts/postinstall-safe-side-effects-check.js +65 -0
  618. package/dist/scripts/ppt-full-e2e-artifact-graph-check.js +40 -0
  619. package/dist/scripts/ppt-full-e2e-blackbox-check.js +109 -0
  620. package/dist/scripts/ppt-image-voxel-relations-check.js +9 -0
  621. package/dist/scripts/ppt-imagegen-blackbox-check.js +46 -0
  622. package/dist/scripts/ppt-imagegen-review-fixture-check.js +6 -0
  623. package/dist/scripts/ppt-issue-extraction-fixture-check.js +7 -0
  624. package/dist/scripts/ppt-no-mock-as-real-check.js +8 -0
  625. package/dist/scripts/ppt-no-text-fallback-check.js +7 -0
  626. package/dist/scripts/ppt-proof-trust-fixture-check.js +10 -0
  627. package/dist/scripts/ppt-real-export-adapter-check.js +13 -0
  628. package/dist/scripts/ppt-real-imagegen-smoke-check.js +42 -0
  629. package/dist/scripts/ppt-real-imagegen-wiring-check.js +16 -0
  630. package/dist/scripts/ppt-reexport-rereview-check.js +19 -0
  631. package/dist/scripts/ppt-slide-export-fixture-check.js +7 -0
  632. package/dist/scripts/prepublish-fast-check.js +128 -0
  633. package/dist/scripts/priority-full-closure-check.js +12 -0
  634. package/dist/scripts/probe-memoization-check.js +11 -0
  635. package/dist/scripts/product-design-auto-install-check.js +119 -0
  636. package/dist/scripts/product-design-plugin-routing-check.js +101 -0
  637. package/dist/scripts/project-skill-dedupe-blackbox.js +36 -0
  638. package/dist/scripts/project-skill-dedupe-check.js +16 -0
  639. package/dist/scripts/prompt-placeholder-guard-check.js +33 -0
  640. package/dist/scripts/proof-root-cause-policy-check.js +70 -0
  641. package/dist/scripts/provider-badge-context-check.js +26 -0
  642. package/dist/scripts/provider-context-config-toml-check.js +63 -0
  643. package/dist/scripts/python-codex-sdk-all-pipelines-check.js +47 -0
  644. package/dist/scripts/python-codex-sdk-capability-check.js +75 -0
  645. package/dist/scripts/python-codex-sdk-sandbox-policy-check.js +10 -0
  646. package/dist/scripts/python-codex-sdk-stream-bridge-check.js +12 -0
  647. package/dist/scripts/python-tools-smoke-check.js +71 -0
  648. package/dist/scripts/qa-actual-route-backfill-check.js +5 -0
  649. package/dist/scripts/qa-backfill-route-blackbox.js +5 -0
  650. package/dist/scripts/qa-loop-app-handoff-capability-check.js +9 -0
  651. package/dist/scripts/qa-loop-app-handoff-check.js +9 -0
  652. package/dist/scripts/qa-loop-app-handoff-cli-check.js +8 -0
  653. package/dist/scripts/qa-loop-app-handoff-confirmation-check.js +24 -0
  654. package/dist/scripts/qa-loop-app-handoff-gate-lifecycle-check.js +44 -0
  655. package/dist/scripts/qa-loop-app-handoff-launch-check.js +7 -0
  656. package/dist/scripts/qa-loop-app-handoff-status-lifecycle-check.js +7 -0
  657. package/dist/scripts/qa-loop-budget-policy-check.js +8 -0
  658. package/dist/scripts/qa-loop-effort-escalation-check.js +9 -0
  659. package/dist/scripts/qa-loop-execution-profile-routing-check.js +4 -0
  660. package/dist/scripts/qa-loop-image-path-exposure-check.js +9 -0
  661. package/dist/scripts/qa-loop-image-path-prompt-injection-check.js +8 -0
  662. package/dist/scripts/qa-patch-swarm-route-blackbox.js +10 -0
  663. package/dist/scripts/readme-architecture-imagegen-official-check.js +448 -0
  664. package/dist/scripts/release-affected-selector-check.js +41 -0
  665. package/dist/scripts/release-aggressive-resource-governor-check.js +25 -0
  666. package/dist/scripts/release-batch-runner-check.js +6 -0
  667. package/dist/scripts/release-cache-bridge-check.js +23 -0
  668. package/dist/scripts/release-cache-glob-hashing-check.js +42 -0
  669. package/dist/scripts/release-cache-input-classifier-check.js +13 -0
  670. package/dist/scripts/release-cache-neutralization-report-check.js +13 -0
  671. package/dist/scripts/release-cache-version-neutral-fixture-check.js +65 -0
  672. package/dist/scripts/release-check-stamp.js +2 -1
  673. package/dist/scripts/release-dag-full-coverage-check.js +428 -0
  674. package/dist/scripts/release-dist-freshness-check.js +8 -0
  675. package/dist/scripts/release-dynamic-performance-check.js +110 -0
  676. package/dist/scripts/release-dynamic-presets-check.js +20 -0
  677. package/dist/scripts/release-full-parallelism-blackbox.js +41 -0
  678. package/dist/scripts/release-gate-batch-runner-check.js +43 -0
  679. package/dist/scripts/release-gate-budget-check.js +36 -0
  680. package/dist/scripts/release-gate-dag-runner-check.js +107 -0
  681. package/dist/scripts/release-gate-script-parity-check.js +117 -0
  682. package/dist/scripts/release-metadata-1-11-check.js +37 -0
  683. package/dist/scripts/release-metadata-1-12-check.js +48 -0
  684. package/dist/scripts/release-metadata-1-13-check.js +53 -0
  685. package/dist/scripts/release-metadata-1-14-check.js +63 -0
  686. package/dist/scripts/release-metadata-1-16-check.js +81 -0
  687. package/dist/scripts/release-metadata-1-17-check.js +51 -0
  688. package/dist/scripts/release-metadata-1-19-check.js +376 -0
  689. package/dist/scripts/release-metadata-check.js +7 -0
  690. package/dist/scripts/release-native-agent-fixture-check.js +41 -0
  691. package/dist/scripts/release-parallel-check.js +375 -0
  692. package/dist/scripts/release-parallel-full-coverage-check.js +13 -0
  693. package/dist/scripts/release-parallel-speed-budget-check.js +91 -0
  694. package/dist/scripts/release-proof-truth-check.js +14 -0
  695. package/dist/scripts/release-provenance-check.js +143 -0
  696. package/dist/scripts/release-readiness-report.js +1231 -0
  697. package/dist/scripts/release-real-check.js +338 -0
  698. package/dist/scripts/release-registry-check.js +353 -0
  699. package/dist/scripts/release-runtime-truth-matrix-check.js +47 -0
  700. package/dist/scripts/release-script-type-safety-check.js +4 -0
  701. package/dist/scripts/release-speed-summary-check.js +20 -0
  702. package/dist/scripts/release-stability-report-check.js +99 -0
  703. package/dist/scripts/release-triwiki-first-runner-blackbox.js +44 -0
  704. package/dist/scripts/release-triwiki-first-runner-check.js +9 -0
  705. package/dist/scripts/release-version-truth-check.js +134 -0
  706. package/dist/scripts/release-wiring-3110-blackbox.js +27 -0
  707. package/dist/scripts/release-wiring-3112-blackbox.js +17 -0
  708. package/dist/scripts/release-wiring-3113-blackbox.js +17 -0
  709. package/dist/scripts/research-actual-route-backfill-check.js +5 -0
  710. package/dist/scripts/research-backfill-route-blackbox.js +5 -0
  711. package/dist/scripts/research-blueprint-densifier-check.js +21 -0
  712. package/dist/scripts/research-claim-builder-check.js +19 -0
  713. package/dist/scripts/research-complete-package-fixture-check.js +29 -0
  714. package/dist/scripts/research-execution-profile-routing-check.js +4 -0
  715. package/dist/scripts/research-final-reviewer-blackbox.js +70 -0
  716. package/dist/scripts/research-handoff-consumability-check.js +23 -0
  717. package/dist/scripts/research-parallel-source-shards-check.js +22 -0
  718. package/dist/scripts/research-quality-gate-check.js +112 -0
  719. package/dist/scripts/research-real-cycle-no-legacy-final-md-check.js +14 -0
  720. package/dist/scripts/research-real-synthesis-no-deterministic-renderer-check.js +14 -0
  721. package/dist/scripts/research-repetition-detector-check.js +19 -0
  722. package/dist/scripts/research-short-report-rejection-check.js +46 -0
  723. package/dist/scripts/research-source-ledger-merge-check.js +26 -0
  724. package/dist/scripts/research-stage-cycle-runtime-blackbox.js +40 -0
  725. package/dist/scripts/research-synthesis-prompt-contract-check.js +36 -0
  726. package/dist/scripts/research-synthesis-writer-blackbox.js +24 -0
  727. package/dist/scripts/research-synthesis-writer-check.js +26 -0
  728. package/dist/scripts/research-template-report-rejection-check.js +56 -0
  729. package/dist/scripts/research-ultra-stability-report.js +45 -0
  730. package/dist/scripts/responses-retry-policy-centralized-check.js +19 -0
  731. package/dist/scripts/retention-cleanup-safety-check.js +155 -0
  732. package/dist/scripts/route-blackbox-realism-check.js +21 -0
  733. package/dist/scripts/route-proof-artifact-structure-check.js +145 -0
  734. package/dist/scripts/runtime-dist-parity-check.js +78 -0
  735. package/dist/scripts/runtime-no-mjs-scripts-check.js +45 -0
  736. package/dist/scripts/runtime-no-src-mjs-check.js +32 -0
  737. package/dist/scripts/runtime-no-tmux-check.js +114 -0
  738. package/dist/scripts/runtime-proof-summary-check.js +58 -0
  739. package/dist/scripts/runtime-proof-summary-cli-check.js +51 -0
  740. package/dist/scripts/runtime-proof-summary-messages-check.js +37 -0
  741. package/dist/scripts/runtime-proof-zellij-stacked-summary-check.js +58 -0
  742. package/dist/scripts/runtime-ts-python-boundary-check.js +59 -0
  743. package/dist/scripts/runtime-ts-rust-boundary-check.js +74 -0
  744. package/dist/scripts/runtime-ts-source-of-truth-check.js +55 -0
  745. package/dist/scripts/safety-check.js +23 -0
  746. package/dist/scripts/scheduler-batch-dispatch-check.js +17 -0
  747. package/dist/scripts/scheduler-critical-path-check.js +9 -0
  748. package/dist/scripts/scheduler-extreme-parallel-check.js +7 -0
  749. package/dist/scripts/scheduler-no-false-pending-block-check.js +7 -0
  750. package/dist/scripts/scheduler-parallel-proof-consistency-check.js +65 -0
  751. package/dist/scripts/scheduler-resource-budget-check.js +7 -0
  752. package/dist/scripts/scheduler-resource-claim-blackbox.js +24 -0
  753. package/dist/scripts/scheduler-utilization-integral-check.js +105 -0
  754. package/dist/scripts/scheduler-utilization-proof-check.js +8 -0
  755. package/dist/scripts/secret-line-rollback-check.js +35 -0
  756. package/dist/scripts/secret-preservation-check.js +11 -0
  757. package/dist/scripts/secret-preservation-guard-check.js +37 -0
  758. package/dist/scripts/shared-memory-fixture-check.js +27 -0
  759. package/dist/scripts/side-effect-runtime-report-check.js +19 -0
  760. package/dist/scripts/side-effect-zero-gate-check.js +226 -0
  761. package/dist/scripts/skill-name-canonicalizer-check.js +9 -0
  762. package/dist/scripts/skill-registry-ledger-check.js +14 -0
  763. package/dist/scripts/skill-sync-atomic-check.js +35 -0
  764. package/dist/scripts/sks-1-11-fixture-check.js +130 -0
  765. package/dist/scripts/sks-1-12-real-execution-check-lib.js +27 -0
  766. package/dist/scripts/sks-3-1-4-directive-check-lib.js +212 -0
  767. package/dist/scripts/sks-3-1-5-directive-check-lib.js +318 -0
  768. package/dist/scripts/sks-3-1-6-directive-check-lib.js +522 -0
  769. package/dist/scripts/sks-3-1-7-directive-check-lib.js +58 -0
  770. package/dist/scripts/sks-3-1-8-check-lib.js +30 -0
  771. package/dist/scripts/sks-3110-all-feature-regression-blackbox.js +116 -0
  772. package/dist/scripts/sks-3112-all-feature-regression-blackbox.js +29 -0
  773. package/dist/scripts/sks-3113-all-feature-regression-blackbox.js +17 -0
  774. package/dist/scripts/sks-400-all-feature-regression-blackbox.js +21 -0
  775. package/dist/scripts/sks-400-extreme-parallel-blackbox.js +8 -0
  776. package/dist/scripts/sks-400-five-minute-blackbox.js +9 -0
  777. package/dist/scripts/sks-400-legacy-purge-blackbox.js +8 -0
  778. package/dist/scripts/sks-401-all-feature-regression-blackbox.js +46 -0
  779. package/dist/scripts/sks-401-five-minute-actual-blackbox.js +23 -0
  780. package/dist/scripts/sks-402-all-feature-regression-blackbox.js +9 -0
  781. package/dist/scripts/sks-402-five-minute-real-blackbox.js +22 -0
  782. package/dist/scripts/sksd-daemon-check.js +9 -0
  783. package/dist/scripts/sksd-warm-cache-blackbox.js +12 -0
  784. package/dist/scripts/source-intelligence-all-modes-check.js +32 -0
  785. package/dist/scripts/source-intelligence-policy-check.js +13 -0
  786. package/dist/scripts/strategy-adhd-orchestrating-gate-check.js +22 -0
  787. package/dist/scripts/strategy-file-ownership-plan-check.js +18 -0
  788. package/dist/scripts/strategy-parallel-modification-plan-check.js +19 -0
  789. package/dist/scripts/strategy-verification-rollback-dag-check.js +19 -0
  790. package/dist/scripts/supabase-secret-preservation-blackbox.js +29 -0
  791. package/dist/scripts/team-actual-route-backfill-check.js +5 -0
  792. package/dist/scripts/team-alias-to-naruto-check.js +7 -0
  793. package/dist/scripts/team-backfill-route-blackbox.js +5 -0
  794. package/dist/scripts/team-legacy-create-removed-check.js +12 -0
  795. package/dist/scripts/team-parallel-write-blackbox.js +55 -0
  796. package/dist/scripts/team-patch-swarm-route-blackbox.js +10 -0
  797. package/dist/scripts/terminal-keyboard-enhancement-safety-check.js +12 -0
  798. package/dist/scripts/terminal-tui-output-stability-check.js +35 -0
  799. package/dist/scripts/test-no-orphan-dist-imports-check.js +73 -0
  800. package/dist/scripts/triwiki-affected-graph-blackbox.js +28 -0
  801. package/dist/scripts/triwiki-affected-graph-check.js +10 -0
  802. package/dist/scripts/triwiki-cache-key-check.js +9 -0
  803. package/dist/scripts/triwiki-gate-impact-map-check.js +8 -0
  804. package/dist/scripts/triwiki-module-card-check.js +7 -0
  805. package/dist/scripts/triwiki-proof-bank-blackbox.js +30 -0
  806. package/dist/scripts/triwiki-proof-bank-check.js +7 -0
  807. package/dist/scripts/triwiki-proof-bank-lock-blackbox.js +7 -0
  808. package/dist/scripts/triwiki-proof-card-check.js +23 -0
  809. package/dist/scripts/triwiki-stale-proof-rejection-check.js +25 -0
  810. package/dist/scripts/trust-fixture-check.js +33 -0
  811. package/dist/scripts/type-surface-codex-app-check.js +4 -0
  812. package/dist/scripts/typescript-migration-report.js +78 -0
  813. package/dist/scripts/ultra-router-auto-router-check.js +33 -0
  814. package/dist/scripts/ultra-router-classification-check.js +28 -0
  815. package/dist/scripts/update-gate-removed-check.js +9 -0
  816. package/dist/scripts/update-mad-zellij-notice-check.js +9 -0
  817. package/dist/scripts/update-notice-check.js +10 -0
  818. package/dist/scripts/update-preserves-supabase-keys-blackbox.js +27 -0
  819. package/dist/scripts/update-secret-migration-journal-check.js +8 -0
  820. package/dist/scripts/update-secret-preservation-guard-check.js +10 -0
  821. package/dist/scripts/ux-patch-swarm-route-blackbox.js +10 -0
  822. package/dist/scripts/ux-ppt-structured-extraction-check.js +21 -0
  823. package/dist/scripts/ux-review-extract-real-callouts-fixture-check.js +8 -0
  824. package/dist/scripts/ux-review-extract-wires-real-extractor-check.js +15 -0
  825. package/dist/scripts/ux-review-generate-callouts-fixture-check.js +9 -0
  826. package/dist/scripts/ux-review-image-voxel-relations-check.js +31 -0
  827. package/dist/scripts/ux-review-imagegen-blackbox-check.js +67 -0
  828. package/dist/scripts/ux-review-no-fake-callouts-check.js +8 -0
  829. package/dist/scripts/ux-review-no-text-fallback-check.js +25 -0
  830. package/dist/scripts/ux-review-patch-diff-recheck-check.js +20 -0
  831. package/dist/scripts/ux-review-patch-handoff-fixture-check.js +8 -0
  832. package/dist/scripts/ux-review-real-imagegen-smoke-check.js +31 -0
  833. package/dist/scripts/ux-review-real-loop-fixture-check.js +24 -0
  834. package/dist/scripts/ux-review-recapture-recheck-fixture-check.js +8 -0
  835. package/dist/scripts/ux-review-run-wires-imagegen-check.js +11 -0
  836. package/dist/scripts/worker-pane-communication-contract-check.js +54 -0
  837. package/dist/scripts/wrongness-fixture-check.js +65 -0
  838. package/dist/scripts/xai-mcp-capability-check.js +14 -0
  839. package/dist/scripts/zellij-capability-check.js +15 -0
  840. package/dist/scripts/zellij-dashboard-pane-check.js +70 -0
  841. package/dist/scripts/zellij-developer-controls-check.js +20 -0
  842. package/dist/scripts/zellij-doctor-readiness-check.js +63 -0
  843. package/dist/scripts/zellij-dynamic-pane-lifecycle-check.js +21 -0
  844. package/dist/scripts/zellij-fake-adapter-check.js +33 -0
  845. package/dist/scripts/zellij-first-slot-down-stack-check.js +21 -0
  846. package/dist/scripts/zellij-first-slot-down-stack-real-check.js +349 -0
  847. package/dist/scripts/zellij-homebrew-policy-check.js +4 -0
  848. package/dist/scripts/zellij-initial-main-only-blackbox.js +28 -0
  849. package/dist/scripts/zellij-lane-renderer-check.js +80 -0
  850. package/dist/scripts/zellij-launch-command-truth-check.js +75 -0
  851. package/dist/scripts/zellij-layout-valid-check.js +90 -0
  852. package/dist/scripts/zellij-pane-creation-lock-metrics-check.js +12 -0
  853. package/dist/scripts/zellij-pane-lock-concurrency-blackbox.js +80 -0
  854. package/dist/scripts/zellij-pane-lock-does-not-block-worker-check.js +14 -0
  855. package/dist/scripts/zellij-pane-lock-open-worker-integration-blackbox.js +137 -0
  856. package/dist/scripts/zellij-pane-proof-check.js +59 -0
  857. package/dist/scripts/zellij-qa-app-handoff-status-check.js +9 -0
  858. package/dist/scripts/zellij-real-session-cleanup-check.js +21 -0
  859. package/dist/scripts/zellij-real-session-heartbeat-check.js +49 -0
  860. package/dist/scripts/zellij-real-session-launch-check.js +57 -0
  861. package/dist/scripts/zellij-right-column-headless-overflow-check.js +22 -0
  862. package/dist/scripts/zellij-right-column-manager-check.js +27 -0
  863. package/dist/scripts/zellij-screen-proof-check.js +45 -0
  864. package/dist/scripts/zellij-self-heal-check.js +4 -0
  865. package/dist/scripts/zellij-self-heal-dry-run-check.js +4 -0
  866. package/dist/scripts/zellij-self-heal-status-contract-check.js +4 -0
  867. package/dist/scripts/zellij-self-heal-typed-blackbox.js +4 -0
  868. package/dist/scripts/zellij-slot-column-anchor-check.js +66 -0
  869. package/dist/scripts/zellij-slot-column-anchor-telemetry-check.js +9 -0
  870. package/dist/scripts/zellij-slot-only-ui-check.js +31 -0
  871. package/dist/scripts/zellij-slot-pane-renderer-check.js +150 -0
  872. package/dist/scripts/zellij-slot-pane-stale-detection-check.js +74 -0
  873. package/dist/scripts/zellij-slot-pane-telemetry-renderer-check.js +11 -0
  874. package/dist/scripts/zellij-slot-renderer-proof-semantics-check.js +59 -0
  875. package/dist/scripts/zellij-slot-telemetry-check.js +39 -0
  876. package/dist/scripts/zellij-slot-telemetry-incremental-check.js +48 -0
  877. package/dist/scripts/zellij-slot-telemetry-live-flush-check.js +57 -0
  878. package/dist/scripts/zellij-slot-telemetry-performance-check.js +34 -0
  879. package/dist/scripts/zellij-slot-telemetry-real-blackbox.js +20 -0
  880. package/dist/scripts/zellij-slot-telemetry-renderer-check.js +10 -0
  881. package/dist/scripts/zellij-slot-telemetry-runtime-check.js +23 -0
  882. package/dist/scripts/zellij-spawn-on-demand-layout-check.js +40 -0
  883. package/dist/scripts/zellij-stacked-capability-routing-check.js +11 -0
  884. package/dist/scripts/zellij-stacked-fallback-integration-blackbox.js +81 -0
  885. package/dist/scripts/zellij-stacked-version-matrix-check.js +31 -0
  886. package/dist/scripts/zellij-stacked-version-parser-check.js +21 -0
  887. package/dist/scripts/zellij-ui-design-check.js +105 -0
  888. package/dist/scripts/zellij-update-missing-self-heal-check.js +4 -0
  889. package/dist/scripts/zellij-update-prompt-matrix-check.js +18 -0
  890. package/dist/scripts/zellij-update-prompt-mode-check.js +20 -0
  891. package/dist/scripts/zellij-update-prompt-safety-check.js +10 -0
  892. package/dist/scripts/zellij-worker-pane-manager-check.js +109 -0
  893. package/dist/scripts/zellij-worker-pane-manager-single-owner-check.js +47 -0
  894. package/dist/scripts/zellij-worker-pane-real-ui-blackbox.js +202 -0
  895. package/dist/scripts/zellij-worker-pane-spawn-order-check.js +35 -0
  896. package/package.json +17 -7
  897. package/schemas/codex/app-server-0.142/codex_app_server_protocol.v2.schemas.json +18447 -0
  898. package/schemas/codex-release-manifest.schema.json +44 -0
@@ -0,0 +1,61 @@
1
+ #!/usr/bin/env node
2
+ // @ts-nocheck
3
+ // GATE: core-skill:card-schema
4
+ // Proves the Core Skill Card is read-only external state, that the checked-in
5
+ // schema matches the runtime contract, and that an optimizer candidate can never
6
+ // overwrite a deployed snapshot in place.
7
+ import fs from 'node:fs';
8
+ import os from 'node:os';
9
+ import path from 'node:path';
10
+ import { assertGate, emitGate, importDist, root, readJson } from './sks-1-18-gate-lib.js';
11
+ const cardMod = await importDist('core/skills/core-skill-card.js');
12
+ const typesMod = await importDist('core/skills/core-skill-types.js');
13
+ const deployMod = await importDist('core/skills/core-skill-deployment.js');
14
+ const { createRequestedScopeContract } = await importDist('core/safety/requested-scope-contract.js');
15
+ const BODY = '## Goal\nDo the task.\n\n## Verification\nCheck output.\n\n## Rollback\nRevert on failure.\n';
16
+ const tempRoot = fs.mkdtempSync(path.join(os.tmpdir(), 'sks-card-schema-'));
17
+ const promotionContract = createRequestedScopeContract({
18
+ route: 'core-skill-card-schema',
19
+ userRequest: 'release gate fixture skill promotion',
20
+ projectRoot: tempRoot,
21
+ overrides: { skill_snapshot_promotion: true }
22
+ });
23
+ // 1) A fresh candidate is structurally valid and read-only.
24
+ const candidate = cardMod.createCandidateCard({ skillId: 'demo-skill', route: 'DFix', baseVersion: 0, body: BODY });
25
+ const shape = cardMod.validateCardShape(candidate);
26
+ assertGate(shape.ok, 'candidate card must pass validateCardShape', shape);
27
+ assertGate(candidate.status === 'candidate', 'fresh card status must be candidate', { status: candidate.status });
28
+ assertGate(candidate.deployment_snapshot === false, 'candidate must not be a deployment snapshot', candidate);
29
+ assertGate(candidate.side_effect_scope.read_only === true, 'candidate card must be read_only', candidate.side_effect_scope);
30
+ assertGate(candidate.side_effect_scope.allowed_mutations.length === 0, 'candidate card must grant zero mutations', candidate.side_effect_scope);
31
+ // 2) The checked-in schema parses and its const matches the runtime schema id.
32
+ const cardSchema = readJson('schemas/skills/core-skill-card.schema.json');
33
+ assertGate(cardSchema.properties?.schema?.const === typesMod.CORE_SKILL_CARD_SCHEMA, 'card schema const must match CORE_SKILL_CARD_SCHEMA', { const: cardSchema.properties?.schema?.const, expected: typesMod.CORE_SKILL_CARD_SCHEMA });
34
+ // 3) Negative invariants.
35
+ const notReadOnly = { ...candidate, side_effect_scope: { allowed_mutations: [], read_only: false } };
36
+ const notReadOnlyShape = cardMod.validateCardShape(notReadOnly);
37
+ assertGate(notReadOnlyShape.ok === false && notReadOnlyShape.blockers.includes('card_not_read_only'), 'read_only=false card must be blocked by card_not_read_only', notReadOnlyShape);
38
+ const grantsMutations = { ...candidate, side_effect_scope: { allowed_mutations: ['x'], read_only: true } };
39
+ const grantsShape = cardMod.validateCardShape(grantsMutations);
40
+ assertGate(grantsShape.ok === false && grantsShape.blockers.includes('card_grants_mutations'), 'allowed_mutations card must be blocked by card_grants_mutations', grantsShape);
41
+ const badDeployed = { ...candidate, status: 'deployed', deployment_snapshot: false };
42
+ const badDeployedShape = cardMod.validateCardShape(badDeployed);
43
+ assertGate(badDeployedShape.ok === false && badDeployedShape.blockers.includes('deployed_card_not_snapshot'), 'deployed card without snapshot flag must be blocked', badDeployedShape);
44
+ // 4) A deployed snapshot cannot be overwritten by an optimizer candidate.
45
+ // The deployed snapshot lives in deployed.json; a candidate is a SEPARATE file.
46
+ const accepted = { ...candidate, status: 'accepted' };
47
+ const promotion = await deployMod.promoteToDeployedWithLedger(tempRoot, accepted, { contract: promotionContract, context: 'release' });
48
+ assertGate(promotion.ok === true, 'ledger promotion must succeed for an accepted card', promotion);
49
+ const deployedBefore = await cardMod.loadDeployedSnapshot(tempRoot, 'DFix', 'demo-skill');
50
+ assertGate(deployedBefore && deployedBefore.status === 'deployed' && deployedBefore.deployment_snapshot === true, 'loadDeployedSnapshot must return a deployed snapshot', deployedBefore);
51
+ // Saving a candidate with the same skill_id must NOT touch deployed.json.
52
+ const sneakyCandidate = cardMod.createCandidateCard({ skillId: 'demo-skill', route: 'DFix', baseVersion: 9, body: '## Goal\nOverwrite me.\n' });
53
+ await cardMod.saveCard(tempRoot, sneakyCandidate);
54
+ const deployedAfter = await cardMod.loadDeployedSnapshot(tempRoot, 'DFix', 'demo-skill');
55
+ assertGate(deployedAfter && deployedAfter.status === 'deployed' && deployedAfter.deployment_snapshot === true, 'deployed snapshot must remain deployed after saving a candidate', deployedAfter);
56
+ assertGate(deployedAfter.body === deployedBefore.body, 'deployed snapshot body must be unchanged by candidate save', { before: deployedBefore.body, after: deployedAfter.body });
57
+ fs.mkdirSync(path.join(root, '.sneakoscope', 'reports'), { recursive: true });
58
+ fs.writeFileSync(path.join(root, '.sneakoscope', 'reports', 'core-skill-card-schema-check.json'), `${JSON.stringify({ gate: 'core-skill:card-schema', candidate_ok: shape.ok, schema_const: cardSchema.properties?.schema?.const, deployed_protected: deployedAfter.body === deployedBefore.body }, null, 2)}\n`);
59
+ fs.rmSync(tempRoot, { recursive: true, force: true });
60
+ emitGate('core-skill:card-schema', { candidate_read_only: true, schema_const: cardSchema.properties?.schema?.const, deployed_snapshot_immutable: true });
61
+ //# sourceMappingURL=core-skill-card-schema-check.js.map
@@ -0,0 +1,54 @@
1
+ #!/usr/bin/env node
2
+ // @ts-nocheck
3
+ // GATE: core-skill:deployment-snapshot
4
+ // Proves deployed snapshots are immutable (a changed body needs a higher version),
5
+ // the previous snapshot is archived for rollback, rollback restores it, and only an
6
+ // accepted card may be promoted.
7
+ import fs from 'node:fs';
8
+ import os from 'node:os';
9
+ import path from 'node:path';
10
+ import { assertGate, emitGate, importDist, root } from './sks-1-18-gate-lib.js';
11
+ const cardMod = await importDist('core/skills/core-skill-card.js');
12
+ const deployMod = await importDist('core/skills/core-skill-deployment.js');
13
+ const { createRequestedScopeContract } = await importDist('core/safety/requested-scope-contract.js');
14
+ const ROUTE = 'DFix';
15
+ const SKILL = 'demo-skill';
16
+ const BODY_V1 = '## Goal\nDo the task.\n\n## Verification\nCheck output.\n\n## Rollback\nRevert on failure.\n';
17
+ const BODY_V2 = '## Goal\nDo the task carefully.\n\n## Verification\nCheck output twice.\n\n## Rollback\nRevert on failure.\n';
18
+ const tempRoot = fs.mkdtempSync(path.join(os.tmpdir(), 'sks-deploy-'));
19
+ const promotionContract = createRequestedScopeContract({
20
+ route: 'core-skill-deployment-snapshot',
21
+ userRequest: 'release gate fixture skill promotion',
22
+ projectRoot: tempRoot,
23
+ overrides: { skill_snapshot_promotion: true }
24
+ });
25
+ // 1) Promote an accepted card to a deployed snapshot.
26
+ const acceptedV1 = { ...cardMod.createCandidateCard({ skillId: SKILL, route: ROUTE, baseVersion: 0, body: BODY_V1 }), status: 'accepted' };
27
+ const promoteV1 = await deployMod.promoteToDeployedWithLedger(tempRoot, acceptedV1, { contract: promotionContract, context: 'release' });
28
+ assertGate(promoteV1.ok === true, 'promoting an accepted card must succeed', promoteV1);
29
+ assertGate(promoteV1.snapshot && promoteV1.snapshot.status === 'deployed' && promoteV1.snapshot.deployment_snapshot === true, 'snapshot must be deployed + flagged', promoteV1.snapshot);
30
+ // 2) Immutability: a changed body at version <= existing must be rejected.
31
+ const changedSameVersion = { ...cardMod.createCandidateCard({ skillId: SKILL, route: ROUTE, baseVersion: 0, body: BODY_V2 }), status: 'accepted' };
32
+ assertGate(changedSameVersion.version === acceptedV1.version, 'changed-body card must share the existing version for this check', { changed: changedSameVersion.version, existing: acceptedV1.version });
33
+ const promoteSame = await deployMod.promoteToDeployedWithLedger(tempRoot, changedSameVersion, { contract: promotionContract, context: 'release' });
34
+ assertGate(promoteSame.ok === false && promoteSame.blockers.includes('snapshot_changed_without_version_increment'), 'changed body without version bump must be rejected', promoteSame);
35
+ // 3) A changed body at a HIGHER version succeeds, archives the previous snapshot.
36
+ const acceptedV2 = { ...cardMod.createCandidateCard({ skillId: SKILL, route: ROUTE, baseVersion: 1, body: BODY_V2 }), status: 'accepted' };
37
+ assertGate(acceptedV2.version > acceptedV1.version, 'v2 must have a higher version than v1', { v2: acceptedV2.version, v1: acceptedV1.version });
38
+ const promoteV2 = await deployMod.promoteToDeployedWithLedger(tempRoot, acceptedV2, { contract: promotionContract, context: 'release' });
39
+ assertGate(promoteV2.ok === true, 'higher-version changed snapshot must promote', promoteV2);
40
+ assertGate(typeof promoteV2.archived_path === 'string' && promoteV2.archived_path.length > 0, 'previous snapshot must be archived', promoteV2);
41
+ const hasRollback = await deployMod.hasRollbackSnapshot(tempRoot, ROUTE, SKILL);
42
+ assertGate(hasRollback === true, 'a rollback snapshot must exist after a version bump', { hasRollback });
43
+ // 4) Rollback restores the previous (v1) snapshot.
44
+ const rolled = await deployMod.rollbackDeployment(tempRoot, ROUTE, SKILL);
45
+ assertGate(rolled.ok === true && rolled.restored_version === acceptedV1.version, 'rollback must restore the previous version', rolled);
46
+ // 5) Promotion requires accepted status.
47
+ const candidate = cardMod.createCandidateCard({ skillId: 'other-skill', route: ROUTE, baseVersion: 0, body: BODY_V1 });
48
+ const promoteCandidate = await deployMod.promoteToDeployedWithLedger(tempRoot, candidate, { contract: promotionContract, context: 'release' });
49
+ assertGate(promoteCandidate.ok === false && promoteCandidate.blockers.includes('promote_requires_accepted_status'), 'a candidate card must not be promotable', promoteCandidate);
50
+ fs.mkdirSync(path.join(root, '.sneakoscope', 'reports'), { recursive: true });
51
+ fs.writeFileSync(path.join(root, '.sneakoscope', 'reports', 'core-skill-deployment-snapshot-check.json'), `${JSON.stringify({ gate: 'core-skill:deployment-snapshot', restored_version: rolled.restored_version, archived_path: Boolean(promoteV2.archived_path) }, null, 2)}\n`);
52
+ fs.rmSync(tempRoot, { recursive: true, force: true });
53
+ emitGate('core-skill:deployment-snapshot', { immutable_without_version_bump: true, archived_on_bump: true, rollback_restores_previous: rolled.restored_version === acceptedV1.version, promote_requires_accepted: true });
54
+ //# sourceMappingURL=core-skill-deployment-snapshot-check.js.map
@@ -0,0 +1,49 @@
1
+ #!/usr/bin/env node
2
+ // @ts-nocheck
3
+ // GATE: core-skill:heldout-validation
4
+ // Proves strict held-out acceptance: a candidate is accepted ONLY on strict
5
+ // held-out improvement with no safety regression, train-only gains are rejected,
6
+ // and rejected patches are buffered so the same failed edit is not retried.
7
+ import fs from 'node:fs';
8
+ import os from 'node:os';
9
+ import path from 'node:path';
10
+ import { assertGate, emitGate, importDist, root } from './sks-1-18-gate-lib.js';
11
+ const validationMod = await importDist('core/skills/core-skill-validation.js');
12
+ const bufferMod = await importDist('core/skills/rejected-skill-patch-buffer.js');
13
+ const baseInput = {
14
+ baselineHeldout: 0.76,
15
+ candidateHeldout: 0.82,
16
+ sideEffectZero: true,
17
+ requestedScopeCompliant: true,
18
+ proofCompletenessBaseline: 1,
19
+ proofCompletenessCandidate: 1,
20
+ rollbackReadyBaseline: 1,
21
+ rollbackReadyCandidate: 1,
22
+ latencyBaselineMs: 1000,
23
+ latencyCandidateMs: 1100
24
+ };
25
+ // 1) Accept on strict improvement with no regression.
26
+ const acceptRes = validationMod.validateHeldout(baseInput);
27
+ assertGate(acceptRes.accept === true && acceptRes.reason === 'strict_improvement', 'strict improvement must be accepted', acceptRes);
28
+ // 2) Held-out not improved -> reject.
29
+ const notImproved = validationMod.validateHeldout({ ...baseInput, candidateHeldout: 0.74 });
30
+ assertGate(notImproved.accept === false && notImproved.reason === 'heldout_not_improved', 'non-improving held-out must be rejected', notImproved);
31
+ // 3) Train-improves-but-held-out-worse maps to heldout_not_improved.
32
+ // (Held-out is the only acceptance signal; a worse held-out is rejected regardless of train gains.)
33
+ const trainGainHeldoutWorse = validationMod.validateHeldout({ ...baseInput, candidateHeldout: 0.70 });
34
+ assertGate(trainGainHeldoutWorse.accept === false && trainGainHeldoutWorse.reason === 'heldout_not_improved', 'train-gain/held-out-worse must reject as heldout_not_improved', trainGainHeldoutWorse);
35
+ // 4) Side-effect violation with improved held-out -> reject.
36
+ const sideEffect = validationMod.validateHeldout({ ...baseInput, sideEffectZero: false });
37
+ assertGate(sideEffect.accept === false && sideEffect.reason === 'side_effect_zero_failed', 'side-effect failure must reject as side_effect_zero_failed', sideEffect);
38
+ // 5) Rejected-patch buffer dedupes by hash.
39
+ const tempRoot = fs.mkdtempSync(path.join(os.tmpdir(), 'sks-heldout-'));
40
+ await bufferMod.recordRejectedPatch(tempRoot, { skill_id: 's', base_version: 3, patch_hash: 'abc', reason: 'heldout_not_improved', score_delta: -0.03 });
41
+ const knownRejected = await bufferMod.isPatchRejected(tempRoot, 'abc');
42
+ const unknownRejected = await bufferMod.isPatchRejected(tempRoot, 'zzz');
43
+ assertGate(knownRejected === true, 'recorded patch hash must be reported as rejected', { knownRejected });
44
+ assertGate(unknownRejected === false, 'unknown patch hash must not be reported as rejected', { unknownRejected });
45
+ fs.mkdirSync(path.join(root, '.sneakoscope', 'reports'), { recursive: true });
46
+ fs.writeFileSync(path.join(root, '.sneakoscope', 'reports', 'core-skill-heldout-validation-check.json'), `${JSON.stringify({ gate: 'core-skill:heldout-validation', accept_delta: acceptRes.score_delta, reject_reasons: [notImproved.reason, trainGainHeldoutWorse.reason, sideEffect.reason] }, null, 2)}\n`);
47
+ fs.rmSync(tempRoot, { recursive: true, force: true });
48
+ emitGate('core-skill:heldout-validation', { accept_strict_improvement: true, heldout_not_improved_rejected: true, side_effect_rejected: true, rejected_buffer_dedupes: knownRejected && !unknownRejected });
49
+ //# sourceMappingURL=core-skill-heldout-validation-check.js.map
@@ -0,0 +1,18 @@
1
+ #!/usr/bin/env node
2
+ import fs from 'node:fs/promises';
3
+ import path from 'node:path';
4
+ import { assertGate, emitGate, makeTempRoot, writeText } from './sks-3-1-8-check-lib.js';
5
+ import { syncCoreSkillsIntegrity } from '../core/codex-native/core-skill-integrity.js';
6
+ import { renderCoreSkillTemplate } from '../core/codex-native/core-skill-manifest.js';
7
+ const root = await makeTempRoot('sks-core-immutable-');
8
+ const skillsRoot = path.join(root, '.agents', 'skills');
9
+ const first = await syncCoreSkillsIntegrity({ root, apply: true, skillsRoot });
10
+ assertGate(first.installed.length === 8, 'first immutable sync must install missing managed core skills', first);
11
+ const second = await syncCoreSkillsIntegrity({ root, apply: true, skillsRoot });
12
+ assertGate(second.installed.length === 0 && second.restored.length === 0, 'second immutable sync must be idempotent', second);
13
+ await writeText(path.join(skillsRoot, 'loop', 'SKILL.md'), `${renderCoreSkillTemplate('loop')}\ncorruption\n`);
14
+ const restored = await syncCoreSkillsIntegrity({ root, apply: true, skillsRoot });
15
+ const loopText = await fs.readFile(path.join(skillsRoot, 'loop', 'SKILL.md'), 'utf8');
16
+ assertGate(restored.restored.length === 1 && loopText === renderCoreSkillTemplate('loop'), 'corrupted managed core skill must restore exactly', restored);
17
+ emitGate('core-skill:immutable-sync', { installed: first.installed.length, restored: restored.restored.length });
18
+ //# sourceMappingURL=core-skill-immutable-sync-check.js.map
@@ -0,0 +1,32 @@
1
+ #!/usr/bin/env node
2
+ import fs from 'node:fs/promises';
3
+ import path from 'node:path';
4
+ import { assertGate, emitGate, makeTempRoot, writeText, writeUserSkill } from './sks-3-1-8-check-lib.js';
5
+ import { syncCoreSkillsIntegrity } from '../core/codex-native/core-skill-integrity.js';
6
+ import { renderCoreSkillTemplate } from '../core/codex-native/core-skill-manifest.js';
7
+ import { initProject } from '../core/init.js';
8
+ const root = await makeTempRoot('sks-core-blackbox-');
9
+ const skillsRoot = path.join(root, '.agents', 'skills');
10
+ const first = await syncCoreSkillsIntegrity({ root, apply: true, skillsRoot });
11
+ const second = await syncCoreSkillsIntegrity({ root, apply: true, skillsRoot });
12
+ await writeText(path.join(skillsRoot, 'research', 'SKILL.md'), `${renderCoreSkillTemplate('research')}\nmutated\n`);
13
+ const third = await syncCoreSkillsIntegrity({ root, apply: true, skillsRoot });
14
+ const restoredText = await fs.readFile(path.join(skillsRoot, 'research', 'SKILL.md'), 'utf8');
15
+ const userRoot = path.join(root, 'user-skills');
16
+ await writeUserSkill(root, 'user-skills', 'research', 'research');
17
+ const user = await syncCoreSkillsIntegrity({ root, apply: true, skillsRoot: userRoot });
18
+ const setupRoot = await makeTempRoot('sks-core-setup-blackbox-');
19
+ const setup = await initProject(setupRoot, { force: true, installScope: 'project', localOnly: true, globalCommand: 'sks' });
20
+ const setupIntegrity = await syncCoreSkillsIntegrity({ root: setupRoot, apply: false, skillsRoot: path.join(setupRoot, '.agents', 'skills') });
21
+ await writeText(path.join(setupRoot, '.agents', 'skills', 'loop', 'SKILL.md'), `${renderCoreSkillTemplate('loop')}\nmutated by setup blackbox\n`);
22
+ const setupRestore = await initProject(setupRoot, { force: true, installScope: 'project', localOnly: true, globalCommand: 'sks' });
23
+ const restoredSetupText = await fs.readFile(path.join(setupRoot, '.agents', 'skills', 'loop', 'SKILL.md'), 'utf8');
24
+ assertGate(first.installed.length === 8, 'blackbox A: first sync installs missing core skills', first);
25
+ assertGate(second.installed.length === 0 && second.restored.length === 0, 'blackbox B: second sync changes nothing', second);
26
+ assertGate(third.restored.length === 1 && restoredText === renderCoreSkillTemplate('research'), 'blackbox C: managed drift restored exactly', third);
27
+ assertGate(user.skipped_user_authored.length === 1, 'blackbox D: user skill is not overwritten', user);
28
+ assertGate(setup.skill_install?.core_skill_integrity?.installed_count > 0, 'blackbox E: setup installs core skills through integrity sync', setup.skill_install);
29
+ assertGate(setupIntegrity.restored.length === 0 && setupIntegrity.skipped_user_authored.length === 0, 'blackbox F: setup-produced core skills are current', setupIntegrity);
30
+ assertGate(setupRestore.skill_install?.core_skill_integrity?.restored_count > 0 && restoredSetupText === renderCoreSkillTemplate('loop'), 'blackbox G: setup restores managed core drift through integrity sync', setupRestore.skill_install);
31
+ emitGate('core-skill:integrity-blackbox');
32
+ //# sourceMappingURL=core-skill-integrity-blackbox.js.map
@@ -0,0 +1,15 @@
1
+ #!/usr/bin/env node
2
+ import { assertGate, emitGate } from './sks-3-1-8-check-lib.js';
3
+ import { CORE_SKILL_TEMPLATE_VERSION, buildSksCoreSkillManifest, renderCoreSkillTemplate } from '../core/codex-native/core-skill-manifest.js';
4
+ import { sha256 } from '../core/fsx.js';
5
+ const manifest = buildSksCoreSkillManifest('1970-01-01T00:00:00.000Z');
6
+ assertGate(manifest.schema === 'sks.core-skill-manifest.v1', 'manifest schema mismatch', manifest);
7
+ assertGate(manifest.skills.length === 8, 'manifest must list eight immutable core skills', manifest.skills.map((skill) => skill.canonical_name));
8
+ assertGate(CORE_SKILL_TEMPLATE_VERSION === 'sks-core-skill-template.v1', 'core skill template version must be content-schema based, not package-version based', { CORE_SKILL_TEMPLATE_VERSION });
9
+ for (const skill of manifest.skills) {
10
+ const content = renderCoreSkillTemplate(skill.canonical_name);
11
+ assertGate(sha256(content) === skill.content_sha256, `content hash mismatch for ${skill.canonical_name}`, skill);
12
+ assertGate(skill.mutable_by_doctor === false && skill.mutable_by_setup === false && skill.mutable_by_update === false, 'core skill mutability flags must be false', skill);
13
+ }
14
+ emitGate('core-skill:manifest', { skills: manifest.skills.length });
15
+ //# sourceMappingURL=core-skill-manifest-check.js.map
@@ -0,0 +1,24 @@
1
+ #!/usr/bin/env node
2
+ import fs from 'node:fs/promises';
3
+ import path from 'node:path';
4
+ import { assertGate, emitGate, makeTempRoot, writeText, writeUserSkill } from './sks-3-1-8-check-lib.js';
5
+ import { syncCoreSkillsIntegrity } from '../core/codex-native/core-skill-integrity.js';
6
+ import { buildSksCoreSkillManifest, renderCoreSkillTemplate } from '../core/codex-native/core-skill-manifest.js';
7
+ import { sha256 } from '../core/fsx.js';
8
+ const root = await makeTempRoot('sks-core-no-drift-');
9
+ const skillsRoot = path.join(root, '.agents', 'skills');
10
+ const manifest = buildSksCoreSkillManifest('1970-01-01T00:00:00.000Z');
11
+ await syncCoreSkillsIntegrity({ root, apply: true, skillsRoot });
12
+ for (const skill of manifest.skills) {
13
+ const text = await fs.readFile(path.join(skillsRoot, skill.canonical_name, 'SKILL.md'), 'utf8');
14
+ assertGate(sha256(text) === skill.content_sha256, `rendered core skill drifted: ${skill.canonical_name}`, skill);
15
+ }
16
+ await writeText(path.join(skillsRoot, 'qa-loop', 'SKILL.md'), `${renderCoreSkillTemplate('qa-loop')}\n# drift\n`);
17
+ const restored = await syncCoreSkillsIntegrity({ root, apply: true, skillsRoot });
18
+ assertGate(restored.restored.length === 1, 'managed drift must be restored', restored);
19
+ const userRoot = path.join(root, 'user-skills');
20
+ await writeUserSkill(root, 'user-skills', 'loop', 'loop');
21
+ const user = await syncCoreSkillsIntegrity({ root, apply: true, skillsRoot: userRoot });
22
+ assertGate(user.skipped_user_authored.length === 1, 'user-authored same-name core skill must be preserved', user);
23
+ emitGate('core-skill:no-drift', { skills: manifest.skills.length });
24
+ //# sourceMappingURL=core-skill-no-drift-check.js.map
@@ -0,0 +1,75 @@
1
+ #!/usr/bin/env node
2
+ // @ts-nocheck
3
+ // GATE: core-skill:no-inference-optimizer
4
+ // Proves the optimizer NEVER runs in deployment/inference context: deployed-snapshot
5
+ // reads are allowed and carry route proof (skill id/version/hash), while any
6
+ // optimizer/epoch call throws a SkillDeploymentViolationError. Out of context the
7
+ // optimizer works normally.
8
+ import fs from 'node:fs';
9
+ import os from 'node:os';
10
+ import path from 'node:path';
11
+ import { assertGate, emitGate, importDist, root } from './sks-1-18-gate-lib.js';
12
+ const cardMod = await importDist('core/skills/core-skill-card.js');
13
+ const runtimeMod = await importDist('core/skills/core-skill-runtime.js');
14
+ const deployMod = await importDist('core/skills/core-skill-deployment.js');
15
+ const epochMod = await importDist('core/skills/core-skill-epoch.js');
16
+ const traceMod = await importDist('core/skills/core-rollout-trace.js');
17
+ const BODY = '## Goal\nDo the task.\n\n## Verification\nCheck output.\n\n## Rollback\nRevert on failure.\n';
18
+ const tempRoot = fs.mkdtempSync(path.join(os.tmpdir(), 'sks-no-opt-'));
19
+ const card = cardMod.createCandidateCard({ skillId: 'x', route: 'DFix', baseVersion: 0, body: BODY });
20
+ const trace = traceMod.createRolloutTrace({ route: 'DFix', backend: 'fake', proof_artifacts: [], rollback_ready: false, requested_scope_compliant: true, latency_ms: 1000, failure_reason: null });
21
+ // Enter deployment / inference context.
22
+ deployMod.setDeploymentContext(true);
23
+ process.env.SKS_SKILL_DEPLOYMENT_CONTEXT = '1';
24
+ assertGate(deployMod.isDeploymentContext() === true, 'deployment context must be active', { active: deployMod.isDeploymentContext() });
25
+ // 1) Deployment reads are allowed and never throw.
26
+ let selection = null;
27
+ let readThrew = false;
28
+ try {
29
+ await cardMod.loadDeployedSnapshot(tempRoot, 'DFix', 'x');
30
+ selection = await runtimeMod.selectRouteSkill(tempRoot, 'DFix', 'x');
31
+ }
32
+ catch {
33
+ readThrew = true;
34
+ }
35
+ assertGate(readThrew === false, 'deployment-path reads must not throw in deployment context', { readThrew });
36
+ assertGate(selection !== null, 'selectRouteSkill must return a selection', { selection });
37
+ assertGate(selection.source === 'fallback' || selection.source === 'deployed', 'selection source must be fallback or deployed', selection);
38
+ // 2) Route proof record: no optimizer invocation, and skill id/version/hash keys present (Task 4.7).
39
+ const proof = runtimeMod.skillProofRecord(selection);
40
+ assertGate(proof.optimizer_invoked === false, 'route proof must show optimizer was not invoked', proof);
41
+ assertGate('skill_id' in proof && 'version' in proof && 'hash' in proof, 'route proof must include skill_id/version/hash keys', proof);
42
+ // 3) Optimizer calls are forbidden in deployment context.
43
+ let proposeThrew = null;
44
+ try {
45
+ epochMod.proposeSkillPatch(card, [trace]);
46
+ }
47
+ catch (err) {
48
+ proposeThrew = err;
49
+ }
50
+ assertGate(proposeThrew !== null && proposeThrew.name === 'SkillDeploymentViolationError', 'proposeSkillPatch must throw SkillDeploymentViolationError in deployment context', { name: proposeThrew?.name });
51
+ let epochThrew = null;
52
+ try {
53
+ await epochMod.runSkillEpoch(tempRoot, { card, trainTraces: [trace], validation: { baselineHeldout: 0.5, candidateHeldout: 0.6, sideEffectZero: true, requestedScopeCompliant: true, proofCompletenessBaseline: 0, proofCompletenessCandidate: 1, rollbackReadyBaseline: 0, rollbackReadyCandidate: 1, latencyBaselineMs: 1000, latencyCandidateMs: 1000 } });
54
+ }
55
+ catch (err) {
56
+ epochThrew = err;
57
+ }
58
+ assertGate(epochThrew !== null && epochThrew.name === 'SkillDeploymentViolationError', 'runSkillEpoch must throw SkillDeploymentViolationError in deployment context', { name: epochThrew?.name });
59
+ // 4) Reset: out of deployment context the optimizer works (does not throw).
60
+ deployMod.setDeploymentContext(false);
61
+ delete process.env.SKS_SKILL_DEPLOYMENT_CONTEXT;
62
+ assertGate(deployMod.isDeploymentContext() === false, 'deployment context must be cleared', { active: deployMod.isDeploymentContext() });
63
+ let proposeOk = true;
64
+ try {
65
+ epochMod.proposeSkillPatch(card, [trace]);
66
+ }
67
+ catch {
68
+ proposeOk = false;
69
+ }
70
+ assertGate(proposeOk === true, 'proposeSkillPatch must not throw out of deployment context', { proposeOk });
71
+ fs.mkdirSync(path.join(root, '.sneakoscope', 'reports'), { recursive: true });
72
+ fs.writeFileSync(path.join(root, '.sneakoscope', 'reports', 'core-skill-no-inference-optimizer-check.json'), `${JSON.stringify({ gate: 'core-skill:no-inference-optimizer', source: selection.source, optimizer_invoked: proof.optimizer_invoked, proof_keys: Object.keys(proof) }, null, 2)}\n`);
73
+ fs.rmSync(tempRoot, { recursive: true, force: true });
74
+ emitGate('core-skill:no-inference-optimizer', { deployment_read_allowed: true, optimizer_forbidden_in_deployment: true, route_proof_has_id_version_hash: 'skill_id' in proof && 'version' in proof && 'hash' in proof, optimizer_runs_out_of_context: proposeOk });
75
+ //# sourceMappingURL=core-skill-no-inference-optimizer-check.js.map
@@ -0,0 +1,79 @@
1
+ #!/usr/bin/env node
2
+ // @ts-nocheck
3
+ // GATE: core-skill:patch
4
+ // Proves a SkillPatch edits ONLY the single skill document within the textual
5
+ // learning-rate budget, and rejects budget overruns, external/code targets, and
6
+ // cross-skill (multi-doc) edits.
7
+ import fs from 'node:fs';
8
+ import path from 'node:path';
9
+ import { assertGate, emitGate, importDist, root, readJson } from './sks-1-18-gate-lib.js';
10
+ const cardMod = await importDist('core/skills/core-skill-card.js');
11
+ const patchMod = await importDist('core/skills/core-skill-patch.js');
12
+ const applyMod = await importDist('core/skills/core-skill-patch-apply.js');
13
+ const typesMod = await importDist('core/skills/core-skill-types.js');
14
+ const BODY = '## Goal\nDo the task.\n\n## Verification\nCheck output.\n\n## Rollback\nRevert on failure.\n';
15
+ // Base card at version N (createCandidateCard from baseVersion 2 -> version 3).
16
+ const baseCard = cardMod.createCandidateCard({ skillId: 'demo-skill', route: 'DFix', baseVersion: 2, body: BODY });
17
+ const N = baseCard.version;
18
+ // 1) Valid patch within budget: one small add to the verification section.
19
+ const validPatch = {
20
+ schema: typesMod.CORE_SKILL_PATCH_SCHEMA,
21
+ skill_id: 'demo-skill',
22
+ base_version: N,
23
+ operations: [{ op: 'add', target: 'section:verification', text: '- Confirm exit code is zero.' }],
24
+ textual_learning_rate: { max_added_chars: 800, max_deleted_chars: 400, max_replaced_chars: 600 }
25
+ };
26
+ const validRes = patchMod.validatePatch(validPatch, baseCard);
27
+ assertGate(validRes.ok === true, 'valid in-budget patch must pass validatePatch', validRes);
28
+ const applied = applyMod.applyPatch(baseCard, validPatch);
29
+ assertGate(applied.ok === true, 'valid patch must apply', applied);
30
+ assertGate(applied.candidate && applied.candidate.body !== baseCard.body, 'applied patch must change the candidate body', { changed: applied.candidate?.body !== baseCard.body });
31
+ assertGate(applied.before_hash !== applied.after_hash, 'applied patch must change the body hash', { before: applied.before_hash, after: applied.after_hash });
32
+ // 2) Budget overrun: add text longer than max_added_chars.
33
+ const overPatch = {
34
+ schema: typesMod.CORE_SKILL_PATCH_SCHEMA,
35
+ skill_id: 'demo-skill',
36
+ base_version: N,
37
+ operations: [{ op: 'add', target: 'section:verification', text: 'x'.repeat(50) }],
38
+ textual_learning_rate: { max_added_chars: 10, max_deleted_chars: 400, max_replaced_chars: 600 }
39
+ };
40
+ const overRes = patchMod.validatePatch(overPatch, baseCard);
41
+ assertGate(overRes.ok === false && overRes.blockers.includes('budget_added_chars_exceeded'), 'over-budget add must be blocked by budget_added_chars_exceeded', overRes);
42
+ // 3) Code/external target reject.
43
+ const externalPatch = {
44
+ schema: typesMod.CORE_SKILL_PATCH_SCHEMA,
45
+ skill_id: 'demo-skill',
46
+ base_version: N,
47
+ operations: [{ op: 'add', target: 'section:../../src/evil.ts', text: 'pwned' }],
48
+ textual_learning_rate: { max_added_chars: 800, max_deleted_chars: 400, max_replaced_chars: 600 }
49
+ };
50
+ const externalRes = patchMod.validatePatch(externalPatch, baseCard);
51
+ const externalBlocked = externalRes.ok === false && externalRes.blockers.some((b) => b.startsWith('patch_target_is_external') || b.startsWith('patch_target_invalid'));
52
+ assertGate(externalBlocked, 'external/code target must be rejected', externalRes);
53
+ const filePatch = {
54
+ schema: typesMod.CORE_SKILL_PATCH_SCHEMA,
55
+ skill_id: 'demo-skill',
56
+ base_version: N,
57
+ operations: [{ op: 'add', target: 'file:src/x.ts', text: 'pwned' }],
58
+ textual_learning_rate: { max_added_chars: 800, max_deleted_chars: 400, max_replaced_chars: 600 }
59
+ };
60
+ const fileRes = patchMod.validatePatch(filePatch, baseCard);
61
+ const fileBlocked = fileRes.ok === false && fileRes.blockers.some((b) => b.startsWith('patch_target_is_external') || b.startsWith('patch_target_invalid'));
62
+ assertGate(fileBlocked, 'file:-targeted patch must be rejected', fileRes);
63
+ // 4) Multi-doc / other-skill reject (same base_version so the only difference is skill_id).
64
+ const otherSkillPatch = {
65
+ schema: typesMod.CORE_SKILL_PATCH_SCHEMA,
66
+ skill_id: 'a-different-skill',
67
+ base_version: N,
68
+ operations: [{ op: 'add', target: 'section:verification', text: '- hi' }],
69
+ textual_learning_rate: { max_added_chars: 800, max_deleted_chars: 400, max_replaced_chars: 600 }
70
+ };
71
+ const otherRes = patchMod.validatePatch(otherSkillPatch, baseCard);
72
+ assertGate(otherRes.ok === false && otherRes.blockers.includes('patch_targets_other_skill'), 'patch for another skill must be blocked by patch_targets_other_skill', otherRes);
73
+ // 5) Checked-in patch schema parses and const matches the runtime contract.
74
+ const patchSchema = readJson('schemas/skills/core-skill-patch.schema.json');
75
+ assertGate(patchSchema.properties?.schema?.const === typesMod.CORE_SKILL_PATCH_SCHEMA, 'patch schema const must match CORE_SKILL_PATCH_SCHEMA', { const: patchSchema.properties?.schema?.const, expected: typesMod.CORE_SKILL_PATCH_SCHEMA });
76
+ fs.mkdirSync(path.join(root, '.sneakoscope', 'reports'), { recursive: true });
77
+ fs.writeFileSync(path.join(root, '.sneakoscope', 'reports', 'core-skill-patch-check.json'), `${JSON.stringify({ gate: 'core-skill:patch', valid_added_chars: validRes.added_chars, schema_const: patchSchema.properties?.schema?.const }, null, 2)}\n`);
78
+ emitGate('core-skill:patch', { valid_patch_applies: applied.ok, budget_enforced: true, external_target_rejected: externalBlocked && fileBlocked, other_skill_rejected: true });
79
+ //# sourceMappingURL=core-skill-patch-check.js.map
@@ -0,0 +1,64 @@
1
+ #!/usr/bin/env node
2
+ // @ts-nocheck
3
+ // core-skill:promotion-side-effect-ledger (1.20.2 Area 3.3).
4
+ //
5
+ // Proves release-owned skill snapshot promotion is recorded in the mutation
6
+ // ledger as a 'skill_snapshot_promotion' entry with a backup/rollback pointer,
7
+ // and that ledger write failure blocks deployment instead of succeeding.
8
+ import fs from 'node:fs';
9
+ import os from 'node:os';
10
+ import path from 'node:path';
11
+ import { assertGate, emitGate, importDist } from './sks-1-18-gate-lib.js';
12
+ const { createCandidateCard, routeSkillId } = await importDist('core/skills/core-skill-card.js');
13
+ const { promoteToDeployedWithLedger, promoteToDeployedLegacyForCompatibility } = await importDist('core/skills/core-skill-deployment.js');
14
+ const { createRequestedScopeContract } = await importDist('core/safety/requested-scope-contract.js');
15
+ const { mutationLedgerPath } = await importDist('core/safety/mutation-ledger.js');
16
+ const root = fs.mkdtempSync(path.join(os.tmpdir(), 'sks-skill-promo-'));
17
+ const route = '$DFix';
18
+ const skillId = routeSkillId(route);
19
+ const contract = createRequestedScopeContract({
20
+ route: 'skill-promotion', userRequest: 'deploy accepted skill', projectRoot: root,
21
+ overrides: { skill_snapshot_promotion: true }
22
+ });
23
+ // First deploy (no previous snapshot → no backup, uses no_op reason).
24
+ const c1 = { ...createCandidateCard({ skillId, route, baseVersion: 0, body: 'v1 body' }), status: 'accepted' };
25
+ const p1 = await promoteToDeployedWithLedger(root, c1, { contract, context: 'release' });
26
+ assertGate(p1.ok === true, 'first promotion must succeed', { p1 });
27
+ // Second deploy (higher version) → archives previous as the rollback pointer.
28
+ const c2 = { ...createCandidateCard({ skillId, route, baseVersion: 1, body: 'v2 body' }), status: 'accepted' };
29
+ const p2 = await promoteToDeployedWithLedger(root, c2, { contract, context: 'release' });
30
+ assertGate(p2.ok === true, 'second promotion must succeed', { p2 });
31
+ assertGate(typeof p2.archived_path === 'string' && p2.archived_path.length > 0, 'second promotion must produce a rollback pointer (archived_path)', { p2 });
32
+ // Ledger must contain skill_snapshot_promotion entries, none in violation, the
33
+ // versioned one carrying the archived backup_path.
34
+ const ledgerText = fs.readFileSync(mutationLedgerPath(root), 'utf8');
35
+ const entries = ledgerText.split('\n').filter(Boolean).map((l) => JSON.parse(l));
36
+ const promotions = entries.filter((e) => e.kind === 'skill_snapshot_promotion');
37
+ assertGate(promotions.length >= 2, 'each promotion must be recorded in the mutation ledger', { count: promotions.length });
38
+ assertGate(promotions.every((e) => e.violation === false), 'in-scope confirmed promotions must not be violations', { promotions });
39
+ assertGate(promotions.some((e) => e.backup_path && /deployed-history/.test(String(e.backup_path))), 'a promotion entry must reference the archived rollback pointer', { promotions });
40
+ // Release-owned ledger failure must block the deployment and roll back the pointer.
41
+ const ledgerFailureRoot = fs.mkdtempSync(path.join(os.tmpdir(), 'sks-skill-promo-ledgerfail-'));
42
+ const ledgerBlocker = path.join(ledgerFailureRoot, 'not-a-dir');
43
+ fs.writeFileSync(ledgerBlocker, 'block ledger directory creation');
44
+ const cFail = { ...createCandidateCard({ skillId, route, baseVersion: 0, body: 'ledger fail body' }), status: 'accepted' };
45
+ const pFail = await promoteToDeployedWithLedger(ledgerFailureRoot, cFail, { contract, context: 'release', ledgerRoot: ledgerBlocker });
46
+ assertGate(pFail.ok === false && pFail.blockers.some((b) => String(b).startsWith('promotion_ledger_write_failed')), 'ledger write failure must hard-fail release promotion', { pFail });
47
+ assertGate(!fs.existsSync(path.join(ledgerFailureRoot, '.sneakoscope', 'skills', routeSkillId(route), skillId, 'deployed.json')), 'failed first deployment must not leave deployed snapshot behind', { pFail });
48
+ // Regression: explicit legacy wrapper remains available only for compatibility fixtures.
49
+ const fresh = fs.mkdtempSync(path.join(os.tmpdir(), 'sks-skill-promo-2arg-'));
50
+ const c3 = { ...createCandidateCard({ skillId, route, baseVersion: 0, body: 'b' }), status: 'accepted' };
51
+ const p3 = await promoteToDeployedLegacyForCompatibility(fresh, c3);
52
+ assertGate(p3.ok === true && p3.snapshot !== null, 'legacy compatibility promotion must still return ok', { p3 });
53
+ assertGate(!fs.existsSync(mutationLedgerPath(fresh)), 'legacy compatibility promotion must not write a ledger', {});
54
+ fs.rmSync(root, { recursive: true, force: true });
55
+ fs.rmSync(fresh, { recursive: true, force: true });
56
+ fs.rmSync(ledgerFailureRoot, { recursive: true, force: true });
57
+ emitGate('core-skill:promotion-side-effect-ledger', {
58
+ promotions: promotions.length,
59
+ rollback_pointer: true,
60
+ two_arg_safe: true,
61
+ ledger_failure_hard_fail: true,
62
+ legacy_wrapper_safe: true
63
+ });
64
+ //# sourceMappingURL=core-skill-promotion-side-effect-ledger-check.js.map
@@ -0,0 +1,72 @@
1
+ #!/usr/bin/env node
2
+ // @ts-nocheck
3
+ // GATE: core-skill:rollout-scoring
4
+ // Proves the rollout scorer rewards proof + zero side effects, treats a
5
+ // requested-scope/side-effect violation as a hard fail, and persists a score report.
6
+ import fs from 'node:fs';
7
+ import os from 'node:os';
8
+ import path from 'node:path';
9
+ import { assertGate, emitGate, importDist, root, exists } from './sks-1-18-gate-lib.js';
10
+ const traceMod = await importDist('core/skills/core-rollout-trace.js');
11
+ const scorerMod = await importDist('core/skills/core-skill-scorer.js');
12
+ const tempRoot = fs.mkdtempSync(path.join(os.tmpdir(), 'sks-rollout-score-'));
13
+ // 1) Clean rollout: proof present, no side effects, rollback ready, scope compliant.
14
+ const cleanTrace = traceMod.createRolloutTrace({
15
+ route: 'DFix',
16
+ backend: 'fake',
17
+ prompt: 'fix the bug',
18
+ proof_artifacts: ['p.json'],
19
+ side_effect_ledger: [],
20
+ rollback_ready: true,
21
+ requested_scope_compliant: true,
22
+ latency_ms: 1000,
23
+ failure_reason: null
24
+ });
25
+ const cleanScore = scorerMod.scoreRollout(cleanTrace);
26
+ assertGate(cleanScore.score > 0, 'clean rollout score must be positive', cleanScore);
27
+ assertGate(cleanScore.side_effect_violation === false, 'clean rollout must not be a side-effect violation', cleanScore);
28
+ assertGate(cleanScore.components.proof_completeness === 1, 'clean rollout proof_completeness must be 1', cleanScore.components);
29
+ assertGate(cleanScore.components.side_effect_zero === 1, 'clean rollout side_effect_zero must be 1', cleanScore.components);
30
+ // 2) Side-effect violation: out-of-scope global write is a HARD fail.
31
+ const violationTrace = traceMod.createRolloutTrace({
32
+ route: 'DFix',
33
+ backend: 'fake',
34
+ prompt: 'fix the bug',
35
+ proof_artifacts: ['p.json'],
36
+ side_effect_ledger: ['global_config_write'],
37
+ rollback_ready: true,
38
+ requested_scope_compliant: false,
39
+ latency_ms: 1000,
40
+ failure_reason: null
41
+ });
42
+ const violationScore = scorerMod.scoreRollout(violationTrace);
43
+ assertGate(violationScore.side_effect_violation === true, 'out-of-scope rollout must flag side_effect_violation', violationScore);
44
+ assertGate(violationScore.score < 0, 'side-effect violation must drive score negative (hard fail)', violationScore);
45
+ // 3) Proof-less success scores lower (proof_completeness 0).
46
+ const prooflessTrace = traceMod.createRolloutTrace({
47
+ route: 'DFix',
48
+ backend: 'fake',
49
+ prompt: 'fix the bug',
50
+ proof_artifacts: [],
51
+ side_effect_ledger: [],
52
+ rollback_ready: true,
53
+ requested_scope_compliant: true,
54
+ latency_ms: 1000,
55
+ failure_reason: null
56
+ });
57
+ const prooflessScore = scorerMod.scoreRollout(prooflessTrace);
58
+ assertGate(prooflessScore.components.proof_completeness === 0, 'proof-less rollout proof_completeness must be 0', prooflessScore.components);
59
+ assertGate(prooflessScore.score < cleanScore.score, 'proof-less rollout must score lower than clean rollout', { proofless: prooflessScore.score, clean: cleanScore.score });
60
+ // 4) Baseline vs candidate aggregate comparison.
61
+ const cleanAgg = scorerMod.scoreRollouts([cleanTrace]);
62
+ const prooflessAgg = scorerMod.scoreRollouts([prooflessTrace]);
63
+ assertGate(cleanAgg.score > prooflessAgg.score, 'aggregate clean score must beat aggregate proof-less score', { clean: cleanAgg.score, proofless: prooflessAgg.score });
64
+ // 5) Persist the score report and confirm the artifact exists under a temp root.
65
+ const writtenPath = await scorerMod.writeRolloutScore(tempRoot, cleanScore);
66
+ assertGate(fs.existsSync(writtenPath), 'writeRolloutScore must create the report file', { writtenPath });
67
+ assertGate(fs.existsSync(path.join(tempRoot, '.sneakoscope', 'reports', 'core-skill-rollout-score.json')), 'report must live at .sneakoscope/reports/core-skill-rollout-score.json', { tempRoot });
68
+ fs.mkdirSync(path.join(root, '.sneakoscope', 'reports'), { recursive: true });
69
+ fs.writeFileSync(path.join(root, '.sneakoscope', 'reports', 'core-skill-rollout-scoring-check.json'), `${JSON.stringify({ gate: 'core-skill:rollout-scoring', clean_score: cleanScore.score, violation_score: violationScore.score, proofless_score: prooflessScore.score }, null, 2)}\n`);
70
+ fs.rmSync(tempRoot, { recursive: true, force: true });
71
+ emitGate('core-skill:rollout-scoring', { clean_score: cleanScore.score, violation_hard_fail: violationScore.score < 0, proofless_lower: prooflessScore.score < cleanScore.score, report_written: exists('.sneakoscope/reports/core-skill-rollout-scoring-check.json') });
72
+ //# sourceMappingURL=core-skill-rollout-scoring-check.js.map
@@ -0,0 +1,49 @@
1
+ #!/usr/bin/env node
2
+ // @ts-nocheck
3
+ // core-skill:route-runtime-integration (1.20.2 Area 3.1).
4
+ //
5
+ // Proves the route runtime reads the deployed Core Skill snapshot and records it
6
+ // in proof: (1) selectRouteSkill returns source:'deployed' + optimizer_invoked:false
7
+ // for a deployed snapshot, (2) a missing snapshot is a graceful 'fallback' with a
8
+ // warning (route still runs), and (3) the agent-proof-evidence builder emits the
9
+ // selected_core_skill field.
10
+ import fs from 'node:fs';
11
+ import os from 'node:os';
12
+ import path from 'node:path';
13
+ import { assertGate, emitGate, importDist } from './sks-1-18-gate-lib.js';
14
+ const { createCandidateCard, routeSkillId } = await importDist('core/skills/core-skill-card.js');
15
+ const { promoteToDeployedWithLedger } = await importDist('core/skills/core-skill-deployment.js');
16
+ const { selectRouteSkill, skillProofRecord } = await importDist('core/skills/core-skill-runtime.js');
17
+ const { createRequestedScopeContract } = await importDist('core/safety/requested-scope-contract.js');
18
+ const root = fs.mkdtempSync(path.join(os.tmpdir(), 'sks-skill-rt-'));
19
+ const route = '$Agent';
20
+ const skillId = routeSkillId(route);
21
+ const promotionContract = createRequestedScopeContract({
22
+ route: 'core-skill-route-runtime-integration',
23
+ userRequest: 'release gate fixture skill promotion',
24
+ projectRoot: root,
25
+ overrides: { skill_snapshot_promotion: true }
26
+ });
27
+ // Missing snapshot → graceful fallback.
28
+ const missing = await selectRouteSkill(root, route, skillId);
29
+ assertGate(missing.source === 'fallback', 'missing snapshot must be a graceful fallback', { missing });
30
+ assertGate(typeof missing.warning === 'string' && missing.warning.length > 0, 'missing snapshot must carry a warning', { missing });
31
+ // Deploy a snapshot, then select it.
32
+ const candidate = createCandidateCard({ skillId, route, baseVersion: 0, body: 'Route skill body.' });
33
+ const accepted = { ...candidate, status: 'accepted' };
34
+ const promoted = await promoteToDeployedWithLedger(root, accepted, { contract: promotionContract, context: 'release' });
35
+ assertGate(promoted.ok === true, 'ledger promotion must succeed', { promoted });
36
+ const selection = await selectRouteSkill(root, route, skillId);
37
+ assertGate(selection.source === 'deployed', 'deployed snapshot must be selected', { selection });
38
+ assertGate(typeof selection.instruction === 'string', 'deployed selection must carry an instruction fragment', { selection });
39
+ const proof = skillProofRecord(selection);
40
+ assertGate(proof.optimizer_invoked === false, 'route skill selection must never invoke the optimizer', { proof });
41
+ assertGate(proof.skill_id === skillId && typeof proof.hash === 'string', 'proof record must carry skill_id + hash', { proof });
42
+ // The agent-proof-evidence builder must surface a selected_core_skill field.
43
+ const evidenceSource = fs.readFileSync(path.join(process.cwd(), 'src/core/agents/agent-proof-evidence.ts'), 'utf8');
44
+ assertGate(/selected_core_skill\s*:/.test(evidenceSource), 'agent-proof-evidence must emit selected_core_skill', {});
45
+ const orchestratorSource = fs.readFileSync(path.join(process.cwd(), 'src/core/agents/agent-orchestrator.ts'), 'utf8');
46
+ assertGate(/selectRouteSkill\(/.test(orchestratorSource) && /selectedCoreSkill/.test(orchestratorSource), 'orchestrator must wire selectRouteSkill into the proof', {});
47
+ fs.rmSync(root, { recursive: true, force: true });
48
+ emitGate('core-skill:route-runtime-integration', { route, skill_id: skillId, deployed_selected: true, fallback_graceful: true });
49
+ //# sourceMappingURL=core-skill-route-runtime-integration-check.js.map