@ccoalm/ccl-skills 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (561) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +49 -0
  3. package/dist/assets/marketplace/.agents/plugins/marketplace.json +12 -0
  4. package/dist/assets/marketplace/.claude-plugin/marketplace.json +13 -0
  5. package/dist/assets/marketplace/marketplace-manifest.json +12 -0
  6. package/dist/assets/marketplace/plugins/ccl-skills/.claude-plugin/marketplace.json +16 -0
  7. package/dist/assets/marketplace/plugins/ccl-skills/.claude-plugin/plugin.json +5 -0
  8. package/dist/assets/marketplace/plugins/ccl-skills/.codex-plugin/plugin.json +5 -0
  9. package/dist/assets/marketplace/plugins/ccl-skills/.worktree-only +3 -0
  10. package/dist/assets/marketplace/plugins/ccl-skills/agent-context/session-start.md +45 -0
  11. package/dist/assets/marketplace/plugins/ccl-skills/agent-context/subagent-start.md +12 -0
  12. package/dist/assets/marketplace/plugins/ccl-skills/hooks/AGENTS.md +19 -0
  13. package/dist/assets/marketplace/plugins/ccl-skills/hooks/guard-delegation-owner.sh +125 -0
  14. package/dist/assets/marketplace/plugins/ccl-skills/hooks/guard-edit-isolation.sh +102 -0
  15. package/dist/assets/marketplace/plugins/ccl-skills/hooks/guard-merge-authorization.sh +1156 -0
  16. package/dist/assets/marketplace/plugins/ccl-skills/hooks/hooks.json +131 -0
  17. package/dist/assets/marketplace/plugins/ccl-skills/hooks/merge-authorization-prompt.sh +142 -0
  18. package/dist/assets/marketplace/plugins/ccl-skills/hooks/owner-dispatch-guard.sh +12 -0
  19. package/dist/assets/marketplace/plugins/ccl-skills/hooks/owner-dispatch-stop.sh +13 -0
  20. package/dist/assets/marketplace/plugins/ccl-skills/hooks/remind-post-merge-cleanup.sh +144 -0
  21. package/dist/assets/marketplace/plugins/ccl-skills/hooks/session-context.sh +87 -0
  22. package/dist/assets/marketplace/plugins/ccl-skills/hooks/session-start.sh +86 -0
  23. package/dist/assets/marketplace/plugins/ccl-skills/hooks/skill-extraction-gate-stop.sh +69 -0
  24. package/dist/assets/marketplace/plugins/ccl-skills/hooks/subagent-start.sh +26 -0
  25. package/dist/assets/marketplace/plugins/ccl-skills/hooks/test_guard_delegation_owner.sh +329 -0
  26. package/dist/assets/marketplace/plugins/ccl-skills/hooks/test_guard_edit_isolation.sh +322 -0
  27. package/dist/assets/marketplace/plugins/ccl-skills/hooks/test_guard_merge_authorization.sh +902 -0
  28. package/dist/assets/marketplace/plugins/ccl-skills/hooks/test_merge_authorization_prompt.sh +178 -0
  29. package/dist/assets/marketplace/plugins/ccl-skills/hooks/test_remind_post_merge_cleanup.sh +121 -0
  30. package/dist/assets/marketplace/plugins/ccl-skills/hooks/test_session_start.sh +170 -0
  31. package/dist/assets/marketplace/plugins/ccl-skills/packages/opencode-plugin/AGENTS.md +17 -0
  32. package/dist/assets/marketplace/plugins/ccl-skills/packages/opencode-plugin/ccl-skills.ts +564 -0
  33. package/dist/assets/marketplace/plugins/ccl-skills/packages/opencode-plugin/commands/ccl-install-skills.md +14 -0
  34. package/dist/assets/marketplace/plugins/ccl-skills/packages/opencode-plugin/commands/ccl-update-skills.md +44 -0
  35. package/dist/assets/marketplace/plugins/ccl-skills/packages/opencode-plugin/commands/ccl-verify-skills.md +109 -0
  36. package/dist/assets/marketplace/plugins/ccl-skills/packages/opencode-plugin/commands/ccl-worktree-check.md +36 -0
  37. package/dist/assets/marketplace/plugins/ccl-skills/scripts/owner-dispatch/AGENTS.md +28 -0
  38. package/dist/assets/marketplace/plugins/ccl-skills/scripts/owner-dispatch/README.md +276 -0
  39. package/dist/assets/marketplace/plugins/ccl-skills/scripts/owner-dispatch/owner-dispatch.example.json +10 -0
  40. package/dist/assets/marketplace/plugins/ccl-skills/scripts/owner-dispatch/owner-dispatch.sh +1307 -0
  41. package/dist/assets/marketplace/plugins/ccl-skills/scripts/owner-dispatch/test.sh +941 -0
  42. package/dist/assets/marketplace/plugins/ccl-skills/skills/agents-file-coverage-gate/SKILL.md +45 -0
  43. package/dist/assets/marketplace/plugins/ccl-skills/skills/agents-file-coverage-gate/agents/openai.yaml +4 -0
  44. package/dist/assets/marketplace/plugins/ccl-skills/skills/app-cross-platform-dev/SKILL.md +188 -0
  45. package/dist/assets/marketplace/plugins/ccl-skills/skills/app-cross-platform-dev/agents/openai.yaml +4 -0
  46. package/dist/assets/marketplace/plugins/ccl-skills/skills/app-cross-platform-dev/references/android-dev.md +92 -0
  47. package/dist/assets/marketplace/plugins/ccl-skills/skills/app-cross-platform-dev/references/flutter-dev.md +80 -0
  48. package/dist/assets/marketplace/plugins/ccl-skills/skills/app-cross-platform-dev/references/ios-dev.md +72 -0
  49. package/dist/assets/marketplace/plugins/ccl-skills/skills/app-cross-platform-dev/references/kotlin-multiplatform.md +93 -0
  50. package/dist/assets/marketplace/plugins/ccl-skills/skills/app-cross-platform-dev/references/mobile-platform-boundaries.md +77 -0
  51. package/dist/assets/marketplace/plugins/ccl-skills/skills/app-cross-platform-dev/references/mobile-quality-release.md +77 -0
  52. package/dist/assets/marketplace/plugins/ccl-skills/skills/app-cross-platform-dev/references/source-evidence-map.md +64 -0
  53. package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/SKILL.md +353 -0
  54. package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/agents/openai.yaml +4 -0
  55. package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/references/client-routing.md +419 -0
  56. package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/references/manual-invocation-and-prompts.md +126 -0
  57. package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/references/staged-review-contract.md +197 -0
  58. package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/references/timeout-auth-and-capabilities.md +179 -0
  59. package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/AGENTS.md +98 -0
  60. package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/classify_envelope.py +93 -0
  61. package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/classify_timeout_exit.sh +15 -0
  62. package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/claude_review.sh +1438 -0
  63. package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/codex_review.sh +324 -0
  64. package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/concern_excerpt.py +295 -0
  65. package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/egress_schema.py +214 -0
  66. package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/init_policy_matrix.py +642 -0
  67. package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/kimi_packet_mcp.py +181 -0
  68. package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/kimi_review.sh +1165 -0
  69. package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/opencode_review.sh +1190 -0
  70. package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/parse_cli_review.py +946 -0
  71. package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/parse_opencode_review.py +474 -0
  72. package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/parse_probe_result.py +1899 -0
  73. package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/parse_review_json.py +200 -0
  74. package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/review_gate.py +2845 -0
  75. package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/review_gate.sh +6 -0
  76. package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/run_claude_capture.py +71 -0
  77. package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/runtime-surface-verification-design.md +53 -0
  78. package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/test_classify_envelope.sh +68 -0
  79. package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/test_claude_review_probe.sh +2311 -0
  80. package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/test_cli_review_wrappers.sh +1832 -0
  81. package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/test_code_review_identity.sh +73 -0
  82. package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/test_concern_excerpt.sh +245 -0
  83. package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/test_egress_schema.sh +177 -0
  84. package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/test_init_policy_matrix.sh +272 -0
  85. package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/test_kimi_packet_mcp.py +195 -0
  86. package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/test_opencode_review_concurrency.sh +120 -0
  87. package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/test_opencode_review_retry.sh +1005 -0
  88. package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/test_parse_opencode_review.sh +258 -0
  89. package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/test_parse_probe_result.sh +574 -0
  90. package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/test_parse_review_json.sh +349 -0
  91. package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/test_review_client_compat.py +434 -0
  92. package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/test_review_client_order.sh +264 -0
  93. package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/test_review_gate.sh +2412 -0
  94. package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/verify_native_skill_binding.py +123 -0
  95. package/dist/assets/marketplace/plugins/ccl-skills/skills/defect-diagnosis/SKILL.md +153 -0
  96. package/dist/assets/marketplace/plugins/ccl-skills/skills/defect-diagnosis/agents/openai.yaml +4 -0
  97. package/dist/assets/marketplace/plugins/ccl-skills/skills/defect-diagnosis/references/diagnosis-playbook.md +54 -0
  98. package/dist/assets/marketplace/plugins/ccl-skills/skills/defect-diagnosis/references/prevention-routing.md +36 -0
  99. package/dist/assets/marketplace/plugins/ccl-skills/skills/feature-risk-router/SKILL.md +69 -0
  100. package/dist/assets/marketplace/plugins/ccl-skills/skills/feature-risk-router/agents/openai.yaml +4 -0
  101. package/dist/assets/marketplace/plugins/ccl-skills/skills/feature-risk-router/references/security-review-gate.md +41 -0
  102. package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/SKILL.md +165 -0
  103. package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/agents/openai.yaml +4 -0
  104. package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/api-security-boundaries.md +47 -0
  105. package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/architecture-playbook.md +160 -0
  106. package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/artifact-generation-architecture.md +37 -0
  107. package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/audit-history-architecture.md +29 -0
  108. package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/bulk-workflow-architecture.md +33 -0
  109. package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/config-rule-routing-architecture.md +34 -0
  110. package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/cross-cutting-concerns.md +72 -0
  111. package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/data-modeling-and-migrations.md +79 -0
  112. package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/data-platform-architecture.md +210 -0
  113. package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/dependency-platform.md +105 -0
  114. package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/developer-tooling-architecture.md +38 -0
  115. package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/error-contract-architecture.md +36 -0
  116. package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/event-driven-architecture.md +260 -0
  117. package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/http-gateway-architecture.md +74 -0
  118. package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/mq-consumer-architecture.md +38 -0
  119. package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/multi-tenant-isolation.md +275 -0
  120. package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/notification-architecture.md +25 -0
  121. package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/ops-checklist.md +57 -0
  122. package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/performance-capacity-architecture.md +38 -0
  123. package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/protobuf-contract-architecture.md +119 -0
  124. package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/redis-cache-coordination.md +93 -0
  125. package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/release-runtime-readiness.md +65 -0
  126. package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/replay-comparison-architecture.md +26 -0
  127. package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/runtime-observability.md +94 -0
  128. package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/service-scaffold.md +76 -0
  129. package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/source-evidence-map.md +55 -0
  130. package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/workflow-state-architecture.md +38 -0
  131. package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/SKILL.md +159 -0
  132. package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/agents/openai.yaml +4 -0
  133. package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/artifact-generation-patterns.md +37 -0
  134. package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/audit-history-patterns.md +28 -0
  135. package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/bulk-import-export-patterns.md +56 -0
  136. package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/config-rule-routing-patterns.md +38 -0
  137. package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/data-access-patterns.md +55 -0
  138. package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/db-schema-and-dal-patterns.md +109 -0
  139. package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/dependency-client-patterns.md +130 -0
  140. package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/developer-tooling-patterns.md +70 -0
  141. package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/domain-feature-patterns.md +78 -0
  142. package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/engineering-patterns.md +119 -0
  143. package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/error-contract-patterns.md +55 -0
  144. package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/feature-playbook.md +61 -0
  145. package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/http-gateway-client-patterns.md +76 -0
  146. package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/mq-consumer-patterns.md +55 -0
  147. package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/notification-patterns.md +42 -0
  148. package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/observability-implementation-patterns.md +101 -0
  149. package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/performance-capacity-patterns.md +44 -0
  150. package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/protobuf-contract-patterns.md +72 -0
  151. package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/public-api-integration-patterns.md +56 -0
  152. package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/quality-and-testing-patterns.md +91 -0
  153. package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/redis-cache-lock-patterns.md +123 -0
  154. package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/release-ops-patterns.md +112 -0
  155. package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/reliability-patterns.md +83 -0
  156. package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/replay-comparison-patterns.md +32 -0
  157. package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/scaffold-and-codegen.md +86 -0
  158. package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/source-evidence-map.md +54 -0
  159. package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/state-machine-task-patterns.md +45 -0
  160. package/dist/assets/marketplace/plugins/ccl-skills/skills/grill-me/SKILL.md +80 -0
  161. package/dist/assets/marketplace/plugins/ccl-skills/skills/grill-me/agents/openai.yaml +4 -0
  162. package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/SKILL.md +117 -0
  163. package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/agents/openai.yaml +4 -0
  164. package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/references/agent-approval-auto-reviewer.md +106 -0
  165. package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/references/agent-command-sandbox.md +441 -0
  166. package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/references/agent-context-freshness.md +47 -0
  167. package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/references/agent-credentials-auth.md +13 -0
  168. package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/references/agent-extensions-skills.md +13 -0
  169. package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/references/agent-file-edit-protocol.md +129 -0
  170. package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/references/agent-ide-integration.md +5 -0
  171. package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/references/agent-input-ingestion.md +13 -0
  172. package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/references/agent-instruction-composition.md +13 -0
  173. package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/references/agent-lifecycle-hooks.md +92 -0
  174. package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/references/agent-messaging.md +5 -0
  175. package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/references/agent-runtime-bootstrap.md +5 -0
  176. package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/references/agent-session-persistence.md +448 -0
  177. package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/references/agent-task-orchestration.md +13 -0
  178. package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/references/agent-tool-dispatch.md +123 -0
  179. package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/references/agent-turn-lifecycle.md +131 -0
  180. package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/references/inference-capacity-operations.md +162 -0
  181. package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/references/llm-client-gateway.md +156 -0
  182. package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/references/model-prompt-evaluation.md +146 -0
  183. package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/references/retrieval-agent-safety.md +273 -0
  184. package/dist/assets/marketplace/plugins/ccl-skills/skills/miniapp-product-dev/SKILL.md +202 -0
  185. package/dist/assets/marketplace/plugins/ccl-skills/skills/miniapp-product-dev/agents/openai.yaml +4 -0
  186. package/dist/assets/marketplace/plugins/ccl-skills/skills/miniapp-product-dev/references/contracts-and-state.md +62 -0
  187. package/dist/assets/marketplace/plugins/ccl-skills/skills/miniapp-product-dev/references/cross-stack-alignment.md +94 -0
  188. package/dist/assets/marketplace/plugins/ccl-skills/skills/miniapp-product-dev/references/framework-choice.md +76 -0
  189. package/dist/assets/marketplace/plugins/ccl-skills/skills/miniapp-product-dev/references/online-practice-uptake.md +56 -0
  190. package/dist/assets/marketplace/plugins/ccl-skills/skills/miniapp-product-dev/references/platform-capabilities.md +91 -0
  191. package/dist/assets/marketplace/plugins/ccl-skills/skills/miniapp-product-dev/references/product-page-checklist.md +40 -0
  192. package/dist/assets/marketplace/plugins/ccl-skills/skills/miniapp-product-dev/references/qa-release.md +72 -0
  193. package/dist/assets/marketplace/plugins/ccl-skills/skills/miniapp-product-dev/references/source-evidence-map.md +82 -0
  194. package/dist/assets/marketplace/plugins/ccl-skills/skills/multi-agent-delegation/SKILL.md +103 -0
  195. package/dist/assets/marketplace/plugins/ccl-skills/skills/multi-agent-delegation/agents/openai.yaml +5 -0
  196. package/dist/assets/marketplace/plugins/ccl-skills/skills/multi-agent-delegation/references/multi-agent-delegation-playbook.md +100 -0
  197. package/dist/assets/marketplace/plugins/ccl-skills/skills/multi-perspective-research/SKILL.md +70 -0
  198. package/dist/assets/marketplace/plugins/ccl-skills/skills/multi-perspective-research/agents/openai.yaml +4 -0
  199. package/dist/assets/marketplace/plugins/ccl-skills/skills/multi-perspective-research/references/public-data-acquisition.md +549 -0
  200. package/dist/assets/marketplace/plugins/ccl-skills/skills/multi-perspective-research/references/public-disclosure-channels.md +97 -0
  201. package/dist/assets/marketplace/plugins/ccl-skills/skills/multi-perspective-research/references/research-prompts.md +66 -0
  202. package/dist/assets/marketplace/plugins/ccl-skills/skills/multi-perspective-research/scripts/AGENTS.md +32 -0
  203. package/dist/assets/marketplace/plugins/ccl-skills/skills/multi-perspective-research/scripts/test-public-data-acquisition-recipes.sh +379 -0
  204. package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-observability/SKILL.md +244 -0
  205. package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-observability/agents/openai.yaml +4 -0
  206. package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-observability/references/alerting-and-on-call.md +76 -0
  207. package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-observability/references/framework-middleware-checklist.md +142 -0
  208. package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-observability/references/infra-component-deployment.md +268 -0
  209. package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-observability/references/log-correlation-recipe.md +124 -0
  210. package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-observability/references/log-schema-canonical.md +208 -0
  211. package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-observability/references/metrics-conventions.md +105 -0
  212. package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-observability/references/obs-stack-architecture.md +107 -0
  213. package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-observability/references/sli-slo-design.md +95 -0
  214. package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-observability/references/source-register.md +11 -0
  215. package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-release-engineering/SKILL.md +303 -0
  216. package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-release-engineering/agents/openai.yaml +4 -0
  217. package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-release-engineering/references/canary-and-rollout-strategy.md +163 -0
  218. package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-release-engineering/references/config-center-via-etcd.md +245 -0
  219. package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-release-engineering/references/custom-control-plane-boundary.md +298 -0
  220. package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-release-engineering/references/deploy-cli-concrete-recipe.md +312 -0
  221. package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-release-engineering/references/deploy-pipeline.md +165 -0
  222. package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-release-engineering/references/env-and-lane-matrix.md +126 -0
  223. package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-release-engineering/references/lane-orchestration-control-plane.md +383 -0
  224. package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-release-engineering/references/multi-region-and-cluster.md +135 -0
  225. package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-release-engineering/references/promotion-gate-and-review.md +149 -0
  226. package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-release-engineering/references/python-package-registry-release.md +462 -0
  227. package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-release-engineering/references/rollback-playbook.md +123 -0
  228. package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-release-engineering/references/secret-and-config-management.md +231 -0
  229. package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-release-engineering/references/version-authority-and-deprecation.md +21 -0
  230. package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-service-connectivity/SKILL.md +276 -0
  231. package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-service-connectivity/agents/openai.yaml +4 -0
  232. package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-service-connectivity/references/dual-sidecar-and-traffic-config-center.md +127 -0
  233. package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-service-connectivity/references/framework-middleware.md +143 -0
  234. package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-service-connectivity/references/grpc-authority-workaround.md +90 -0
  235. package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-service-connectivity/references/http-response-envelope-contract.md +24 -0
  236. package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-service-connectivity/references/mesh-architecture.md +127 -0
  237. package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-service-connectivity/references/multi-env-routing.md +192 -0
  238. package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-service-connectivity/references/protobuf-http-contract-signals.md +64 -0
  239. package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-service-connectivity/references/retry-timeout-circuit-breaker.md +124 -0
  240. package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-service-connectivity/references/rpc-framework-recipe.md +494 -0
  241. package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-service-connectivity/references/service-discovery-choice.md +113 -0
  242. package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-service-connectivity/references/service-discovery-migration-playbook.md +231 -0
  243. package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-service-connectivity/references/service-discovery-recipe.md +131 -0
  244. package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/SKILL.md +235 -0
  245. package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/agents/openai.yaml +4 -0
  246. package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/adr-convention.md +146 -0
  247. package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/algorithm-launch-checklist.md +30 -0
  248. package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/algorithm-launch-evaluation-report-template.md +25 -0
  249. package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/algorithm-launch-execution-spec.md +108 -0
  250. package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/algorithm-launch-sop.md +457 -0
  251. package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/algorithm-launch-templates.md +24 -0
  252. package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/artifact-egress-confidentiality.md +58 -0
  253. package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/code-review-checklist.md +86 -0
  254. package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/cross-repo-coordination.md +46 -0
  255. package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/delivery-lifecycle.md +192 -0
  256. package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/design-review-gate-mechanics.md +62 -0
  257. package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/design-routing-and-readiness.md +45 -0
  258. package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/diagnostic-spec-match-gate.md +36 -0
  259. package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/dispatch-owner-skills.md +35 -0
  260. package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/dormant-code-activation.md +47 -0
  261. package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/existing-project-assessment-report.md +223 -0
  262. package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/external-skill-augmentation.md +46 -0
  263. package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/feature-deprecation-cascade.md +15 -0
  264. package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/high-risk-resilience-gates.md +73 -0
  265. package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/implementation-completeness-and-minimality.md +120 -0
  266. package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/implementation-entry-reentry-gate.md +122 -0
  267. package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/modular-monolith-heuristic.md +105 -0
  268. package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/pre-final-continuation-gate.md +115 -0
  269. package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/problem-resolution-and-learning.md +62 -0
  270. package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/quality-attributes.md +112 -0
  271. package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/quality-remediation-program.md +88 -0
  272. package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/rd-standards-doc-family-checklist.md +27 -0
  273. package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/refactoring-discipline.md +52 -0
  274. package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/review-reception.md +34 -0
  275. package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/shared-gate-artifact-classification.md +76 -0
  276. package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/source-evidence-map.md +31 -0
  277. package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/status-tracker-sync.md +77 -0
  278. package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/sync-spec-repo-contract.md +25 -0
  279. package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/verify-developer-experience.md +34 -0
  280. package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/worktree-mechanics.md +55 -0
  281. package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/scripts/AGENTS.md +18 -0
  282. package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/scripts/check-agent-contract-coverage.sh +213 -0
  283. package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/SKILL.md +136 -0
  284. package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/agents/openai.yaml +9 -0
  285. package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/analytics-visualization-interactions.md +206 -0
  286. package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/behavioral-aesthetic-logic.md +108 -0
  287. package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/complex-creation-interactions.md +194 -0
  288. package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/design-execution-checklist.md +214 -0
  289. package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/design-impl-naming-and-versioning.md +53 -0
  290. package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/design-intake-and-acceptance.md +129 -0
  291. package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/design-system-source-of-truth.md +97 -0
  292. package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/external-ui-ux-quality-benchmarks.md +79 -0
  293. package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/frontend-code-evidence-map.md +63 -0
  294. package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/interaction-design-patterns.md +146 -0
  295. package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/layout-recipes-and-screenshot-acceptance.md +250 -0
  296. package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/multi-project-token-consistency.md +237 -0
  297. package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/multi-stack-strategy.md +65 -0
  298. package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/operational-processing-workflows.md +237 -0
  299. package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/platform-mobile-patterns.md +324 -0
  300. package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/platform-web-desktop-patterns.md +456 -0
  301. package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/product-lifecycle-acceptance-and-iteration.md +114 -0
  302. package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/product-surface-patterns.md +79 -0
  303. package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/resource-management-interactions.md +113 -0
  304. package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/scenario-community-patterns.md +133 -0
  305. package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/source-map.md +130 -0
  306. package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/tokens-and-components.md +47 -0
  307. package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/trust-sensitive-ai-and-data-patterns.md +96 -0
  308. package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/ui-ux-audit.md +106 -0
  309. package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/ui-ux-design-development.md +176 -0
  310. package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/visual-craft.md +111 -0
  311. package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/SKILL.md +157 -0
  312. package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/agents/openai.yaml +4 -0
  313. package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/references/ai-service-integration-boundaries.md +57 -0
  314. package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/references/api-contract-and-schema.md +62 -0
  315. package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/references/api-security-boundaries.md +39 -0
  316. package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/references/architecture-playbook.md +46 -0
  317. package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/references/async-execution-model.md +24 -0
  318. package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/references/background-jobs-and-scheduling.md +18 -0
  319. package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/references/batch-and-pipeline-architecture.md +11 -0
  320. package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/references/config-secrets-runtime.md +22 -0
  321. package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/references/data-modeling-and-migrations.md +64 -0
  322. package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/references/data-platform-architecture.md +211 -0
  323. package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/references/event-driven-architecture.md +263 -0
  324. package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/references/multi-tenant-isolation.md +281 -0
  325. package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/references/observability-and-ops.md +26 -0
  326. package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/references/packaging-runtime-readiness.md +20 -0
  327. package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/references/redis-cache-coordination.md +41 -0
  328. package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/references/reliability-and-error-contract.md +17 -0
  329. package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/references/source-evidence-map.md +55 -0
  330. package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/references/web-framework-boundaries.md +26 -0
  331. package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-dev/SKILL.md +143 -0
  332. package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-dev/agents/openai.yaml +4 -0
  333. package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-dev/references/ai-service-wiring-patterns.md +16 -0
  334. package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-dev/references/async-and-worker-patterns.md +24 -0
  335. package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-dev/references/background-job-patterns.md +18 -0
  336. package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-dev/references/batch-and-artifact-patterns.md +13 -0
  337. package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-dev/references/dependency-client-patterns.md +39 -0
  338. package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-dev/references/error-handling-patterns.md +26 -0
  339. package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-dev/references/feature-playbook.md +43 -0
  340. package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-dev/references/observability-implementation-patterns.md +31 -0
  341. package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-dev/references/project-structure-and-tooling.md +24 -0
  342. package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-dev/references/public-api-security-patterns.md +52 -0
  343. package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-dev/references/redis-cache-lock-patterns.md +78 -0
  344. package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-dev/references/schema-and-validation-patterns.md +23 -0
  345. package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-dev/references/source-evidence-map.md +56 -0
  346. package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-dev/references/sqlalchemy-and-migrations-patterns.md +99 -0
  347. package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-dev/references/testing-and-quality-patterns.md +61 -0
  348. package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-dev/references/web-framework-patterns.md +35 -0
  349. package/dist/assets/marketplace/plugins/ccl-skills/skills/release-coordination/SKILL.md +91 -0
  350. package/dist/assets/marketplace/plugins/ccl-skills/skills/release-coordination/agents/openai.yaml +4 -0
  351. package/dist/assets/marketplace/plugins/ccl-skills/skills/release-coordination/references/config-runtime-readback.md +20 -0
  352. package/dist/assets/marketplace/plugins/ccl-skills/skills/release-coordination/references/mr-merge-authorization.md +31 -0
  353. package/dist/assets/marketplace/plugins/ccl-skills/skills/release-coordination/references/post-release-env-reset.md +31 -0
  354. package/dist/assets/marketplace/plugins/ccl-skills/skills/release-coordination/references/release-closeout-evidence.md +20 -0
  355. package/dist/assets/marketplace/plugins/ccl-skills/skills/release-coordination/references/release-scope-confirmation.md +21 -0
  356. package/dist/assets/marketplace/plugins/ccl-skills/skills/release-coordination/references/tag-and-prod-pipeline-gate.md +20 -0
  357. package/dist/assets/marketplace/plugins/ccl-skills/skills/release-coordination/references/test-scope-prompt.md +24 -0
  358. package/dist/assets/marketplace/plugins/ccl-skills/skills/release-coordination/references/watcher-discipline.md +14 -0
  359. package/dist/assets/marketplace/plugins/ccl-skills/skills/release-doc-writer/SKILL.md +64 -0
  360. package/dist/assets/marketplace/plugins/ccl-skills/skills/release-doc-writer/agents/openai.yaml +4 -0
  361. package/dist/assets/marketplace/plugins/ccl-skills/skills/release-doc-writer/references/comment-safe-release-doc.md +19 -0
  362. package/dist/assets/marketplace/plugins/ccl-skills/skills/release-doc-writer/references/release-evidence-workflow.md +23 -0
  363. package/dist/assets/marketplace/plugins/ccl-skills/skills/release-doc-writer/references/release-testing-scope-section.md +15 -0
  364. package/dist/assets/marketplace/plugins/ccl-skills/skills/requirement-baseline/SKILL.md +87 -0
  365. package/dist/assets/marketplace/plugins/ccl-skills/skills/requirement-baseline/agents/openai.yaml +4 -0
  366. package/dist/assets/marketplace/plugins/ccl-skills/skills/requirement-doc-writer/SKILL.md +130 -0
  367. package/dist/assets/marketplace/plugins/ccl-skills/skills/requirement-doc-writer/agents/openai.yaml +4 -0
  368. package/dist/assets/marketplace/plugins/ccl-skills/skills/requirement-doc-writer/references/prd-composition-contract.md +35 -0
  369. package/dist/assets/marketplace/plugins/ccl-skills/skills/requirement-doc-writer/references/requirement-closure-contract.md +86 -0
  370. package/dist/assets/marketplace/plugins/ccl-skills/skills/requirement-doc-writer/references/security-four-questions.md +38 -0
  371. package/dist/assets/marketplace/plugins/ccl-skills/skills/requirement-intent/SKILL.md +91 -0
  372. package/dist/assets/marketplace/plugins/ccl-skills/skills/requirement-intent/agents/openai.yaml +4 -0
  373. package/dist/assets/marketplace/plugins/ccl-skills/skills/requirement-scope/SKILL.md +88 -0
  374. package/dist/assets/marketplace/plugins/ccl-skills/skills/requirement-scope/agents/openai.yaml +4 -0
  375. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/SKILL.md +337 -0
  376. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/agents/openai.yaml +4 -0
  377. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/analysis-parse-fix-test-challenge-replay.md +47 -0
  378. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/attribution-verification.md +69 -0
  379. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/bootstrap-slim-c3-obligation-table.md +112 -0
  380. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/coverage-exhaustion-traps.md +45 -0
  381. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/description-authoring.md +162 -0
  382. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/dual-track-review-gate.md +507 -0
  383. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/eval-routing.md +86 -0
  384. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/evidence-card-template.md +51 -0
  385. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/example-domain-preselect.md +79 -0
  386. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/external-practice-controls.md +57 -0
  387. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/extraction-lifecycle-handoff.md +65 -0
  388. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/extraction-quickstart.md +194 -0
  389. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/firing-point-placement.md +75 -0
  390. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/harness-patterns-and-eval.md +286 -0
  391. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/incident-postmortem-extraction.md +190 -0
  392. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/l0-l1-l2-routing.md +114 -0
  393. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/online-skill-review.md +47 -0
  394. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/parallel-stack-references-pattern.md +164 -0
  395. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/r0-leakage-audit.md +90 -0
  396. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/recurring-anti-patterns-checklist.md +320 -0
  397. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/resume-paused-delivery.md +16 -0
  398. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/review-feedback-mining.md +33 -0
  399. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/review-finding-standards.md +57 -0
  400. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/review-rubric.md +40 -0
  401. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/rule-consolidation.md +118 -0
  402. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/skill-listing-budget.md +19 -0
  403. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/source-register.md +254 -0
  404. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/source-to-skill-extraction.md +658 -0
  405. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/two-source-extraction-pattern.md +167 -0
  406. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/uiux-judgment-extraction.md +179 -0
  407. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/uiux-routing-map.md +51 -0
  408. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/validation-and-landing.md +180 -0
  409. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/AGENTS.md +18 -0
  410. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/check-ccl-skills.sh +1452 -0
  411. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/check-evidence-card-leak.sh +491 -0
  412. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/check-mr-target-freshness.sh +173 -0
  413. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/check-size-budget.sh +488 -0
  414. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/check-sync-pointers.sh +419 -0
  415. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/eval-golden-trace.rb +197 -0
  416. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/eval-health.rb +327 -0
  417. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/eval-routing-bank.rb +401 -0
  418. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/eval-routing.rb +248 -0
  419. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/generic-r0-leak-scan.sh +282 -0
  420. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/governing-chain-diff.py +321 -0
  421. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/impact-chain-gate.rb +964 -0
  422. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/register-firing-path-resolution.rb +708 -0
  423. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/skill-behavior-eval.py +540 -0
  424. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/source-register-lifecycle.rb +51 -0
  425. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/source-register-pending-status.rb +55 -0
  426. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_ai_coding_implementation_gates.sh +829 -0
  427. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_check_ccl_impact_chain_refscripts.sh +1203 -0
  428. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_check_ccl_r0_status.sh +75 -0
  429. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_check_ccl_register_pending_exclusion.sh +137 -0
  430. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_check_ccl_regressions.sh +173 -0
  431. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_check_ccl_route_drift.sh +377 -0
  432. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_check_ccl_size_budget.sh +833 -0
  433. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_check_ccl_skill_catalog.sh +491 -0
  434. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_check_ccl_source_register_lifecycle.sh +114 -0
  435. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_check_mr_target_freshness.sh +261 -0
  436. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_check_sync_pointers.sh +538 -0
  437. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_controlled_escalation_pins.sh +154 -0
  438. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_eval_routing_bank_grader_diagnostics.sh +190 -0
  439. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_eval_routing_bank_surface_binding.sh +178 -0
  440. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_eval_routing_prose_target.sh +86 -0
  441. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_generic_r0_leak_scan.sh +131 -0
  442. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_git_identity_predicate_gate.sh +243 -0
  443. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_governing_chain_diff.sh +419 -0
  444. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_impact_chain_gate_dateless_host.sh +120 -0
  445. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_register_firing_path_resolution.sh +724 -0
  446. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_register_firing_path_wiring.sh +414 -0
  447. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_regression_runner_registration.sh +34 -0
  448. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_routing_bank_integrity.sh +205 -0
  449. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_routing_pointer_integrity.sh +194 -0
  450. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_validate_skill_credential_cwd.sh +61 -0
  451. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_validate_skill_cross_refs.sh +111 -0
  452. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_validate_skill_root_depth.sh +53 -0
  453. package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/validate-skill.sh +257 -0
  454. package/dist/assets/marketplace/plugins/ccl-skills/skills/terminal-cli-dev/SKILL.md +98 -0
  455. package/dist/assets/marketplace/plugins/ccl-skills/skills/terminal-cli-dev/agents/openai.yaml +4 -0
  456. package/dist/assets/marketplace/plugins/ccl-skills/skills/terminal-cli-dev/references/input-state-machines.md +36 -0
  457. package/dist/assets/marketplace/plugins/ccl-skills/skills/terminal-cli-dev/references/streaming-rich-output.md +130 -0
  458. package/dist/assets/marketplace/plugins/ccl-skills/skills/terminal-cli-dev/references/terminal-side-channels.md +96 -0
  459. package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/SKILL.md +408 -0
  460. package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/agents/openai.yaml +4 -0
  461. package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/references/AGENTS.md +18 -0
  462. package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/references/bitable-setup.md +573 -0
  463. package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/references/ci_templates/README.md +120 -0
  464. package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/references/ci_templates/github-actions.yml +119 -0
  465. package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/references/ci_templates/gitlab-ci.yml +76 -0
  466. package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/references/ci_templates/jenkins.Jenkinsfile +106 -0
  467. package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/references/classical-test-design-techniques.md +279 -0
  468. package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/references/gen_report.py +2807 -0
  469. package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/references/makefile-template.md +200 -0
  470. package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/references/report-config-schema.md +272 -0
  471. package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/references/run_pytestless.py +475 -0
  472. package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/references/source-to-case-workflows.md +258 -0
  473. package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/references/tc-marker-conventions.md +316 -0
  474. package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/references/tc-review-and-prioritization.md +145 -0
  475. package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/references/tc_helpers/AGENTS.md +16 -0
  476. package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/references/tc_helpers/tc.dart +129 -0
  477. package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/references/tc_helpers/tc.go +197 -0
  478. package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/references/tc_helpers/tc.py +135 -0
  479. package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/references/tc_helpers/tc.ts +285 -0
  480. package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/references/test_gen_report.py +2144 -0
  481. package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/references/update-lifecycle.md +62 -0
  482. package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/SKILL.md +212 -0
  483. package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/agents/openai.yaml +4 -0
  484. package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/references/ci-fixtures-and-flake-control.md +75 -0
  485. package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/references/client-runtime-test-matrices.md +50 -0
  486. package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/references/data-and-workflow-testing.md +34 -0
  487. package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/references/design-closed-contract-oracles.md +31 -0
  488. package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/references/e2e-real-flow-testing.md +71 -0
  489. package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/references/fitness-functions.md +240 -0
  490. package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/references/integration-contract-testing.md +235 -0
  491. package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/references/non-functional-specialized-scenarios.md +296 -0
  492. package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/references/rd-testing-standard-template.md +126 -0
  493. package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/references/run-killing-mutation-walk.md +43 -0
  494. package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/references/scenario-testing.md +136 -0
  495. package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/references/source-evidence-map.md +59 -0
  496. package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/references/structured-tc-input-translation.md +67 -0
  497. package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/references/test-code-authoring-patterns.md +392 -0
  498. package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/references/test-data-and-determinism.md +39 -0
  499. package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/references/test-topology-and-commands.md +92 -0
  500. package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/references/unit-testing.md +46 -0
  501. package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/references/vendored-contract-drift-checklist.md +64 -0
  502. package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/references/verify-enforcement-mechanisms.md +18 -0
  503. package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/scripts/AGENTS.md +17 -0
  504. package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/scripts/client-terminal-ansi-check.py +140 -0
  505. package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/scripts/client-terminal-ansi-check.test.sh +75 -0
  506. package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/scripts/lang-basics-ast-check.py +170 -0
  507. package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/scripts/lang-basics-ast-check.test.sh +87 -0
  508. package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/scripts/lang-basics-go-check.go +198 -0
  509. package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/scripts/lang-basics-go-check.test.sh +109 -0
  510. package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/scripts/test_mutation_backup_recipe.sh +237 -0
  511. package/dist/assets/marketplace/plugins/ccl-skills/skills/tighten-doc/SKILL.md +184 -0
  512. package/dist/assets/marketplace/plugins/ccl-skills/skills/tighten-doc/agents/openai.yaml +4 -0
  513. package/dist/assets/marketplace/plugins/ccl-skills/skills/tighten-doc/references/comment-safe-feishu.md +93 -0
  514. package/dist/assets/marketplace/plugins/ccl-skills/skills/tighten-doc/references/cross-model-co-review.md +3 -0
  515. package/dist/assets/marketplace/plugins/ccl-skills/skills/tighten-doc/references/delivery-face-closeout.md +60 -0
  516. package/dist/assets/marketplace/plugins/ccl-skills/skills/tighten-doc/references/doc-charter-first.md +17 -0
  517. package/dist/assets/marketplace/plugins/ccl-skills/skills/tighten-doc/references/session-vantage-leakage.md +58 -0
  518. package/dist/assets/marketplace/plugins/ccl-skills/skills/web-react-dev/SKILL.md +126 -0
  519. package/dist/assets/marketplace/plugins/ccl-skills/skills/web-react-dev/agents/openai.yaml +4 -0
  520. package/dist/assets/marketplace/plugins/ccl-skills/skills/web-react-dev/references/complex-workspace-patterns.md +47 -0
  521. package/dist/assets/marketplace/plugins/ccl-skills/skills/web-react-dev/references/embedded-h5-in-host.md +87 -0
  522. package/dist/assets/marketplace/plugins/ccl-skills/skills/web-react-dev/references/react-architecture.md +194 -0
  523. package/dist/assets/marketplace/plugins/ccl-skills/skills/web-react-dev/references/source-evidence-map.md +60 -0
  524. package/dist/assets/marketplace/plugins/ccl-skills/skills/web-react-dev/references/web-quality-release.md +190 -0
  525. package/dist/assets/marketplace/plugins/ccl-skills/skills/web-react-dev/references/web-ui-quality.md +83 -0
  526. package/dist/assets/marketplace/plugins/ccl-skills/skills/worktree-isolation/SKILL.md +179 -0
  527. package/dist/assets/marketplace/plugins/ccl-skills/skills/worktree-isolation/agents/openai.yaml +4 -0
  528. package/dist/assets/marketplace/plugins/ccl-skills/skills/worktree-isolation/references/shared-branch-rebase.md +25 -0
  529. package/dist/assets/marketplace/plugins/ccl-skills/skills/worktree-isolation/scripts/AGENTS.md +23 -0
  530. package/dist/assets/marketplace/plugins/ccl-skills/skills/worktree-isolation/scripts/test_worktree_status.sh +207 -0
  531. package/dist/assets/marketplace/plugins/ccl-skills/skills/worktree-isolation/scripts/test_worktree_sweep.sh +481 -0
  532. package/dist/assets/marketplace/plugins/ccl-skills/skills/worktree-isolation/scripts/worktree-status.sh +325 -0
  533. package/dist/assets/marketplace/plugins/ccl-skills/skills/worktree-isolation/scripts/worktree-sweep.sh +245 -0
  534. package/dist/assets/release.json +2797 -0
  535. package/dist/claude-adapter.d.ts +9 -0
  536. package/dist/claude-adapter.js +240 -0
  537. package/dist/cli-worker.d.ts +1 -0
  538. package/dist/cli-worker.js +32 -0
  539. package/dist/cli.d.ts +22 -0
  540. package/dist/cli.js +214 -0
  541. package/dist/codex-host.d.ts +30 -0
  542. package/dist/codex-host.js +162 -0
  543. package/dist/fs-safe.d.ts +21 -0
  544. package/dist/fs-safe.js +241 -0
  545. package/dist/index.d.ts +2 -0
  546. package/dist/index.js +1 -0
  547. package/dist/manifest.d.ts +8 -0
  548. package/dist/manifest.js +135 -0
  549. package/dist/opencode-adapter.d.ts +10 -0
  550. package/dist/opencode-adapter.js +416 -0
  551. package/dist/operations.d.ts +3 -0
  552. package/dist/operations.js +956 -0
  553. package/dist/paths.d.ts +20 -0
  554. package/dist/paths.js +4 -0
  555. package/dist/types.d.ts +58 -0
  556. package/dist/types.js +1 -0
  557. package/dist/unified.d.ts +4 -0
  558. package/dist/unified.js +64 -0
  559. package/dist/version.d.ts +2 -0
  560. package/dist/version.js +5 -0
  561. package/package.json +35 -0
@@ -0,0 +1,574 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
5
+ parser="$script_dir/parse_probe_result.py"
6
+ tmp_dir="$(mktemp -d)"
7
+ trap 'rm -rf "$tmp_dir"' EXIT
8
+ redacted_path=$'\x3cpath\x3e'
9
+
10
+ run_ok() {
11
+ local rc="$1" stdout="$2" stderr="${3:-}"
12
+ printf '%s' "$stdout" > "$tmp_dir/stdout"
13
+ printf '%s' "$stderr" > "$tmp_dir/stderr"
14
+ python3 "$parser" "$rc" "$tmp_dir/stdout" "$tmp_dir/stderr" >/dev/null
15
+ }
16
+
17
+ run_reason() {
18
+ local rc="$1" stdout="$2" expected="$3" stderr="${4:-}" out
19
+ printf '%s' "$stdout" > "$tmp_dir/stdout"
20
+ printf '%s' "$stderr" > "$tmp_dir/stderr"
21
+ if out="$(python3 "$parser" "$rc" "$tmp_dir/stdout" "$tmp_dir/stderr")"; then
22
+ printf 'expected probe parser failure for stdout: %s\n' "$stdout" >&2
23
+ return 1
24
+ fi
25
+ if ! printf '%s' "$out" | grep -F "$expected" >/dev/null; then
26
+ printf 'expected reason containing %q but got %s\n' "$expected" "$out" >&2
27
+ return 1
28
+ fi
29
+ }
30
+
31
+ run_reason_excludes() {
32
+ local rc="$1" stdout="$2" forbidden="$3" stderr="${4:-}" out
33
+ printf '%s' "$stdout" > "$tmp_dir/stdout"
34
+ printf '%s' "$stderr" > "$tmp_dir/stderr"
35
+ if out="$(python3 "$parser" "$rc" "$tmp_dir/stdout" "$tmp_dir/stderr")"; then
36
+ printf 'expected probe parser failure for stdout: %s\n' "$stdout" >&2
37
+ return 1
38
+ fi
39
+ if printf '%s' "$out" | grep -F "$forbidden" >/dev/null; then
40
+ printf 'reason must not contain %q but got %s\n' "$forbidden" "$out" >&2
41
+ return 1
42
+ fi
43
+ }
44
+
45
+ run_reason_strict() {
46
+ local rc="$1" stdout="$2" expected="$3" stderr="${4:-}" out
47
+ printf '%s' "$stdout" > "$tmp_dir/stdout"
48
+ printf '%s' "$stderr" > "$tmp_dir/stderr"
49
+ if out="$(python3 "$parser" "$rc" "$tmp_dir/stdout" "$tmp_dir/stderr" --require-empty-init)"; then
50
+ printf 'expected strict probe parser failure for stdout: %s\n' "$stdout" >&2
51
+ return 1
52
+ fi
53
+ if ! printf '%s' "$out" | grep -F "$expected" >/dev/null; then
54
+ printf 'expected strict reason containing %q but got %s\n' "$expected" "$out" >&2
55
+ return 1
56
+ fi
57
+ }
58
+
59
+ run_ok_strict() {
60
+ local rc="$1" stdout="$2" stderr="${3:-}"
61
+ printf '%s' "$stdout" > "$tmp_dir/stdout"
62
+ printf '%s' "$stderr" > "$tmp_dir/stderr"
63
+ python3 "$parser" "$rc" "$tmp_dir/stdout" "$tmp_dir/stderr" --require-empty-init >/dev/null
64
+ }
65
+
66
+ run_ok_expected_tools() {
67
+ local expected_tools="$1" rc="$2" stdout="$3" stderr="${4:-}"
68
+ printf '%s' "$stdout" > "$tmp_dir/stdout"
69
+ printf '%s' "$stderr" > "$tmp_dir/stderr"
70
+ python3 "$parser" "$rc" "$tmp_dir/stdout" "$tmp_dir/stderr" \
71
+ --require-empty-init --expected-tools "$expected_tools" >/dev/null
72
+ }
73
+
74
+ run_ok_expected_tool_use() {
75
+ local expected_tools="$1" rc="$2" stdout="$3" stderr="${4:-}"
76
+ printf '%s' "$stdout" > "$tmp_dir/stdout"
77
+ printf '%s' "$stderr" > "$tmp_dir/stderr"
78
+ python3 "$parser" "$rc" "$tmp_dir/stdout" "$tmp_dir/stderr" \
79
+ --require-empty-init --expected-tools "$expected_tools" --allow-expected-tool-use >/dev/null
80
+ }
81
+
82
+ run_reason_expected_tools_implicit_strict() {
83
+ local expected_tools="$1" rc="$2" stdout="$3" expected="$4" out
84
+ printf '%s' "$stdout" > "$tmp_dir/stdout"
85
+ : > "$tmp_dir/stderr"
86
+ if out="$(python3 "$parser" "$rc" "$tmp_dir/stdout" "$tmp_dir/stderr" \
87
+ --expected-tools "$expected_tools")"; then
88
+ printf 'expected implicit-strict expected-tools parser failure\n' >&2
89
+ return 1
90
+ fi
91
+ printf '%s' "$out" | grep -F "$expected" >/dev/null
92
+ }
93
+
94
+ run_reason_runtime_surface() {
95
+ local expected_tools="$1" rc="$2" stdout="$3" expected="$4" stderr="${5:-}" out
96
+ printf '%s' "$stdout" > "$tmp_dir/stdout"
97
+ printf '%s' "$stderr" > "$tmp_dir/stderr"
98
+ if out="$(python3 "$parser" "$rc" "$tmp_dir/stdout" "$tmp_dir/stderr" \
99
+ --require-empty-init --expected-tools "$expected_tools" --allow-expected-tool-use --runtime-surface-only)"; then
100
+ printf 'expected runtime-surface parser failure\n' >&2
101
+ return 1
102
+ fi
103
+ printf '%s' "$out" | grep -F "$expected" >/dev/null
104
+ }
105
+
106
+ run_ok_runtime_surface() {
107
+ local expected_tools="$1" rc="$2" stdout="$3" stderr="${4:-}"
108
+ printf '%s' "$stdout" > "$tmp_dir/stdout"
109
+ printf '%s' "$stderr" > "$tmp_dir/stderr"
110
+ python3 "$parser" "$rc" "$tmp_dir/stdout" "$tmp_dir/stderr" \
111
+ --require-empty-init --expected-tools "$expected_tools" --allow-expected-tool-use --runtime-surface-only >/dev/null
112
+ }
113
+
114
+ run_ok_expected_native_skills() {
115
+ local expected_native_skills="$1" required_native_skills="$2" rc="$3" stdout="$4"
116
+ local stderr="${5:-}"
117
+ printf '%s' "$stdout" > "$tmp_dir/stdout"
118
+ printf '%s' "$stderr" > "$tmp_dir/stderr"
119
+ python3 "$parser" "$rc" "$tmp_dir/stdout" "$tmp_dir/stderr" \
120
+ --require-empty-init \
121
+ --expected-native-skills "$expected_native_skills" \
122
+ --required-native-skills "$required_native_skills" >/dev/null
123
+ }
124
+
125
+ run_reason_expected_native_skills() {
126
+ local expected_native_skills="$1" required_native_skills="$2" rc="$3" stdout="$4"
127
+ local expected="$5" stderr="${6:-}" out
128
+ printf '%s' "$stdout" > "$tmp_dir/stdout"
129
+ printf '%s' "$stderr" > "$tmp_dir/stderr"
130
+ if out="$(python3 "$parser" "$rc" "$tmp_dir/stdout" "$tmp_dir/stderr" \
131
+ --require-empty-init \
132
+ --expected-native-skills "$expected_native_skills" \
133
+ --required-native-skills "$required_native_skills")"; then
134
+ printf 'expected native-skill probe parser failure\n' >&2
135
+ return 1
136
+ fi
137
+ printf '%s' "$out" | grep -F "$expected" >/dev/null
138
+ }
139
+
140
+ # Runtime-surface variants used to pin the main-invocation drift guard. The
141
+ # first omits --allow-expected-tool-use (the wrapper always passes it, so this
142
+ # is the guard's defence-in-depth leg); the second exercises the owner-aware
143
+ # path, where a permitted-looking customization list can still carry an
144
+ # unexpected identifier.
145
+ run_reason_runtime_surface_no_tool_use_allowance() {
146
+ local expected_tools="$1" rc="$2" stdout="$3" expected="$4" stderr="${5:-}" out
147
+ printf '%s' "$stdout" > "$tmp_dir/stdout"
148
+ printf '%s' "$stderr" > "$tmp_dir/stderr"
149
+ if out="$(python3 "$parser" "$rc" "$tmp_dir/stdout" "$tmp_dir/stderr" \
150
+ --require-empty-init --expected-tools "$expected_tools" --runtime-surface-only)"; then
151
+ printf 'expected runtime-surface parser failure (no tool-use allowance)\n' >&2
152
+ return 1
153
+ fi
154
+ if printf '%s' "$out" | grep -F 'unrecognized surface-shaped init field' >/dev/null; then
155
+ printf 'drift reason must not launder an unallowed tool_use: %s\n' "$out" >&2
156
+ return 1
157
+ fi
158
+ printf '%s' "$out" | grep -F "$expected" >/dev/null
159
+ }
160
+
161
+ run_reason_runtime_surface_native() {
162
+ local expected_native_skills="$1" rc="$2" stdout="$3" expected="$4" stderr="${5:-}" out
163
+ printf '%s' "$stdout" > "$tmp_dir/stdout"
164
+ printf '%s' "$stderr" > "$tmp_dir/stderr"
165
+ if out="$(python3 "$parser" "$rc" "$tmp_dir/stdout" "$tmp_dir/stderr" \
166
+ --require-empty-init --expected-tools "" --allow-expected-tool-use --runtime-surface-only \
167
+ --expected-native-skills "$expected_native_skills" \
168
+ --required-native-skills "$expected_native_skills")"; then
169
+ printf 'expected owner-aware runtime-surface parser failure\n' >&2
170
+ return 1
171
+ fi
172
+ if printf '%s' "$out" | grep -F 'unrecognized surface-shaped init field' >/dev/null; then
173
+ printf 'drift reason must not launder an unexpected identifier: %s\n' "$out" >&2
174
+ return 1
175
+ fi
176
+ printf '%s' "$out" | grep -F "$expected" >/dev/null
177
+ }
178
+
179
+ run_reason_runtime_surface_implicit_strict() {
180
+ local stdout="$1" expected="$2" out
181
+ printf '%s' "$stdout" > "$tmp_dir/stdout"
182
+ : > "$tmp_dir/stderr"
183
+ if out="$(python3 "$parser" 0 "$tmp_dir/stdout" "$tmp_dir/stderr" --runtime-surface-only)"; then
184
+ printf 'expected implicit-strict runtime-surface parser failure\n' >&2
185
+ return 1
186
+ fi
187
+ printf '%s' "$out" | grep -F "$expected" >/dev/null
188
+ }
189
+
190
+ run_ok 0 'ok'
191
+ run_ok 0 'OK'
192
+ run_ok 0 $'ok\n'
193
+ run_ok 0 'ok' 'benign warning'
194
+ run_reason 0 $'banner\nok' 'Claude no-tool probe failed'
195
+ run_reason 0 $'Not logged in · Please run /login\nok' 'auth-path false negative'
196
+ run_reason 0 $'ok\nfooter' 'Claude no-tool probe failed'
197
+ run_reason 0 'ok' 'auth-path false negative' 'Not logged in · Please run /login'
198
+ run_ok 0 '{"type":"result","subtype":"success","is_error":false,"terminal_reason":"completed","result":"ok"}'
199
+ run_ok 0 '{"type":"result","subtype":"success","is_error":false,"api_error_status":0,"result":"ok"}'
200
+ run_ok 0 '{"type":"result","subtype":"completed","is_error":false,"api_error_status":"200","result":"ok"}'
201
+ run_reason 0 '{"type":"result","subtype":"success","is_error":false,"api_error_status":"too_many_requests","result":"ok"}' 'quota/rate limit'
202
+ run_reason 0 '{"subtype":"success","is_error":false,"result":"ok"}' 'Claude no-tool probe failed'
203
+ run_ok 0 '{"type":"result","subtype":"success","is_error":false,"result":"ok"}'
204
+ run_ok 0 '{"type":"result","is_error":false,"result":"ok"}'
205
+ run_ok 0 '{"type":"result","subtype":"success","is_error":false,"terminal_reason":"stop","result":"ok"}'
206
+ run_ok 0 '{"type":"result","subtype":"success","is_error":false,"terminal_reason":"completed","result":"OK"}'
207
+ run_ok 0 '{"type":"result","subtype":"success","is_error":false,"structured_output":"ok"}'
208
+ run_ok 0 '{"type":"result","subtype":"success","is_error":false,"structured_output":"ok","result":"OK"}'
209
+ run_ok 0 '{"type":"result","subtype":"success","is_error":false,"terminal_reason":"completed","result":"The Bash tool is not available to me in this environment, so I cannot run that command.\n\nok","permission_denials":[]}'
210
+ run_ok 0 '{"type":"result","subtype":"success","is_error":false,"terminal_reason":"completed","structured_output":"The Bash tool is not available to me in this environment, so I cannot run that command.\n\nok","permission_denials":[]}'
211
+ run_ok 0 '{"type":"result","subtype":"success","is_error":false,"terminal_reason":"completed","result":"I'\''ll comply with the user'\''s explicit instructions here.\n\nThe Bash tool is not available to me in this environment, so I cannot run that command.\n\nok","permission_denials":[]}'
212
+ run_ok 0 '{"type":"result","subtype":"success","is_error":false,"terminal_reason":"completed","result":"Available tools: none. Bash is not available.\n\nok","permission_denials":[]}'
213
+ run_reason 0 '{"type":"result","subtype":"success","is_error":false,"result":"I cannot use the Bash tool here."}' 'Claude no-tool probe failed'
214
+ run_reason 0 '{"type":"result","subtype":"success","is_error":false,"result":"TOOL_ENABLED"}' 'Claude no-tool probe failed'
215
+ run_reason 0 '{"type":"result","subtype":"success","is_error":false,"result":"The Bash tool is not available here.\nTOOL_ENABLED\nok","permission_denials":[]}' 'Claude no-tool probe failed'
216
+ run_reason 0 '{"type":"result","subtype":"success","is_error":false,"result":"I cannot be certain, but available tools: bash\nok","permission_denials":[]}' 'Claude no-tool probe failed'
217
+ run_reason 0 '{"type":"result","subtype":"success","is_error":false,"result":"I cannot be certain, but available tools: no idea -- bash, python are available\nok","permission_denials":[]}' 'Claude no-tool probe failed'
218
+ run_reason 0 '{"type":"result","subtype":"success","is_error":false,"result":"Available tools: none. Bash is available.\nok","permission_denials":[]}' 'Claude no-tool probe failed'
219
+ run_reason 0 '{"type":"result","subtype":"success","is_error":false,"result":"Bash is available, but the Bash tool is not available right now.\nok","permission_denials":[]}' 'Claude no-tool probe failed'
220
+ run_reason 0 '{"type":"result","subtype":"success","is_error":false,"result":"The Bash tool is available, but I cannot guarantee output.\nok","permission_denials":[]}' 'Claude no-tool probe failed'
221
+ run_reason 0 '{"type":"result","subtype":"success","is_error":false,"result":"The Bash tool is available, but Bash is not available right now.\nok","permission_denials":[]}' 'Claude no-tool probe failed'
222
+ run_reason 0 '{"type":"result","subtype":"success","is_error":false,"result":"The Bash tool is not available, but I can use the Bash tool anyway.\nok","permission_denials":[]}' 'Claude no-tool probe failed'
223
+ run_reason 0 '{"type":"result","subtype":"success","is_error":false,"result":"The Bash tool is not available, so I used the Bash tool via subprocess.\nok","permission_denials":[]}' 'Claude no-tool probe failed'
224
+ run_reason 0 '{"type":"result","subtype":"success","is_error":false,"result":"Bash is not available, but I will use bash anyway.\nok","permission_denials":[]}' 'Claude no-tool probe failed'
225
+ run_reason 0 '{"type":"result","subtype":"success","is_error":false,"result":"Bash is not available so I use bash to comply.\nok","permission_denials":[]}' 'Claude no-tool probe failed'
226
+ run_reason 0 '{"type":"result","subtype":"success","is_error":false,"result":"Available tools:\n- bash\nok","permission_denials":[]}' 'Claude no-tool probe failed'
227
+ run_reason 0 '{"type":"result","subtype":"success","is_error":false,"result":"I am not certain whether I have any tools.\nok","permission_denials":[]}' 'Claude no-tool probe failed'
228
+ run_reason 0 '{"type":"result","subtype":"success","is_error":false,"result":"The Bash tool is not available, so here is the listing: README.md scripts main.py\nok","permission_denials":[]}' 'Claude no-tool probe failed'
229
+ run_reason 0 '{"type":"result","subtype":"success","is_error":false,"result":"README.md\nscripts\nok","permission_denials":[]}' 'Claude no-tool probe failed'
230
+ run_reason 0 '{"type":"result","subtype":"success","is_error":false,"result":"The Bash tool is not available.\nREADME.md\nscripts\nok","permission_denials":[]}' 'Claude no-tool probe failed'
231
+ run_reason 0 '{"type":"result","subtype":"success","is_error":false,"result":"I will use the Bash tool now."}' 'Claude no-tool probe failed'
232
+ run_reason 0 '{"type":"result","subtype":"success","is_error":false,"payload":{"answer":"ok"}}' 'Claude no-tool probe failed'
233
+ run_reason 0 '{"type":"result","subtype":"success","is_error":false,"result":"ok"}' 'auth-path false negative' 'Not logged in · Please run /login'
234
+ run_ok 0 $'banner\n{"type":"result","subtype":"success","is_error":false,"result":"ok"}'
235
+ run_reason 0 $'Not logged in · Please run /login\n{"type":"result","subtype":"success","is_error":false,"result":"ok"}' 'auth-path false negative'
236
+ run_ok 0 $'banner\n{\n "type": "result",\n "subtype": "success",\n "is_error": false,\n "result": "ok"\n}'
237
+ run_ok 0 $'banner\n {"type":"result","subtype":"stop_turn","is_error":false,"errors":[],"result":"ok"}'
238
+ run_ok 0 $'{"type":"result","subtype":"success","is_error":false,"result":"ok"}\nusage footer'
239
+ run_ok 0 $'{"type":"result","subtype":"success","is_error":false,"result":"ok"}\n{"type":"telemetry","message":"footer"}'
240
+ run_reason 0 $'{"type":"result","subtype":"success","is_error":false,"result":"ok"}\n{"type":"telemetry","message":"rate limit exceeded"}' 'quota/rate limit'
241
+ run_reason 0 $'{"type":"result","subtype":"error","is_error":true,"result":"boom"}\n{"type":"result","subtype":"success","is_error":false,"result":"ok"}' 'error envelope'
242
+ run_reason 0 '{"type":"result","subtype":"success","is_error":{"code":5},"result":"ok"}' 'error envelope'
243
+ run_reason 0 '{"type":"result","subtype":"success","is_error":["failed"],"result":"ok"}' 'error envelope'
244
+ run_reason 0 $'{"type":"result","subtype":"success","is_error":false,"result":"not ok","error":{"message":"Not logged in · Please run /login"}}\n{"type":"result","subtype":"success","is_error":false,"result":"ok"}' 'auth-path false negative'
245
+ run_reason 0 $'probe failed but echoed {"type":"result","subtype":"success","is_error":false,"result":"ok"}' 'Claude no-tool probe failed'
246
+
247
+ run_reason 1 'Not logged in · Please run /login' 'auth-path false negative'
248
+ run_reason 1 $'Not logged in · Please run /login\n{"type":"telemetry"}' 'auth-path false negative'
249
+ run_reason 0 'Not logged in · Please run /login' 'auth-path false negative'
250
+ run_reason 0 '{"type":"result","subtype":"success","is_error":false,"result":"Not logged in · Please run /login"}' 'auth-path false negative'
251
+ run_reason 0 '{"type":"result","subtype":"success","is_error":false,"result":"Invalid API key"}' 'auth-path false negative'
252
+ run_reason 0 '{"type":"result","subtype":"success","is_error":false,"result":"OAuth token expired"}' 'auth-path false negative'
253
+ run_reason 1 '401 Unauthorized' 'auth-path false negative'
254
+ run_reason 1 'session has ended' 'auth-path false negative'
255
+ run_reason 0 '{"type":"result","subtype":"success","is_error":false,"result":"session expired; hit your limit"}' 'auth-path false negative'
256
+ run_reason 0 '{"type":"result","subtype":"success","is_error":false,"debug":"Not logged in · Please run /login","result":"not ok"}' 'auth-path false negative'
257
+ run_reason 0 '{"type":"result","subtype":"success","is_error":false,"debug":"rate limit exceeded","result":"not ok"}' 'quota/rate limit'
258
+ run_reason 1 '{"type":"result","subtype":"error","is_error":true,"result":null,"error":{"message":"Not logged in · Please run /login"}}' 'auth-path false negative'
259
+ run_reason 0 '{"type":"result","subtype":"success","is_error":false,"result":"ok","error":{"message":"rate limit exceeded"}}' 'quota/rate limit'
260
+ run_reason 1 '{"type":"result","subtype":"success","is_error":false,"api_error_status":429,"result":"Please run /login; rate limit exceeded"}' 'quota/rate limit'
261
+ run_reason 1 '{"type":"result","subtype":"success","is_error":false,"api_error_status":"429","result":"Please run /login"}' 'quota/rate limit'
262
+ run_reason 1 '{"type":"result","subtype":"success","is_error":false,"api_error_status":401,"result":"unauthorized"}' 'auth-path false negative'
263
+ run_reason 1 '{"type":"result","subtype":"success","is_error":false,"api_error_status":401,"result":"rate limit exceeded"}' 'auth-path false negative'
264
+ run_reason 1 '{"type":"result","subtype":"success","is_error":false,"api_error_status":403,"result":"forbidden"}' 'permission/API access status 403'
265
+ run_reason 1 '{"type":"result","subtype":"success","is_error":false,"result":"credit balance too low"}' 'quota/rate limit'
266
+ run_reason 1 '{"type":"result","subtype":"success","is_error":false,"result":"usage limit reached"}' 'quota/rate limit'
267
+ run_reason 1 '{"type":"result","subtype":"success","is_error":false,"result":"rate limit exceeded: 50/min"}' '50/min'
268
+ run_reason 1 '{"type":"result","subtype":"success","is_error":false,"result":"rate limit exceeded for key=abcdefghijklmnopqrst"}' '<secret>'
269
+ run_reason 1 '{"type":"result","subtype":"success","is_error":false,"result":"service unavailable 503"}' 'Claude no-tool probe failed'
270
+ run_reason 1 '' '<secret>' 'failed token=abcdefghijklmnopqrst'
271
+ run_reason 1 '{"type":"result","subtype":"success","is_error":false,"oauth_token":"abcdefghijklmnopqrst","result":"not ok"}' '<secret>'
272
+ run_reason 0 '{"type":"result","subtype":"success","is_error":false,"structured_output":"ok","result":"rate limit exceeded"}' 'quota/rate limit'
273
+ run_reason 1 '{"type":"result","subtype":"success","is_error":false,"result":"ok"}' 'Claude no-tool probe failed'
274
+ run_reason 1 '' 'Claude no-tool probe failed: <path>' '/workspace/project/script failed'
275
+ run_reason 1 '' 'inspect local probe stderr' '/workspace/project/script'
276
+ run_reason 1 '' 'Claude no-tool probe failed: <path>' '/Applications/Tool/app failed'
277
+ run_reason 1 '' 'Claude no-tool probe failed: open:<path>' 'open:/workspace/project/script failed'
278
+ run_reason 1 '' 'Claude no-tool probe failed: open <path>' 'open /root failed'
279
+ run_reason 1 '' 'Claude no-tool probe failed: open <path>' 'open home/user/.claude/file failed'
280
+ run_reason 0 '{"type":"assistant","subtype":"success","is_error":false,"terminal_reason":"completed","result":"ok"}' 'missing the init event'
281
+ run_reason 0 '{"type":"result","subtype":"success","is_error":false,"permission_denials":["Read"],"result":"ok"}' 'permission denials'
282
+ run_reason 0 '{"type":"result","subtype":"error","is_error":true,"result":"boom"}' 'error envelope'
283
+ run_reason 0 '{"type":"result","subtype":"error","is_error":true,"result":"failed at /workspace/example/project/file"}' "error envelope: failed at $redacted_path"
284
+ run_reason 0 '{"type":"result","subtype":"success","is_error":"true","result":"ok"}' 'error envelope'
285
+ run_reason 0 '{"type":"result","subtype":"success","is_error":false,"api_error_status":500,"result":"ok"}' 'API error status 500'
286
+ run_reason 1 '' 'stderr failure text' 'stderr failure text'
287
+
288
+ # --- stream-json ground-truth path (declared/invoked tools, not the reply token) ---
289
+ empty_init='{"type":"system","subtype":"init","permissionMode":"default","tools":[],"mcp_servers":[],"slash_commands":[],"skills":[],"plugins":[]}'
290
+ run_reason_strict 0 'ok' 'missing the required stream-json init evidence'
291
+ run_ok_strict 0 "$empty_init"$'\n{"type":"result","subtype":"success","is_error":false,"result":"ok"}'
292
+ read_init='{"type":"system","subtype":"init","permissionMode":"default","tools":["Read","Grep","Glob"],"mcp_servers":[],"slash_commands":[],"skills":[],"plugins":[]}'
293
+ run_ok_expected_tools 'Read,Grep,Glob' 0 "$read_init"$'\n{"type":"result","subtype":"success","is_error":false,"result":"ok"}'
294
+ run_ok_expected_tool_use 'Read,Grep,Glob' 0 "$read_init"$'\n{"type":"assistant","message":{"content":[{"type":"tool_use","name":"Read","input":{}}]}}\n{"type":"result","subtype":"success","is_error":false,"result":"ok"}'
295
+ # Claude Code 2.1.218 exposes these exact host built-ins whenever an explicit
296
+ # plugin enables the command registry. They are not plugin-owned commands or
297
+ # model tools, so a selected native skill remains valid.
298
+ run_ok_expected_native_skills 'testing-strategy' 'testing-strategy' 0 \
299
+ $'{"type":"system","subtype":"init","permissionMode":"default","tools":[],"mcp_servers":[],"slash_commands":["ccl-skills:testing-strategy","workflow-launch-exec","ultrareview"],"skills":["testing-strategy"],"plugins":["ccl-skills"]}\n{"type":"result","subtype":"success","is_error":false,"result":"ok"}'
300
+ # The same owner-aware path remains value-exact: an arbitrary command cannot
301
+ # hide beside the two registered host built-ins.
302
+ run_reason_expected_native_skills 'testing-strategy' 'testing-strategy' 0 \
303
+ $'{"type":"system","subtype":"init","permissionMode":"default","tools":[],"mcp_servers":[],"slash_commands":["ccl-skills:testing-strategy","workflow-launch-exec","ultrareview","unrelated:danger"],"skills":["testing-strategy"],"plugins":["ccl-skills"]}\n{"type":"result","subtype":"success","is_error":false,"result":"ok"}' \
304
+ 'runtime capability surface is not empty'
305
+ # A matching name in either executable surface is still terminal. Built-in UI
306
+ # registration never authorizes a tool declaration or invocation.
307
+ run_reason_expected_native_skills 'testing-strategy' 'testing-strategy' 0 \
308
+ $'{"type":"system","subtype":"init","permissionMode":"default","tools":["workflow-launch-exec"],"mcp_servers":[],"slash_commands":["ccl-skills:testing-strategy","workflow-launch-exec","ultrareview"],"skills":["testing-strategy"],"plugins":["ccl-skills"]}\n{"type":"result","subtype":"success","is_error":false,"result":"ok"}' \
309
+ 'runtime capability surface is not empty'
310
+ run_reason_expected_native_skills 'testing-strategy' 'testing-strategy' 0 \
311
+ $'{"type":"system","subtype":"init","permissionMode":"default","tools":[],"mcp_servers":[],"slash_commands":["ccl-skills:testing-strategy","workflow-launch-exec","ultrareview"],"skills":["testing-strategy"],"plugins":["ccl-skills"]}\n{"type":"assistant","message":{"content":[{"type":"tool_use","name":"workflow-launch-exec","input":{}}]}}\n{"type":"result","subtype":"success","is_error":false,"result":"ok"}' \
312
+ 'runtime capability surface is not empty'
313
+ run_reason_expected_tools_implicit_strict 'Read,Grep,Glob' 0 'ok' \
314
+ 'missing the required stream-json init evidence'
315
+ run_reason_runtime_surface '' 0 "$empty_init"$'\n{"type":"result","subtype":"success","is_error":false,"result":"ok"}' 'auth-path false negative' 'Not logged in · Please run /login'
316
+ run_reason_runtime_surface '' 0 "$empty_init"$'\n{"type":"result","subtype":"success","is_error":false,"result":"ok"}' 'quota/rate limit' 'rate limit exceeded'
317
+ run_reason_runtime_surface '' 0 "$empty_init"$'\n{"type":"result","subtype":"success","is_error":false,"api_error_status":401,"result":"schema unavailable"}' 'auth-path false negative'
318
+ run_reason_runtime_surface '' 0 "$empty_init"$'\n{"type":"result","subtype":"success","is_error":false,"api_error_status":429,"result":"schema unavailable"}' 'quota/rate limit'
319
+ run_reason_runtime_surface '' 0 $'Not logged in · Please run /login\n'"$empty_init"$'\n{"type":"result","subtype":"success","is_error":false,"result":"ok"}' 'runtime isolation surface is invalid'
320
+ run_reason_runtime_surface '' 0 $'rate limit exceeded\n'"$empty_init"$'\n{"type":"result","subtype":"success","is_error":false,"result":"ok"}' 'runtime isolation surface is invalid'
321
+ run_reason_runtime_surface '' 0 "$empty_init"$'\n{"type":"result","subtype":"error","is_error":true,"result":"boom"}' 'runtime isolation surface is invalid'
322
+ run_reason_runtime_surface '' 0 "$empty_init"$'\n{"type":"result","subtype":"success","is_error":false,"permission_denials":["Read"],"result":"ok"}' 'permission denials'
323
+ run_reason_runtime_surface '' 0 $'{\n "type":"result",\n "subtype":"success",\n "is_error":false,\n "result":"Not logged in; quoted model prose"\n}' 'missing the required stream-json init evidence'
324
+ run_reason_runtime_surface_implicit_strict \
325
+ '{"type":"result","subtype":"success","is_error":false,"result":"ok"}' \
326
+ 'missing the required stream-json init evidence'
327
+ # A valid init without any terminal result event is never sufficient runtime
328
+ # evidence, even when every declared capability surface is clean.
329
+ run_reason_runtime_surface '' 0 "$empty_init"$'\n{"type":"assistant","message":{"content":[{"type":"text","text":"ok"}]}}' 'runtime isolation surface is invalid'
330
+ # Runtime isolation ignores model reply prose, but never structural error fields
331
+ # or stderr auth/quota evidence; result parsing owns the reply payload afterward.
332
+ run_ok_runtime_surface '' 0 "$empty_init"$'\n{"type":"result","subtype":"success","is_error":false,"result":"Not logged in · Please run /login"}'
333
+ # Unknown init field, surface-shaped (non-empty list/dict): could enumerate a
334
+ # new invocable surface -> fails closed.
335
+ run_reason 0 $'{"type":"system","subtype":"init","permissionMode":"default","tools":[],"mcp_servers":[],"slash_commands":[],"skills":[],"plugins":[],"future_capabilities":["x"]}\n{"type":"result","subtype":"success","is_error":false,"result":"ok"}' 'unrecognized surface-shaped init field'
336
+ run_reason 0 $'{"type":"system","subtype":"init","permissionMode":"default","tools":[],"mcp_servers":[],"slash_commands":[],"skills":[],"plugins":[],"future_capabilities":{"enabled":true}}\n{"type":"result","subtype":"success","is_error":false,"result":"ok"}' 'unrecognized surface-shaped init field'
337
+ # The reason names the offending field so the follow-up is a one-line review.
338
+ run_reason 0 $'{"type":"system","subtype":"init","permissionMode":"default","tools":[],"mcp_servers":[],"slash_commands":[],"skills":[],"plugins":[],"future_capabilities":["x"]}\n{"type":"result","subtype":"success","is_error":false,"result":"ok"}' 'future_capabilities'
339
+ # Unknown init field carrying a scalar (or an empty container) is metadata: it
340
+ # cannot enumerate a surface, so a routine CLI release does not fail the lane.
341
+ run_ok 0 $'{"type":"system","subtype":"init","permissionMode":"default","tools":[],"mcp_servers":[],"slash_commands":[],"skills":[],"plugins":[],"future_capability":"enabled"}\n{"type":"result","subtype":"success","is_error":false,"result":"ok"}'
342
+ run_ok 0 $'{"type":"system","subtype":"init","permissionMode":"default","tools":[],"mcp_servers":[],"slash_commands":[],"skills":[],"plugins":[],"future_capability":false}\n{"type":"result","subtype":"success","is_error":false,"result":"ok"}'
343
+ run_ok 0 $'{"type":"system","subtype":"init","permissionMode":"default","tools":[],"mcp_servers":[],"slash_commands":[],"skills":[],"plugins":[],"future_capability":0}\n{"type":"result","subtype":"success","is_error":false,"result":"ok"}'
344
+ run_ok 0 $'{"type":"system","subtype":"init","permissionMode":"default","tools":[],"mcp_servers":[],"slash_commands":[],"skills":[],"plugins":[],"future_capability":null}\n{"type":"result","subtype":"success","is_error":false,"result":"ok"}'
345
+ run_ok 0 $'{"type":"system","subtype":"init","permissionMode":"default","tools":[],"mcp_servers":[],"slash_commands":[],"skills":[],"plugins":[],"future_capabilities":[]}\n{"type":"result","subtype":"success","is_error":false,"result":"ok"}'
346
+ run_ok 0 $'{"type":"system","subtype":"init","permissionMode":"default","tools":[],"mcp_servers":[],"slash_commands":[],"skills":[],"plugins":[],"future_capabilities":{}}\n{"type":"result","subtype":"success","is_error":false,"result":"ok"}'
347
+ run_ok 0 $'{"type":"system","subtype":"init","tools":[],"mcp_servers":[],"slash_commands":[],"skills":[],"plugins":[],"permissionMode":"default"}\n{"type":"result","subtype":"success","is_error":false,"result":"ok"}'
348
+ run_ok_expected_tools 'Read,Grep,Glob' 0 $'{"type":"system","subtype":"init","tools":["Read","Grep","Glob"],"mcp_servers":[],"slash_commands":[],"skills":[],"plugins":[],"permissionMode":"plan"}\n{"type":"result","subtype":"success","is_error":false,"result":"ok"}'
349
+ # permissionMode stays value-pinned: it changes what the runtime may do without
350
+ # any tool being added. It must report as a BREACHED boundary, not as schema
351
+ # drift — the drift class is fallback-eligible in claude_review.sh, so routing a
352
+ # real privilege escalation through it would downgrade "stop the lane" to "try
353
+ # another client".
354
+ # Authority must be STATED, not merely benign. An init that stops reporting it
355
+ # is unverifiable, not permissive — otherwise a CLI that renames the knob makes
356
+ # the old name vanish and the drift policy waves the new scalar through.
357
+ # Unverifiable, though, is NOT a proven breach: it reports in the
358
+ # fallback-eligible class, because terminalizing a rename would reproduce the
359
+ # very outage this landing removes. Only a KNOWN field with a KNOWN-unsafe value
360
+ # is terminal.
361
+ run_reason 0 $'{"type":"system","subtype":"init","tools":[],"mcp_servers":[],"slash_commands":[],"skills":[],"plugins":[]}\n{"type":"result","subtype":"success","is_error":false,"result":"ok"}' 'authority is no longer verifiable'
362
+ # A renamed knob loses the required field AND trips the authority-name guard;
363
+ # both land in the same unverifiable-authority class.
364
+ run_reason 0 $'{"type":"system","subtype":"init","tools":[],"mcp_servers":[],"slash_commands":[],"skills":[],"plugins":[],"permission_mode":"bypassPermissions"}\n{"type":"result","subtype":"success","is_error":false,"result":"ok"}' 'authority is no longer verifiable'
365
+ # An ADDED authority knob keeps the required field, so it is the name guard that
366
+ # has to catch it — scalar shape and all.
367
+ run_reason 0 $'{"type":"system","subtype":"init","tools":[],"mcp_servers":[],"slash_commands":[],"skills":[],"plugins":[],"permissionMode":"default","dangerously_skip_permissions":true}\n{"type":"result","subtype":"success","is_error":false,"result":"ok"}' 'authority: dangerously_skip_permissions'
368
+ # ...but a neutral unknown scalar is still tolerated: the guard must not have
369
+ # quietly re-pinned the schema it was added to keep open.
370
+ run_ok 0 $'{"type":"system","subtype":"init","tools":[],"mcp_servers":[],"slash_commands":[],"skills":[],"plugins":[],"permissionMode":"default","future_render_mode":"compact"}\n{"type":"result","subtype":"success","is_error":false,"result":"ok"}'
371
+ bypass_init=$'{"type":"system","subtype":"init","tools":[],"mcp_servers":[],"slash_commands":[],"skills":[],"plugins":[],"permissionMode":"bypassPermissions"}\n{"type":"result","subtype":"success","is_error":false,"result":"ok"}'
372
+ run_reason 0 "$bypass_init" 'unsafe runtime capability value on permissionMode'
373
+ # ...and it must NOT carry the drift phrase, which routes to fallback.
374
+ run_reason_excludes 0 "$bypass_init" 'unrecognized surface-shaped init field'
375
+ # `agents` is shape-checked only: an agent is unreachable without the Agent tool,
376
+ # which the `tools` allowlist already pins, so a new built-in agent name in a CLI
377
+ # release must not take the lane down.
378
+ run_ok 0 $'{"type":"system","subtype":"init","permissionMode":"default","tools":[],"mcp_servers":[],"slash_commands":[],"skills":[],"plugins":[],"agents":["Explore"]}\n{"type":"result","subtype":"success","is_error":false,"result":"ok"}'
379
+ run_ok 0 $'{"type":"system","subtype":"init","permissionMode":"default","tools":[],"mcp_servers":[],"slash_commands":[],"skills":[],"plugins":[],"agents":["FutureAgent"]}\n{"type":"result","subtype":"success","is_error":false,"result":"ok"}'
380
+ # ...but a non-string member or non-list shape is an unverifiable descriptor
381
+ # schema and still fails closed.
382
+ run_reason 0 $'{"type":"system","subtype":"init","permissionMode":"default","tools":[],"mcp_servers":[],"slash_commands":[],"skills":[],"plugins":[],"agents":[{"name":"FutureAgent"}]}\n{"type":"result","subtype":"success","is_error":false,"result":"ok"}' 'unrecognized surface-shaped init field'
383
+ run_reason 0 $'{"type":"system","subtype":"init","permissionMode":"default","tools":[],"mcp_servers":[],"slash_commands":[],"skills":[],"plugins":[],"agents":"Explore"}\n{"type":"result","subtype":"success","is_error":false,"result":"ok"}' 'unrecognized surface-shaped init field'
384
+ # A known scalar metadata field that turns container-shaped is still suspicious.
385
+ run_reason 0 $'{"type":"system","subtype":"init","permissionMode":"default","tools":[],"mcp_servers":[],"slash_commands":[],"skills":[],"plugins":[],"cwd":{"path":"workspace"}}\n{"type":"result","subtype":"success","is_error":false,"result":"ok"}' 'unrecognized surface-shaped init field'
386
+ # `capabilities` (CLI 2.1.207+) announces host stream-protocol features, not
387
+ # model-invocable surfaces, so it is shape-checked without a value vocabulary:
388
+ # any list of strings passes; a non-string element or non-list shape fails.
389
+ run_ok 0 $'{"type":"system","subtype":"init","permissionMode":"default","tools":[],"mcp_servers":[],"slash_commands":[],"skills":[],"plugins":[],"capabilities":["interrupt_receipt_v1","msg_lifecycle_v1"]}\n{"type":"result","subtype":"success","is_error":false,"result":"ok"}'
390
+ run_ok 0 $'{"type":"system","subtype":"init","permissionMode":"default","tools":[],"mcp_servers":[],"slash_commands":[],"skills":[],"plugins":[],"capabilities":["interrupt_receipt_v1"]}\n{"type":"result","subtype":"success","is_error":false,"result":"ok"}'
391
+ run_ok 0 $'{"type":"system","subtype":"init","permissionMode":"default","tools":[],"mcp_servers":[],"slash_commands":[],"skills":[],"plugins":[],"capabilities":[]}\n{"type":"result","subtype":"success","is_error":false,"result":"ok"}'
392
+ # THE regression: CLI 2.1.220 added the `interrupt_cancel_queued_v1` capability
393
+ # token and the `fast_mode_disabled_reason` field. Under the old value-exact
394
+ # whitelist both made every Claude lane inconclusive on a fully isolated run.
395
+ run_ok 0 $'{"type":"system","subtype":"init","tools":[],"mcp_servers":[],"slash_commands":[],"skills":[],"plugins":[],"agents":["claude","Explore","general-purpose","Plan"],"capabilities":["interrupt_receipt_v1","interrupt_cancel_queued_v1","msg_lifecycle_v1"],"claude_code_version":"2.1.220","fast_mode_state":"off","fast_mode_disabled_reason":"sdk_opt_in_required","permissionMode":"default","output_style":"default","apiKeySource":"none","analytics_disabled":false,"product_feedback_disabled":false,"model":"claude-opus-5[1m]","cwd":"/tmp/x","session_id":"s","uuid":"u"}\n{"type":"result","subtype":"success","is_error":false,"result":"ok"}'
396
+ # A future protocol token passes on shape alone. Deliberately a neutral name:
397
+ # the fixture must not read as blessing a capability that claims tool execution
398
+ # — if such a token ever appears, the `tools` allowlist and tool_use scan are
399
+ # what refuse it, and the token itself would warrant its own review.
400
+ run_ok 0 $'{"type":"system","subtype":"init","permissionMode":"default","tools":[],"mcp_servers":[],"slash_commands":[],"skills":[],"plugins":[],"capabilities":["future_protocol_v1"]}\n{"type":"result","subtype":"success","is_error":false,"result":"ok"}'
401
+ run_reason 0 $'{"type":"system","subtype":"init","permissionMode":"default","tools":[],"mcp_servers":[],"slash_commands":[],"skills":[],"plugins":[],"capabilities":[{"name":"interrupt_receipt_v1"}]}\n{"type":"result","subtype":"success","is_error":false,"result":"ok"}' 'unrecognized surface-shaped init field'
402
+ run_reason 0 $'{"type":"system","subtype":"init","permissionMode":"default","tools":[],"mcp_servers":[],"slash_commands":[],"skills":[],"plugins":[],"capabilities":{"interrupt_receipt_v1":true}}\n{"type":"result","subtype":"success","is_error":false,"result":"ok"}' 'unrecognized surface-shaped init field'
403
+ run_reason 0 $'{"type":"system","subtype":"init","permissionMode":"default","tools":[],"mcp_servers":[],"slash_commands":[],"skills":[],"plugins":[],"capabilities":"interrupt_receipt_v1"}\n{"type":"result","subtype":"success","is_error":false,"result":"ok"}' 'unrecognized surface-shaped init field'
404
+ # duplicate JSON keys must not launder a value behind a clean last occurrence:
405
+ # a duplicate-key record is malformed stream evidence regardless of vocabulary.
406
+ run_reason 0 $'{"type":"system","subtype":"init","permissionMode":"default","tools":[],"mcp_servers":[],"slash_commands":[],"skills":[],"plugins":[],"capabilities":["tool_exec_v1"],"capabilities":[]}\n{"type":"result","subtype":"success","is_error":false,"result":"ok"}' 'malformed stream-json record'
407
+ # strict mode keeps the same verdicts for the drift-tolerant fields.
408
+ run_ok_strict 0 $'{"type":"system","subtype":"init","permissionMode":"default","tools":[],"mcp_servers":[],"slash_commands":[],"skills":[],"plugins":[],"capabilities":["interrupt_receipt_v1","interrupt_cancel_queued_v1"],"fast_mode_disabled_reason":"sdk_opt_in_required"}\n{"type":"result","subtype":"success","is_error":false,"result":"ok"}'
409
+ run_reason_strict 0 $'{"type":"system","subtype":"init","permissionMode":"default","tools":[],"mcp_servers":[],"slash_commands":[],"skills":[],"plugins":[],"capabilities":[{"name":"tool_exec_v1"}]}\n{"type":"result","subtype":"success","is_error":false,"result":"ok"}' 'unrecognized surface-shaped init field'
410
+ # The load-bearing proof is untouched: a declared tool or an invoked tool still
411
+ # fails even when every drift-tolerant field looks routine.
412
+ run_reason 0 $'{"type":"system","subtype":"init","permissionMode":"default","tools":["Bash"],"mcp_servers":[],"slash_commands":[],"skills":[],"plugins":[],"capabilities":["interrupt_cancel_queued_v1"],"fast_mode_disabled_reason":"sdk_opt_in_required"}\n{"type":"result","subtype":"success","is_error":false,"result":"ok"}' 'the no-tool sandbox is not enforced'
413
+ run_reason 0 $'{"type":"system","subtype":"init","permissionMode":"default","tools":["Write"],"mcp_servers":[],"slash_commands":[],"skills":[],"plugins":[],"capabilities":["interrupt_cancel_queued_v1"],"fast_mode_disabled_reason":"sdk_opt_in_required"}\n{"type":"result","subtype":"success","is_error":false,"result":"ok"}' 'runtime capability surface is not empty'
414
+ run_reason 0 $'{"type":"system","subtype":"init","permissionMode":"default","tools":[],"mcp_servers":[],"slash_commands":[],"skills":[],"plugins":[],"fast_mode_disabled_reason":"sdk_opt_in_required"}\n{"type":"assistant","message":{"content":[{"type":"tool_use","name":"Write","input":{}}]}}\n{"type":"result","subtype":"success","is_error":false,"result":"ok"}' 'runtime capability surface is not empty'
415
+ # Drift + a real breach in the same init must report as the BREACH. Review round
416
+ # 4 suspected `unexpected_customization_identifiers` was missing from the
417
+ # main-path `runtime_drift_only` guard; it stays out because every identifier it
418
+ # reports lands in a set that IS in the guard, and these fixtures pin that so the
419
+ # soft drift reason can never launder a combined case. Note which set: an
420
+ # identifier that is provably a customization marks its field non-empty, while a
421
+ # bare host-vocabulary name lands in the unclassifiable set instead — so the
422
+ # fixtures below use a NAMESPACED foreign identifier, which is the one that is
423
+ # still a proven breach.
424
+ run_reason_runtime_surface '' 0 $'{"type":"system","subtype":"init","permissionMode":"default","tools":[],"mcp_servers":[],"slash_commands":[],"skills":["some-skill"],"plugins":[],"future_surface":["x"]}\n{"type":"result","subtype":"success","is_error":false,"terminal_reason":"completed","structured_output":{"mode":"challenge","findings":[]}}' 'runtime isolation surface is invalid'
425
+ run_reason_runtime_surface '' 0 $'{"type":"system","subtype":"init","permissionMode":"default","tools":[],"mcp_servers":[],"slash_commands":[],"skills":["some-skill"],"plugins":[],"future_surface":["x"]}\n{"type":"result","subtype":"success","is_error":false,"terminal_reason":"completed","structured_output":{"mode":"challenge","findings":[]}}' 'unexpected_customizations=skills'
426
+ # ...and the main-path guard must match the probe path's breach set exactly.
427
+ # A tool_use with no allowance, and an unexpected identifier under an owner-aware
428
+ # run, are the two legs where the two guards could silently diverge again.
429
+ run_reason_runtime_surface_no_tool_use_allowance 'Write' 0 $'{"type":"system","subtype":"init","permissionMode":"default","tools":["Write"],"mcp_servers":[],"slash_commands":[],"skills":[],"plugins":[],"future_surface":["x"]}\n{"type":"assistant","message":{"content":[{"type":"tool_use","name":"Write","input":{}}]}}\n{"type":"result","subtype":"success","is_error":false,"terminal_reason":"completed","structured_output":{"mode":"challenge","findings":[]}}' 'runtime isolation surface is invalid'
430
+ run_reason_runtime_surface_native 'testing-strategy' 0 $'{"type":"system","subtype":"init","permissionMode":"default","tools":[],"mcp_servers":[],"slash_commands":["ccl-skills:testing-strategy"],"skills":["testing-strategy","other-plugin:unrelated-skill"],"plugins":["ccl-skills"],"future_surface":["x"]}\n{"type":"result","subtype":"success","is_error":false,"terminal_reason":"completed","structured_output":{"mode":"challenge","findings":[]}}' 'unexpected_customization_identifiers=skills:other-plugin:unrelated-skill'
431
+ # The same fixture with a BARE unknown skill is deliberately the other verdict:
432
+ # it reports the soft class, because a bare name outside the built-in snapshot is
433
+ # not proof of a customization. Pinned explicitly so the split above is asserted
434
+ # rather than merely allowed by the fixture's choice of identifier. `future_surface`
435
+ # is dropped here on purpose — with schema drift also present the reason is the
436
+ # broader drift phrase, which this helper forbids by design; that combined case is
437
+ # pinned in the policy matrix instead.
438
+ run_reason_runtime_surface_native 'testing-strategy' 0 $'{"type":"system","subtype":"init","permissionMode":"default","tools":[],"mcp_servers":[],"slash_commands":["ccl-skills:testing-strategy"],"skills":["testing-strategy","unrelated-skill"],"plugins":["ccl-skills"]}\n{"type":"result","subtype":"success","is_error":false,"terminal_reason":"completed","structured_output":{"mode":"challenge","findings":[]}}' 'unclassifiable_host_vocabulary=skills:unrelated-skill'
439
+ # Same rule on the probe path: drift alongside a declared surface, an unexpected
440
+ # tool, or a tool_use must report the BREACH. The drift phrase routes to
441
+ # fallback, so reaching it first would launder a real breach.
442
+ combo_drift_breach=$'{"type":"system","subtype":"init","permissionMode":"default","tools":[],"mcp_servers":[],"slash_commands":[],"skills":["some-skill"],"plugins":[],"future_surface":["x"]}\n{"type":"result","subtype":"success","is_error":false,"result":"ok"}'
443
+ run_reason 0 "$combo_drift_breach" 'runtime capability surface is not empty'
444
+ run_reason_excludes 0 "$combo_drift_breach" 'unrecognized surface-shaped init field'
445
+ combo_drift_tool=$'{"type":"system","subtype":"init","permissionMode":"default","tools":["Write"],"mcp_servers":[],"slash_commands":[],"skills":[],"plugins":[],"future_surface":["x"]}\n{"type":"result","subtype":"success","is_error":false,"result":"ok"}'
446
+ run_reason_excludes 0 "$combo_drift_tool" 'unrecognized surface-shaped init field'
447
+ combo_drift_use=$'{"type":"system","subtype":"init","permissionMode":"default","tools":[],"mcp_servers":[],"slash_commands":[],"skills":[],"plugins":[],"future_surface":["x"]}\n{"type":"assistant","message":{"content":[{"type":"tool_use","name":"Write","input":{}}]}}\n{"type":"result","subtype":"success","is_error":false,"result":"ok"}'
448
+ run_reason_excludes 0 "$combo_drift_use" 'unrecognized surface-shaped init field'
449
+ # A declared CCL skill/plugin surface is still rejected under drift tolerance.
450
+ run_reason 0 $'{"type":"system","subtype":"init","permissionMode":"default","tools":[],"mcp_servers":[],"slash_commands":[],"skills":["some-skill"],"plugins":[],"fast_mode_disabled_reason":"sdk_opt_in_required"}\n{"type":"result","subtype":"success","is_error":false,"result":"ok"}' 'runtime capability surface is not empty'
451
+ # THE flakiness fix: model hallucinates TOOL_ENABLED but every runtime surface is empty -> pass.
452
+ run_ok 0 "$empty_init"$'\n{"type":"result","subtype":"success","is_error":false,"num_turns":1,"permission_denials":[],"result":"TOOL_ENABLED"}'
453
+ # clean ok via stream -> pass.
454
+ run_ok 0 "$empty_init"$'\n{"type":"result","subtype":"success","is_error":false,"result":"ok"}'
455
+ # Missing runtime-surface fields are unverifiable, not equivalent to empty.
456
+ run_reason 0 $'{"type":"system","subtype":"init","permissionMode":"default","tools":[]}\n{"type":"result","subtype":"success","is_error":false,"result":"ok"}' 'missing required isolation fields'
457
+ # Any declared tool or inherited customization surface fails closed.
458
+ run_reason 0 $'{"type":"system","subtype":"init","permissionMode":"default","tools":["Read"],"mcp_servers":[],"slash_commands":[],"skills":[],"plugins":[]}\n{"type":"result","subtype":"success","is_error":false,"result":"ok"}' 'runtime capability surface is not empty'
459
+ # A changed tool-descriptor shape must not be silently dropped into an empty
460
+ # declared set; unknown/non-string elements make init ground truth invalid.
461
+ run_reason 0 $'{"type":"system","subtype":"init","permissionMode":"default","tools":[{"name":"Bash"}],"mcp_servers":[],"slash_commands":[],"skills":[],"plugins":[]}\n{"type":"result","subtype":"success","is_error":false,"result":"ok"}' 'missing required isolation fields'
462
+ run_reason 0 $'{"type":"system","subtype":"init","permissionMode":"default","tools":[],"mcp_servers":[{"name":"x"}],"slash_commands":[],"skills":[],"plugins":[]}\n{"type":"result","subtype":"success","is_error":false,"result":"ok"}' 'runtime capability surface is not empty'
463
+ run_reason 0 $'{"type":"system","subtype":"init","permissionMode":"default","tools":[],"mcp_servers":[],"slash_commands":["review"],"skills":[],"plugins":[]}\n{"type":"result","subtype":"success","is_error":false,"result":"ok"}' 'runtime capability surface is not empty'
464
+ run_reason 0 $'{"type":"system","subtype":"init","permissionMode":"default","tools":[],"mcp_servers":[],"slash_commands":[],"skills":["review"],"plugins":[]}\n{"type":"result","subtype":"success","is_error":false,"result":"ok"}' 'runtime capability surface is not empty'
465
+ run_reason 0 $'{"type":"system","subtype":"init","permissionMode":"default","tools":[],"mcp_servers":[],"slash_commands":[],"skills":[],"plugins":["x"]}\n{"type":"result","subtype":"success","is_error":false,"result":"ok"}' 'runtime capability surface is not empty'
466
+ # closes the latent false-negative: Bash DECLARED in init.tools, reply says ok -> fail.
467
+ run_reason 0 $'{"type":"system","subtype":"init","permissionMode":"default","tools":["Bash","Read"],"mcp_servers":[],"slash_commands":[],"skills":[],"plugins":[]}\n{"type":"result","subtype":"success","is_error":false,"result":"ok"}' 'Bash tool is available'
468
+ # Bash actually INVOKED via tool_use block -> fail (sandbox not enforced).
469
+ run_reason 0 "$empty_init"$'\n{"type":"assistant","message":{"role":"assistant","content":[{"type":"tool_use","name":"Bash","input":{}}]}}\n{"type":"result","subtype":"success","is_error":false,"num_turns":2,"result":"TOOL_ENABLED"}' 'Bash tool is available'
470
+ # Any non-Bash tool_use is also a hard fail.
471
+ run_reason 0 "$empty_init"$'\n{"type":"assistant","message":{"role":"assistant","content":[{"type":"tool_use","name":"Read","input":{}}]}}\n{"type":"result","subtype":"success","is_error":false,"result":"ok"}' 'runtime capability surface is not empty'
472
+ # A malformed tool_use name is still evidence that a tool invocation occurred;
473
+ # missing/non-string names must fail closed instead of disappearing.
474
+ run_reason 0 "$empty_init"$'\n{"type":"assistant","message":{"role":"assistant","content":[{"type":"tool_use","input":{}}]}}\n{"type":"result","subtype":"success","is_error":false,"result":"ok"}' 'runtime capability surface is not empty'
475
+ run_reason 0 "$empty_init"$'\n{"type":"assistant","message":{"role":"assistant","content":[{"type":"tool_use","name":{"value":"Bash"},"input":{}}]}}\n{"type":"result","subtype":"success","is_error":false,"result":"ok"}' 'runtime capability surface is not empty'
476
+ # ground-truth does not override auth/quota: 401 in a stream envelope still classifies auth.
477
+ run_reason 0 "$empty_init"$'\n{"type":"result","subtype":"success","is_error":false,"api_error_status":401,"result":"ok"}' 'auth-path false negative'
478
+ # ground-truth does not override permission denials.
479
+ run_reason 0 "$empty_init"$'\n{"type":"result","subtype":"success","is_error":false,"permission_denials":["Read"],"result":"ok"}' 'permission denials'
480
+ # A non-Bash MCP-like tool name is still a forbidden declared tool.
481
+ run_reason 0 $'{"type":"system","subtype":"init","permissionMode":"default","tools":["mcp__bashful__run"],"mcp_servers":[],"slash_commands":[],"skills":[],"plugins":[]}\n{"type":"result","subtype":"success","is_error":false,"result":"ok"}' 'runtime capability surface is not empty'
482
+ # false-negative hardening (codex review):
483
+ # P1a: Bash tool_use with NO init event + clean ok reply must still fail.
484
+ run_reason 0 $'{"type":"assistant","message":{"role":"assistant","content":[{"type":"tool_use","name":"Bash","input":{}}]}}\n{"type":"result","subtype":"success","is_error":false,"result":"ok"}' 'Bash tool is available'
485
+ # P1b: malformed stream record after an init must fail closed, not pass on the ok reply.
486
+ run_reason 0 "$empty_init"$'\n{"type":"assistant", BROKEN_RECORD\n{"type":"result","subtype":"success","is_error":false,"result":"ok"}' 'ground-truth is unverifiable'
487
+ # confirmed stream (valid init) with a Bash tool_use line that lost its leading
488
+ # '{' must fail closed: in a real stream every line is JSON, so a non-JSON line
489
+ # is a dropped/corrupt record that may have hidden the Bash call.
490
+ run_reason 0 "$empty_init"$'\n"type":"assistant","message":{"role":"assistant","content":[{"type":"tool_use","name":"Bash","input":{}}]}}\n{"type":"result","subtype":"success","is_error":false,"result":"ok"}' 'ground-truth is unverifiable'
491
+ # stream-json with NO init event (e.g. dropped) must fail closed, not pass on ok.
492
+ run_reason 0 $'{"type":"assistant","message":{"role":"assistant","content":[{"type":"text","text":"ok"}]}}\n{"type":"result","subtype":"success","is_error":false,"result":"ok"}' 'missing the init event'
493
+ # a plain single envelope with a trailing telemetry object is NOT stream-json -> still passes.
494
+ run_ok 0 $'{"type":"result","subtype":"success","is_error":false,"result":"ok"}\n{"type":"telemetry","message":"footer"}'
495
+ # P1b': the init record ITSELF malformed must fail closed (don't fall to text fallback).
496
+ run_reason 0 $'{"type":"system","subtype":"init","permissionMode":"default","tools":["Bash"] BROKEN\n{"type":"result","subtype":"success","is_error":false,"result":"ok"}' 'ground-truth is unverifiable'
497
+ # P2: a later init declaring Bash must not be masked by an earlier empty init.
498
+ run_reason 0 "$empty_init"$'\n{"type":"system","subtype":"init","permissionMode":"default","tools":["Bash"],"mcp_servers":[],"slash_commands":[],"skills":[],"plugins":[]}\n{"type":"result","subtype":"success","is_error":false,"result":"ok"}' 'Bash tool is available'
499
+ # pretty-printed single envelope (bare-brace lines) must still pass via the text fallback.
500
+ run_ok 0 $'{\n "type": "result",\n "subtype": "success",\n "is_error": false,\n "result": "ok"\n}'
501
+
502
+ # --- host vocabulary is unverifiable, not a proven breach -------------------
503
+ # The review-skill invocation is the only shape whose customization lists are
504
+ # populated by the host's own built-ins, so a name this repo's snapshot does not
505
+ # know cannot be shown to be a user customization. It must refuse WITHOUT
506
+ # terminating the lane; anything that IS provably a customization must not
507
+ # inherit that softer class. `product-rd-workflow` is used as the selected skill
508
+ # because a name that is also a built-in skill trips the ambiguous-owner guard
509
+ # and would mask the verdict under test.
510
+ native_vocab_result=$'\n{"type":"result","subtype":"success","is_error":false,"result":"ok"}'
511
+ native_vocab_init() {
512
+ printf '{"type":"system","subtype":"init","permissionMode":"default","tools":%s,"mcp_servers":[],"slash_commands":%s,"skills":%s,"plugins":[{"name":"ccl-skills"}]}' \
513
+ "${1:-[]}" "${2:-[\"init\",\"agents\"]}" "${3:-[\"ccl-skills:product-rd-workflow\",\"dataviz\"]}"
514
+ }
515
+ run_reason_native_excludes() {
516
+ local stdout="$1" forbidden="$2" expected="$3" out
517
+ printf '%s' "$stdout" > "$tmp_dir/stdout"
518
+ : > "$tmp_dir/stderr"
519
+ if out="$(python3 "$parser" 0 "$tmp_dir/stdout" "$tmp_dir/stderr" \
520
+ --require-empty-init \
521
+ --expected-native-skills product-rd-workflow \
522
+ --required-native-skills product-rd-workflow)"; then
523
+ printf 'expected native-skill parser failure for stdout: %s\n' "$stdout" >&2
524
+ return 1
525
+ fi
526
+ if printf '%s' "$out" | grep -F "$forbidden" >/dev/null; then
527
+ printf 'a proven customization must not report as %q: %s\n' "$forbidden" "$out" >&2
528
+ return 1
529
+ fi
530
+ printf '%s' "$out" | grep -F "$expected" >/dev/null
531
+ }
532
+ # the base itself is accepted, or none of the rows below prove anything
533
+ run_ok_expected_native_skills product-rd-workflow product-rd-workflow 0 \
534
+ "$(native_vocab_init)$native_vocab_result"
535
+ # a built-in the snapshot has not caught up with, in either host-vocabulary field
536
+ run_reason_expected_native_skills product-rd-workflow product-rd-workflow 0 \
537
+ "$(native_vocab_init '[]' '["init","agents","brand-new-builtin"]')$native_vocab_result" \
538
+ 'unclassifiable host-vocabulary entry'
539
+ run_reason_expected_native_skills product-rd-workflow product-rd-workflow 0 \
540
+ "$(native_vocab_init '[]' '["init"]' '["ccl-skills:product-rd-workflow","brand-new-skill"]')$native_vocab_result" \
541
+ 'unclassifiable host-vocabulary entry'
542
+ # ...and the identifier is named, so the follow-up is a one-liner
543
+ run_reason_expected_native_skills product-rd-workflow product-rd-workflow 0 \
544
+ "$(native_vocab_init '[]' '["init","brand-new-builtin"]')$native_vocab_result" \
545
+ 'slash_commands:brand-new-builtin'
546
+ # A NAMESPACED entry proves a surface beyond the one expected plugin; a
547
+ # path-shaped or unparseable identifier proves nothing about host origin; a
548
+ # duplicate is a spoofing signal. All four stay terminal.
549
+ run_reason_native_excludes \
550
+ "$(native_vocab_init '[]' '["init","evil-plugin:pwn"]')$native_vocab_result" \
551
+ 'unclassifiable host-vocabulary' 'runtime capability surface is not empty'
552
+ run_reason_native_excludes \
553
+ "$(native_vocab_init '[]' '["init","dir/cmd"]')$native_vocab_result" \
554
+ 'unclassifiable host-vocabulary' 'runtime capability surface is not empty'
555
+ run_reason_native_excludes \
556
+ "$(native_vocab_init '[]' '["init","ev!l"]')$native_vocab_result" \
557
+ 'unclassifiable host-vocabulary' 'runtime capability surface is not empty'
558
+ run_reason_native_excludes \
559
+ "$(native_vocab_init '[]' '["init","init"]')$native_vocab_result" \
560
+ 'unclassifiable host-vocabulary' 'runtime capability surface is not empty'
561
+ # The softer class must never absorb a real breach that happens alongside it.
562
+ run_reason_native_excludes \
563
+ "$(native_vocab_init '["Write"]' '["init","brand-new-builtin"]')$native_vocab_result" \
564
+ 'unclassifiable host-vocabulary' 'runtime capability surface is not empty'
565
+ # Same policy on the main-invocation path, with the identifier in the detail
566
+ # fields so an operator can see which name drifted.
567
+ run_reason_runtime_surface_native product-rd-workflow 0 \
568
+ "$(native_vocab_init '[]' '["init","brand-new-builtin"]')$native_vocab_result" \
569
+ 'unclassifiable host-vocabulary entry'
570
+ run_reason_runtime_surface_native product-rd-workflow 0 \
571
+ "$(native_vocab_init '[]' '["init","brand-new-builtin"]')$native_vocab_result" \
572
+ 'unclassifiable_host_vocabulary=slash_commands:brand-new-builtin'
573
+
574
+ printf 'parse_probe_result_tests_ok\n'