@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,73 @@
1
+ #!/usr/bin/env bash
2
+ # Documentation-shape contract test for provider-neutral identity, routing, and
3
+ # host-wait wording. It does not simulate or enforce host execution behavior.
4
+ set -uo pipefail
5
+
6
+ DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd -P)"
7
+ REPO_ROOT="$(cd "$DIR/../../.." && pwd -P)"
8
+ SKILL="$REPO_ROOT/skills/code-review/SKILL.md"
9
+ GATE="$REPO_ROOT/skills/code-review/scripts/review_gate.py"
10
+ WAIT_REF="$REPO_ROOT/skills/code-review/references/timeout-auth-and-capabilities.md"
11
+ QUICKSTART="$REPO_ROOT/skills/skill-extraction-workflow/references/extraction-quickstart.md"
12
+ DUAL_TRACK="$REPO_ROOT/skills/skill-extraction-workflow/references/dual-track-review-gate.md"
13
+ fails=0
14
+
15
+ check() {
16
+ if eval "$2"; then echo "ok - $1"; else echo "FAIL - $1"; fails=$((fails+1)); fi
17
+ }
18
+
19
+ check "provider-neutral skill directory exists" '[ -f "$SKILL" ]'
20
+ check "legacy Claude-specific skill directory is absent" '[ ! -e "$REPO_ROOT/skills/claude-code-review" ]'
21
+ check "frontmatter uses code-review" 'grep -q "^name: code-review$" "$SKILL"'
22
+ check "Claude may route to the provider-neutral skill" \
23
+ '[ -f "$SKILL" ] && ! grep -q "^disable-model-invocation:" "$SKILL"'
24
+ check "client order uses the provider-neutral local variable" \
25
+ 'grep -q "CODE_REVIEW_CLIENT_ORDER" "$GATE" && ! grep -q "CLAUDE_CODE_REVIEW_CLIENT_ORDER" "$GATE"'
26
+ check "owner wait contract records timeout as inconclusive" \
27
+ 'grep -Fq "the final status must say \`inconclusive\` with the timeout reason so downstream review or merge state cannot treat the missing lane as approval" "$SKILL"'
28
+ check "owner wait contract polls the exact live handle" \
29
+ 'grep -Fq "poll that exact handle to terminal exit, and never start a replacement/fallback while its process is live" "$SKILL"'
30
+ check "owner wait contract rejects nonzero unparseable output" \
31
+ 'grep -Fq "non-zero exit without valid JSON remains inconclusive/manual-review-required, never as success" "$SKILL"'
32
+ check "owner wait contract rejects kill-then-credit" \
33
+ 'grep -Fq "must never kill the wrapper and then treat the killed output as success" "$SKILL"'
34
+ check "owner wait contract forbids fallback after handle loss" \
35
+ 'grep -Fq "If that handle is lost, the lane is infrastructure-inconclusive/manual-review-required and no replacement or fallback may be started or credited" "$SKILL"'
36
+ check "owner final summary records lost-handle state" \
37
+ 'grep -Fq "record that infrastructure-inconclusive state, diagnostic artifacts, and that fallback was unavailable" "$SKILL"'
38
+ check "wait reference forbids replacement while the original handle is live" \
39
+ 'tr "\n" " " <"$WAIT_REF" | grep -Fq "Do not start a second reviewer, enter fallback, or call the partial chunk \"empty reviewer output\" while that handle or its child process is alive"'
40
+ check "wait reference rejects kill-then-credit" \
41
+ 'grep -Fq "must never kill the wrapper and then treat the killed output as success" "$WAIT_REF"'
42
+ check "wait reference rejects nonzero unparseable output" \
43
+ 'grep -Fq "inconclusive/manual-review-required, never as success" "$WAIT_REF"'
44
+ check "wait reference forbids replacement after handle loss" \
45
+ 'tr "\n" " " <"$WAIT_REF" | grep -Fq "If orchestration loses the handle, the lane is infrastructure-inconclusive/manual-review-required and no replacement or fallback may be started or credited"'
46
+ check "wait reference makes artifacts diagnostic only" \
47
+ 'tr "\n" " " <"$WAIT_REF" | grep -Fq "may be inspected for diagnosis only; they cannot reconstruct the missing terminal result or authorize continuation"'
48
+ check "wait reference scopes enforcement to the outer host" \
49
+ 'grep -Fq "procedural host-workflow obligation, not a controller-owned field" "$WAIT_REF"'
50
+ check "extraction quickstart forbids fallback while the original process is live" \
51
+ 'grep -Fq "no replacement/fallback reviewer may start while the original process is live" "$QUICKSTART"'
52
+ check "extraction quickstart forbids fallback after handle loss" \
53
+ 'grep -Fq "If the handle is lost, the lane is infrastructure-inconclusive/manual-review-required and no replacement or fallback may be started or credited" "$QUICKSTART"'
54
+ check "extraction quickstart makes artifacts diagnostic only" \
55
+ 'grep -Fq "process-tree and wrapper artifacts are diagnostic only" "$QUICKSTART"'
56
+ check "extraction quickstart scopes enforcement to the outer host" \
57
+ 'grep -Fq "procedural host obligation because the inner gate cannot observe the outer handle" "$QUICKSTART"'
58
+ check "dual-track remediation polls the original handle" \
59
+ 'grep -Fq "poll it to terminal exit and do not start a replacement or fallback from its empty current output" "$DUAL_TRACK"'
60
+ check "dual-track remediation forbids fallback after handle loss" \
61
+ 'grep -Fq "If the handle is lost, the lane is infrastructure-inconclusive/manual-review-required and no replacement or fallback may be started or credited" "$DUAL_TRACK"'
62
+ check "dual-track remediation makes artifacts diagnostic only" \
63
+ 'grep -Fq "process-tree and wrapper artifacts are diagnostic only" "$DUAL_TRACK"'
64
+ check "dual-track remediation scopes enforcement to the outer host" \
65
+ 'grep -Fq "procedural host obligation because the inner gate cannot observe the outer handle" "$DUAL_TRACK"'
66
+
67
+ echo '----'
68
+ if [ "$fails" -eq 0 ]; then
69
+ echo code_review_identity_tests_ok
70
+ else
71
+ echo "$fails FAILURES"
72
+ exit 1
73
+ fi
@@ -0,0 +1,245 @@
1
+ #!/usr/bin/env bash
2
+ # Behavior tests for the bounded concern-evidence excerpt carried on the
3
+ # `stop_reviewer_lane` path. Rows map 1:1 to the acceptance matrix in
4
+ # specs/010-review-concern-excerpt/plan.md.
5
+ set -uo pipefail
6
+
7
+ DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd -P)"
8
+ fails=0
9
+
10
+ check() {
11
+ if eval "$2"; then echo "ok - $1"; else echo "FAIL - $1"; fails=$((fails+1)); fi
12
+ }
13
+
14
+ # Evaluate a python expression against the helper and the parser, printing a
15
+ # bare `True`/`False`. Anything else (import error, traceback) fails the row.
16
+ py() {
17
+ DIR="$DIR" python3 - "$1" <<'PY' 2>/dev/null
18
+ import os
19
+ import sys
20
+
21
+ sys.path.insert(0, os.environ["DIR"])
22
+ import concern_excerpt as ce # noqa: E402
23
+
24
+ MAX_LINES = ce.MAX_EXCERPT_LINES
25
+ MAX_CHARS = ce.MAX_EXCERPT_LINE_CHARS
26
+ excerpt = ce.concern_excerpt
27
+ print(bool(eval(sys.argv[1])))
28
+ PY
29
+ }
30
+
31
+ row() { check "$1" "[ \"\$(py '$2')\" = True ]"; }
32
+
33
+ # --- helper contract ------------------------------------------------------
34
+ check "helper module exists" '[ -f "$DIR/concern_excerpt.py" ]'
35
+ check "helper is the single source of the concern pattern" \
36
+ 'grep -q "^CONCERN_RE" "$DIR/concern_excerpt.py"'
37
+
38
+ # Row 1: no concern-shaped line -> no evidence, no excerpt.
39
+ row "row1 plain refusal carries no concern evidence" \
40
+ 'excerpt("I am unable to comply with that request.") == ([], False)'
41
+
42
+ # Row 2: empty / unreadable verdict -> no evidence.
43
+ row "row2 empty verdict carries no concern evidence" \
44
+ 'excerpt("") == ([], False)'
45
+
46
+ # Rows 3-8: UNSTRUCTURED output. After five rounds of credential shapes escaping
47
+ # the redaction denylist (and one of benign prose being over-redacted), the
48
+ # free-text relay was removed: report only tokens this module matched itself.
49
+ row "row3 severity is reported without the surrounding text" \
50
+ 'excerpt("P1 in the retry path")[0] == ["1 concern-shaped line(s), text withheld; severities: P1"]'
51
+
52
+ row "row4 locator is reported without the surrounding text" \
53
+ '"locators: scripts/foo.py:42" in excerpt("scripts/foo.py:42 leaks a handle")[0][0] and "leaks a handle" not in excerpt("scripts/foo.py:42 leaks a handle")[0][0]'
54
+
55
+ row "row5 concern_results key still counts as evidence" \
56
+ 'excerpt("\"concern_results\": [")[0] == ["1 concern-shaped line(s), text withheld"]'
57
+
58
+ row "row6 the summary counts every matched line" \
59
+ 'excerpt("\n".join("P1 finding %d" % i for i in range(MAX_LINES + 5)))[0][0].startswith("%d concern-shaped line(s)" % (MAX_LINES + 5))'
60
+
61
+ row "row7 no unstructured text can reach the excerpt at any length" \
62
+ '"word" not in excerpt("P1 " + "word " * 200)[0][0]'
63
+
64
+ row "row8 the summary aggregates severities and locators" \
65
+ 'excerpt("I read the supplied packet.\nP0 auth bypass\nNothing else to add.\nsrc/a.go:7 races")[0] == ["2 concern-shaped line(s), text withheld; severities: P0; locators: src/a.go:7"]'
66
+
67
+ # The whole point of the redesign: nothing the model wrote rides out on the
68
+ # unstructured path, so no denylist has to be complete.
69
+ row "unstructured relay carries no model prose at all" \
70
+ '"supplied packet" not in excerpt("I read the supplied packet.\nP0 auth bypass")[0][0] and "auth bypass" not in excerpt("I read the supplied packet.\nP0 auth bypass")[0][0]'
71
+ row "unstructured relay leaks no credential of any shape" \
72
+ 'all(secret not in excerpt("P1 Bearer %s exposed" % secret)[0][0] for secret in ("hunter2", "secretsecret", "abc123def456"))'
73
+ row "unstructured relay is flagged as reduced" \
74
+ 'excerpt("P1 in the retry path")[1] is True'
75
+
76
+ # Row 9: a one-line JSON verdict splits per concern instead of clipping mid-word.
77
+ # Found by the first real gate run this helper instrumented: the reviewer answered
78
+ # in one line of JSON and the excerpt came back as a single 200-char fragment.
79
+ row "row9 json verdict splits per concern" \
80
+ 'excerpt("{\"status\":\"findings\",\"concern_results\":[{\"concern\":\"correctness\",\"conclusion\":\"first conclusion here\"},{\"concern\":\"safety\",\"conclusion\":\"second conclusion here\"}],\"findings\":[]}") == (["correctness: first conclusion here", "safety: second conclusion here"], False)'
81
+
82
+ row "row9b json findings become their own lines" \
83
+ 'excerpt("{\"status\":\"findings\",\"findings\":[{\"severity\":\"P0\",\"file\":\"a.py\",\"line\":3,\"failure_path\":\"boom\",\"smallest_fix\":\"x\"}]}") == (["P0 a.py 3 boom"], False)'
84
+
85
+ row "row9c malformed json falls back to the withheld summary" \
86
+ 'excerpt("{not json at all P1 here")[0] == ["1 concern-shaped line(s), text withheld; severities: P1"]'
87
+
88
+ # --- reason detail bound --------------------------------------------------
89
+ row "reason detail flattens and bounds client text" \
90
+ 'ce.bounded_reason_detail("a\nb c") == "a b c" and ce.bounded_reason_detail("") == "(no message)" and len(ce.bounded_reason_detail("word " * 300)) == ce.MAX_REASON_DETAIL_CHARS + 1'
91
+
92
+ # An error item can quote the frozen packet, so relayed text is redacted before
93
+ # it reaches a durable evidence row (reviewer finding on this change).
94
+ row "reason detail redacts urls" \
95
+ '"https" not in ce.bounded_reason_detail("failed calling https://internal.example/api/x?k=1")'
96
+ row "reason detail redacts credential assignments" \
97
+ '"hunter2" not in ce.bounded_reason_detail("config had password=hunter2 set")'
98
+ row "reason detail redacts long opaque tokens" \
99
+ '"AKIAIOSFODNN7EXAMPLEQQQQQQQQQQQQQQQQ" not in ce.bounded_reason_detail("key AKIAIOSFODNN7EXAMPLEQQQQQQQQQQQQQQQQ rejected")'
100
+ row "reason detail redacts deep filesystem paths" \
101
+ '"/opt/example/nested" not in ce.bounded_reason_detail("cannot read /opt/example/nested/deep/thing")'
102
+ row "reason detail keeps the class name readable" \
103
+ '"skills context budget" in ce.bounded_reason_detail("Skill descriptions were shortened to fit the skills context budget.")'
104
+
105
+ # The excerpt is the larger relayed channel and gets the same redaction as the
106
+ # diagnostic field (reviewer finding on this change). Both plain matched lines
107
+ # and structure-derived lines go through it.
108
+ row "excerpt redacts credentials on a plain matched line" \
109
+ '"hunter2" not in excerpt("P1 password=hunter2 leaked here")[0][0]'
110
+ row "excerpt keeps the severity and locator readable" \
111
+ '"P1" in excerpt("P1 src/a.py:3 password=hunter2")[0][0]'
112
+ row "excerpt redacts urls on a matched line" \
113
+ '"internal.example" not in excerpt("P2 see https://internal.example/x for detail")[0][0]'
114
+ row "excerpt redacts inside structured concern lines" \
115
+ '"hunter2" not in excerpt("{\"status\":\"findings\",\"concern_results\":[{\"concern\":\"safety\",\"conclusion\":\"packet had password=hunter2 inline\"}]}")[0][0]'
116
+ row "excerpt redacts inside structured finding lines" \
117
+ '"hunter2" not in excerpt("{\"status\":\"findings\",\"findings\":[{\"severity\":\"P0\",\"file\":\"a.py\",\"line\":1,\"failure_path\":\"password=hunter2\",\"smallest_fix\":\"x\"}]}")[0][0]'
118
+
119
+ # --- CLI contract used by the shell wrappers ------------------------------
120
+ cli_out="$(printf 'I read it.\nP2 stale cache at src/x.py:9\n' | python3 "$DIR/concern_excerpt.py" 2>/dev/null)"
121
+ check "CLI reports concern evidence on stdin input" \
122
+ '[ -n "$cli_out" ] && python3 -c "import json,sys; d=json.loads(sys.argv[1]); sys.exit(0 if d[\"concern_evidence\"] is True and d[\"concern_excerpt\"] == [\"1 concern-shaped line(s), text withheld; severities: P2; locators: src/x.py:9\"] else 1)" "$cli_out"'
123
+
124
+ clean_out="$(printf 'I am unable to comply.\n' | python3 "$DIR/concern_excerpt.py" 2>/dev/null)"
125
+ check "CLI reports no concern evidence on clean refusal" \
126
+ '[ -n "$clean_out" ] && python3 -c "import json,sys; d=json.loads(sys.argv[1]); sys.exit(0 if d[\"concern_evidence\"] is False and d[\"concern_excerpt\"] == [] else 1)" "$clean_out"'
127
+
128
+ # --- parser payload wiring ------------------------------------------------
129
+ payload_probe() {
130
+ DIR="$DIR" python3 - "$1" <<'PY' 2>/dev/null
131
+ import argparse
132
+ import os
133
+ import sys
134
+
135
+ sys.path.insert(0, os.environ["DIR"])
136
+ import parse_cli_review as p # noqa: E402
137
+
138
+ args = argparse.Namespace(
139
+ client="codex", mode="review", reviewer_family="openai",
140
+ provider="openai", model=None,
141
+ )
142
+ payload = p.invalid_model_output(args, "review verdict violated the output contract", sys.argv[1])
143
+ print(bool(eval(os.environ["EXPR"])))
144
+ PY
145
+ }
146
+
147
+ pcheck() {
148
+ local out
149
+ out="$(EXPR="$3" payload_probe "$2")"
150
+ check "$1" "[ \"$out\" = True ]"
151
+ }
152
+
153
+ pcheck "parser stop payload carries the excerpt" \
154
+ 'P0 auth bypass at src/a.go:7' \
155
+ 'payload["concern_evidence"] is True and payload["concern_excerpt"] == ["1 concern-shaped line(s), text withheld; severities: P0; locators: src/a.go:7"]'
156
+
157
+ pcheck "parser stop payload still refuses to cascade" \
158
+ 'P0 auth bypass at src/a.go:7' \
159
+ 'payload["cascade_eligible"] is False and payload["reason_code"] == "invalid_model_output"'
160
+
161
+ pcheck "parser omits excerpt fields when there is no concern evidence" \
162
+ 'I am unable to comply.' \
163
+ 'payload["concern_evidence"] is False and "concern_excerpt" not in payload and payload["cascade_eligible"] is True'
164
+
165
+ pcheck "parser flags a truncated excerpt" \
166
+ "$(python3 -c 'print("\n".join("P1 finding %d" % i for i in range(40)))')" \
167
+ 'payload["concern_excerpt_truncated"] is True and payload["concern_excerpt"][0].startswith("40 concern-shaped line(s)")'
168
+
169
+ # --- wrapper wiring -------------------------------------------------------
170
+ check "claude wrapper feeds its concern stop through the shared helper" \
171
+ 'grep -q "concern_excerpt.py" "$DIR/claude_review.sh"'
172
+ check "claude wrapper no longer stops without an excerpt" \
173
+ 'grep -A8 "Claude returned concern evidence" "$DIR/claude_review.sh" | grep -q "concern_excerpt"'
174
+ # Either branch of the Claude stop must be scanned: the reply text (concern regex)
175
+ # or the raw output ("concern_results"). Scanning one leaves the other empty.
176
+ check "claude wrapper scans both files that can trip its stop" \
177
+ 'grep -q "concern_excerpt.py\" \"\$reply_text_file\" \"\$output_file\"" "$DIR/claude_review.sh"'
178
+ check "codex item-level error names the underlying message" \
179
+ 'grep -q "bounded_reason_detail(message)" "$DIR/parse_cli_review.py"'
180
+ # Untrusted client text must not land in `reason`, which consumers display and
181
+ # compare; it gets its own labelled field.
182
+ check "client diagnostic is a separate field, not the reason string" \
183
+ 'grep -q "payload\[\"client_diagnostic\"\] = bounded_reason_detail(message)" "$DIR/parse_cli_review.py"'
184
+
185
+ # The benign skills-context-budget notice must match by shape. Pinning its exact
186
+ # sentence is what took every Codex lane down when upstream dropped "2%".
187
+ benign_probe() {
188
+ DIR="$DIR" python3 - "$1" <<'PY' 2>/dev/null
189
+ import os
190
+ import sys
191
+
192
+ sys.path.insert(0, os.environ["DIR"])
193
+ import parse_cli_review as p # noqa: E402
194
+
195
+ print(bool(p.is_benign_codex_error(sys.argv[1])))
196
+ PY
197
+ }
198
+ check "benign notice matches the current CLI wording" \
199
+ '[ "$(benign_probe "Skill descriptions were shortened to fit the skills context budget. Codex can still see every skill, but some descriptions are shorter. Disable unused skills or plugins to leave more room for the rest.")" = True ]'
200
+ check "benign notice still matches the older 2% wording" \
201
+ '[ "$(benign_probe "Skill descriptions were shortened to fit the 2% skills context budget. Codex can still see every skill, but some descriptions are shorter. Disable unused skills or plugins to leave more room for the rest.")" = True ]'
202
+ check "benign matcher does not swallow a real error item" \
203
+ '[ "$(benign_probe "Sandbox denied write to /etc/passwd; skills context budget unaffected")" = False ]'
204
+ # Prefix-only matching would let a crafted item append arbitrary content and
205
+ # still be waved through as benign (challenge finding on this change).
206
+ check "benign matcher rejects an over-long smuggled tail" \
207
+ '[ "$(benign_probe "Skill descriptions were shortened to fit the skills context budget. $(python3 -c "print(\"pad \" * 80)")")" = False ]'
208
+
209
+ # Scheme-prefixed credentials put a space before the secret; an assignment-only
210
+ # pattern redacts the label and leaks the token (challenge finding).
211
+ row "redaction covers bearer-scheme credentials" \
212
+ '"hunter2" not in ce.redact_untrusted("Authorization: Bearer hunter2")'
213
+ row "excerpt redacts bearer-scheme credentials" \
214
+ '"abc123def456" not in excerpt("P1 Authorization: Bearer abc123def456 rejected")[0][0]'
215
+ # Over-redaction is the mirror failure and destroys the diagnostic value the
216
+ # excerpt exists for (third-reviewer finding). Both directions are asserted.
217
+ row "redaction leaves benign security prose intact" \
218
+ 'ce.redact_untrusted("P1 token validation bypassed here") == "P1 token validation bypassed here"'
219
+ row "redaction still catches a credential-shaped value" \
220
+ '"abc123def456" not in ce.redact_untrusted("token abc123def456")'
221
+ # `\b` does not fire inside `client_secret` (`_` is a word char) — challenge finding.
222
+ row "redaction covers underscored key names" \
223
+ '"hunter2" not in ce.redact_untrusted("OAuth client_secret=hunter2")'
224
+ row "excerpt redacts underscored key names" \
225
+ '"hunter2" not in excerpt("P1 OAuth client_secret=hunter2 in packet")[0][0]'
226
+ # A free tail let a real fault ride along behind the benign prefix — review finding.
227
+ check "benign matcher rejects a fault smuggled behind the advisory prefix" \
228
+ '[ "$(benign_probe "Skill descriptions were shortened to fit the skills context budget. Sandbox denied required access")" = False ]'
229
+ # Third round on this predicate: any free tail is a smuggling surface, so the
230
+ # whole advisory must match. An upstream reword now fails loudly instead.
231
+ check "benign matcher rejects a fault smuggled mid-sentence" \
232
+ '[ "$(benign_probe "Skill descriptions were shortened to fit the skills context budget. Codex can still see every skill, but sandbox denied required access")" = False ]'
233
+ # A short credential after an auth scheme must not survive on value length.
234
+ row "redaction covers a short bearer value" \
235
+ '"hunter2" not in ce.redact_untrusted("Authorization: Bearer hunter2")'
236
+ row "excerpt redacts a short bearer value" \
237
+ '"hunter2" not in excerpt("P1 Authorization: Bearer hunter2 accepted")[0][0]'
238
+
239
+ echo '----'
240
+ if [ "$fails" -eq 0 ]; then
241
+ echo concern_excerpt_tests_ok
242
+ else
243
+ echo "$fails FAILURES"
244
+ exit 1
245
+ fi
@@ -0,0 +1,177 @@
1
+ #!/usr/bin/env bash
2
+ # Field-schema regression for the OpenCode lane's egress (specs/013).
3
+ #
4
+ # The lane's payload crosses from an untrusted export into durable evidence rows.
5
+ # `EGRESS_KEYS` bounded WHICH keys may leave; nothing bounded WHAT was inside
6
+ # them, so a crafted export could put arbitrary text into `version` and it
7
+ # egressed verbatim on every parser failure path. These cases pin the bound.
8
+ set -euo pipefail
9
+ script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
10
+
11
+ python3 - "$script_dir" <<'PY'
12
+ import importlib.util
13
+ import sys
14
+ from pathlib import Path
15
+
16
+ script_dir = Path(sys.argv[1])
17
+
18
+
19
+ def load(name, path):
20
+ spec = importlib.util.spec_from_file_location(name, path)
21
+ module = importlib.util.module_from_spec(spec)
22
+ spec.loader.exec_module(module)
23
+ return module
24
+
25
+
26
+ schema = load("egress_schema", script_dir / "egress_schema.py")
27
+ failures = []
28
+ checks = []
29
+
30
+
31
+ def check(label, condition, detail=""):
32
+ # Counted here rather than written as a literal: a hand-maintained case
33
+ # count in a second place goes stale the moment a case is added.
34
+ checks.append(label)
35
+ if not condition:
36
+ failures.append(f"{label}: {detail}")
37
+
38
+
39
+ # Row 1 — well-formed metadata passes through untouched.
40
+ clean = {
41
+ "reviewer": "opencode",
42
+ "status": "inconclusive",
43
+ "reason": "session_id_mismatch",
44
+ "session_id": "sample_session_0001",
45
+ "model": "anthropic/claude-sonnet-4",
46
+ "provider": "anthropic",
47
+ "version": "0.4.12",
48
+ "mode": "review",
49
+ }
50
+ out = schema.apply(dict(clean))
51
+ check("row1-passthrough", out == clean, f"got {out!r}")
52
+
53
+ # Row 7 — no violation means the key is ABSENT, not an empty list.
54
+ check("row7-absent", "field_schema_violations" not in out, f"got {out!r}")
55
+
56
+ # Row 2 — a megabyte of prose in `version`.
57
+ out = schema.apply(dict(clean, version="lorem ipsum " * 90000))
58
+ check("row2-value", out["version"] is None, f"got {out['version']!r}")
59
+ check("row2-report", out.get("field_schema_violations") == ["version"], f"got {out!r}")
60
+ # ...and the verdict fields are untouched.
61
+ check("row2-verdict", out["status"] == "inconclusive" and out["reason"] == "session_id_mismatch", f"got {out!r}")
62
+
63
+ # Row 3 — 201 characters of otherwise-legal charset.
64
+ out = schema.apply(dict(clean, version="a" * 201))
65
+ check("row3", out["version"] is None and out.get("field_schema_violations") == ["version"], f"got {out!r}")
66
+ out = schema.apply(dict(clean, version="a" * 200))
67
+ check("row3-boundary", out["version"] == "a" * 200, "200 chars must be legal")
68
+
69
+ # Row 4 — control characters and whitespace stop a value being a single field.
70
+ for bad in ("sample_1\nstatus=passed", "sample_1\ttab", "sample_1 space", 'sample_"quote', "sample_\x00nul"):
71
+ out = schema.apply(dict(clean, session_id=bad))
72
+ check(f"row4[{bad!r}]", out["session_id"] is None, f"got {out['session_id']!r}")
73
+
74
+ # Row 5 — a non-string in an export-token field.
75
+ for bad in ({"a": 1}, ["x"], 5, True):
76
+ out = schema.apply(dict(clean, model=bad))
77
+ check(f"row5[{bad!r}]", out["model"] is None, f"got {out['model']!r}")
78
+ # ...but None itself is legal (the export may simply not carry it).
79
+ out = schema.apply(dict(clean, model=None))
80
+ check("row5-none", out["model"] is None and "model" not in out.get("field_schema_violations", []), f"got {out!r}")
81
+
82
+ # Row 6 — two violations at once, order stable and declaration-ordered.
83
+ out = schema.apply(dict(clean, session_id="bad id", version="also bad"))
84
+ check("row6", out.get("field_schema_violations") == ["session_id", "version"], f"got {out!r}")
85
+
86
+ # Row 10 — an undeclared key cannot be emitted.
87
+ try:
88
+ schema.apply(dict(clean, smuggled="x"))
89
+ check("row10", False, "expected a raise for an undeclared key")
90
+ except schema.UndeclaredEgressKey as error:
91
+ check("row10-name-only", "smuggled" in str(error) and "x" not in str(error).replace("smuggled", ""), f"got {error}")
92
+
93
+ # Row 12 — the violation report carries names only, never a fragment of the value.
94
+ # The canary is deliberately NOT shaped like a real credential: a key-shaped
95
+ # literal here trips the review gate's egress scanner and blocks every non-Claude
96
+ # reviewer lane from ever seeing this diff. What row 12 tests is that a
97
+ # distinctive value does not survive into the output, and any distinctive token
98
+ # proves that.
99
+ canary = "CANARY-must-not-appear-in-output-0001"
100
+ out = schema.apply(dict(clean, version=f"v1 {canary}"))
101
+ check("row12-value-dropped", out["version"] is None, f"got {out['version']!r}")
102
+ check("row12-no-leak", canary not in repr(out), f"offending value leaked into {out!r}")
103
+
104
+ # Row 11 — one table, not two: the shell consumes this module's set instead of
105
+ # re-declaring the names inline, where the two copies could drift apart.
106
+ check("row11-keys-exported", isinstance(schema.EGRESS_KEYS, frozenset) and schema.EGRESS_KEYS, "EGRESS_KEYS must be a non-empty frozenset")
107
+ shell = (script_dir / "opencode_review.sh").read_text()
108
+ check("row11-shell-imports", "from egress_schema import" in shell, "the shell must import the table")
109
+ check("row11-no-inline-copy", "EGRESS_KEYS = frozenset({" not in shell, "the shell still declares its own inline allowlist")
110
+ # The concern path's set is narrower ON PURPOSE (an unlisted key fails that path
111
+ # closed); widening it to EGRESS_KEYS would turn the fail-closed into relay.
112
+ check("row11-narrower", schema.CONCERN_RELAY_KEYS < schema.EGRESS_KEYS, "concern relay set must be a strict subset")
113
+ check("row11-structured-excluded", not (schema.CONCERN_RELAY_KEYS & {"findings", "text", "concern_results"}), "model content must not be in the concern relay set")
114
+
115
+ # Review round 1 (codex, P1): the sanitize-and-report path must NOT cover fields
116
+ # whose values this repo chooses. Nulling `status` IS a verdict change — the one
117
+ # thing this schema promises never to make — and downstream gates route on it.
118
+ # These values cannot come from the export, so an illegal one is an internal bug
119
+ # and the only safe answer is to refuse to emit.
120
+ for field, bad in (("status", "not-a-status"), ("cascade_eligible", "yes"),
121
+ ("reason", "not a reason"), ("mode", "audit")):
122
+ try:
123
+ out = schema.apply(dict(clean, **{field: bad}))
124
+ check(f"contract-raises[{field}]", False, f"emitted {out!r} instead of raising")
125
+ except schema.ContractFieldViolation as error:
126
+ check(f"contract-raises[{field}]", field in str(error) and str(bad) not in str(error), f"got {error}")
127
+ out = schema.apply(dict(clean, cascade_eligible=False))
128
+ check("scalar-legal", out["cascade_eligible"] is False, "a real bool must pass")
129
+ out = schema.apply(dict(clean, transport_tail_timeout=True))
130
+ check("timeout-tail-scalar-legal", out["transport_tail_timeout"] is True, "timeout recovery evidence must remain a bool")
131
+ # The verdict fields are never nulled on ANY path the schema takes.
132
+ out = schema.apply(dict(clean, version="bad value", session_id="also bad"))
133
+ check("verdict-untouched", out["status"] == "inconclusive" and out["reason"] == "session_id_mismatch",
134
+ f"an export-field violation moved a verdict field: {out!r}")
135
+
136
+ # Challenge round 1 (codex, P1): the None skip was blanket, so a contract field
137
+ # set to None slipped past the raise entirely — the same shape of mistake as the
138
+ # finding above, one branch further in. `None` is legal for an EXPORT field (the
139
+ # export need not carry it) and illegal for a contract field (we always choose
140
+ # one). Unreachable from today's call sites, which is why only an adversarial
141
+ # read found it.
142
+ for field in ("status", "reviewer", "mode", "reason"):
143
+ try:
144
+ out = schema.apply(dict(clean, **{field: None}))
145
+ check(f"contract-none[{field}]", False, f"emitted {out!r} instead of raising")
146
+ except schema.ContractFieldViolation as error:
147
+ check(f"contract-none[{field}]", field in str(error), f"got {error}")
148
+
149
+ # Review round 1 (codex, P1): `field_schema_violations` is OUTPUT-ONLY. It has no
150
+ # schema row, so allowing it in would leave it the one unvalidated field — free
151
+ # to carry arbitrary prose and to forge or suppress the tamper report itself.
152
+ for forged in ("arbitrary prose\nstatus=passed", ["version"], {"k": "v"}, []):
153
+ try:
154
+ schema.apply(dict(clean, field_schema_violations=forged))
155
+ check(f"violation-field-input[{type(forged).__name__}]", False, "expected a raise")
156
+ except schema.UndeclaredEgressKey as error:
157
+ check(f"violation-field-input[{type(forged).__name__}]", "field_schema_violations" in str(error), f"got {error}")
158
+ # It must still be RELAYABLE once this module produces it, or a crafted export
159
+ # could trip the concern path's fail-closed and take the verdict down that way.
160
+ check("violation-field-relayable", schema.VIOLATION_FIELD in schema.CONCERN_RELAY_KEYS, "the report must survive relay")
161
+
162
+ # Export-token LISTS (tool names) are bounded per element — these are export-derived
163
+ # and were not in the plan's table; declared here rather than left undeclared.
164
+ out = schema.apply(dict(clean, exposed_tools=["bash", "write"]))
165
+ check("token-list-legal", out["exposed_tools"] == ["bash", "write"], f"got {out!r}")
166
+ out = schema.apply(dict(clean, exposed_tools=["ok", "bad\nname"]))
167
+ check("token-list-violation", out["exposed_tools"] is None and "exposed_tools" in out.get("field_schema_violations", []), f"got {out!r}")
168
+
169
+ if failures:
170
+ print("egress_schema_test_failed", file=sys.stderr)
171
+ for line in failures:
172
+ print(f" {line}", file=sys.stderr)
173
+ raise SystemExit(1)
174
+ print(f"egress_schema_checks_ok cases={len(checks)}")
175
+ PY
176
+
177
+ printf 'egress_schema_tests_ok\n'