@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,383 @@
1
+ # Lane Orchestration Control Plane — Mature Pattern
2
+
3
+ Concrete implementation of a custom-API control plane (one of the three spines in `deploy-pipeline.md`). Built from observed mature designs; encodes patterns that work at production scale.
4
+
5
+ ## Lane as DB-backed first-class entity
6
+
7
+ Lane is not just a label; it is a row.
8
+
9
+ ```
10
+ table: lanes
11
+ id int64 PK
12
+ lane_name varchar unique
13
+ lane_type enum {online, offline}
14
+ description text
15
+ created_at timestamp
16
+ updated_at timestamp
17
+ ```
18
+
19
+ Strict naming convention (enforced at API layer):
20
+ - `lane_type = online` → name MUST start with a designated online prefix (e.g. `prod-`, `live-`, or any 2-4-character platform-chosen prefix).
21
+ - `lane_type = offline` → name MUST start with a designated offline prefix (e.g. `staging-`, `dev-`, or any 2-4-character platform-chosen prefix).
22
+ - A few system-reserved lane names exist as enums (e.g. baseline / canary / baseline-offline / canary-offline); the codebase treats them as constants, not free-form strings.
23
+
24
+ Reasons for strict prefix:
25
+ - A glance at the lane name tells operators which environment family it belongs to.
26
+ - Routing fallback rules and resource quotas can be applied by prefix.
27
+ - Cross-lane data isolation policies can be enforced by prefix at network policy or admission webhook.
28
+
29
+ After creation, only `description` is mutable. Renaming a lane is forbidden (routing rules, registry tags, k8s labels would all need atomic re-issue).
30
+
31
+ ## Lane-service relation
32
+
33
+ Many-to-many: a lane has many services, a service can live in many lanes.
34
+
35
+ ```
36
+ table: lane_service_rels
37
+ id int64 PK
38
+ lane_id int64 FK
39
+ service_id int64 FK
40
+ cluster varchar -- which k8s cluster this lane-service runs in
41
+ cpu_limit int
42
+ memory_limit int
43
+ replica_num int
44
+ protocol enum {http, grpc, tcp, thrift}
45
+ with_resource bool -- requires resource-PVC
46
+ in_vci bool -- runs in serverless k8s (VCI) mode
47
+ is_gpu bool -- requires GPU
48
+ created_at timestamp
49
+ ```
50
+
51
+ The relation row carries **per-lane deployment config**, allowing the same service to run with different resource shapes in different lanes (e.g. prod=4cpu/8gi, dev=250m/256mi).
52
+
53
+ Cluster column enables multi-cluster topology without changing the lane model: one lane can span clusters or be cluster-pinned.
54
+
55
+ ## Service catalog
56
+
57
+ ```
58
+ table: services
59
+ id int64 PK
60
+ psm varchar unique -- "owner.class.identifier", validated regex
61
+ owners []int64 FK -- via service_owners join table
62
+ protocol enum
63
+ hosts []string -- public hostnames if it's an edge service
64
+ paths map<match_type, [path]> -- per-path lane routing config
65
+ with_resource bool
66
+ ```
67
+
68
+ PSM regex: `^[a-zA-Z0-9_-]+\.[a-zA-Z0-9_-]+\.[a-zA-Z0-9_-]+$`. Three dot-separated segments; segments allow underscores at the data layer but the gRPC `:authority` constraint may require hyphenation at the wire — see `platform-service-connectivity/references/grpc-authority-workaround.md`.
69
+
70
+ Service has multiple owners. Change-ownership is a first-class API; orphaned services (zero owners) are blocked from deploy.
71
+
72
+ ## Control-plane API surface
73
+
74
+ ```
75
+ # Lane CRUD
76
+ POST /lane save_lane (create or update description)
77
+ DELETE /lane delete_lane — see "Lane deletion safety gates" below;
78
+ must NOT be a single cascade for online lanes
79
+ GET /lane list_lane (filterable, keyset paginated)
80
+ GET /lane/<id> get_lane_detail (+services, optional)
81
+ POST /lane/<id>/delete_preview dry-run delete: returns impact report
82
+ (services affected, traffic shifted, k8s resources gone)
83
+
84
+ # Service CRUD
85
+ POST /service save_service
86
+ DELETE /service delete_service
87
+ GET /service list_service
88
+ POST /service/<id>/owners change_service_owners
89
+
90
+ # Per-lane service deploy
91
+ POST /lane/<id>/service/<svc>/deploy deploy_lane_service (image, returns immediately)
92
+ WS /lane/<id>/service/<svc>/deploy_ws deploy_interactive (streams k8s Deployment watch events)
93
+ GET /lane/<id>/service/<svc> get_lane_service_detail (+pod list)
94
+ PUT /lane/<id>/service/<svc> update_lane_service (CPU/Mem/replicas/protocol)
95
+ DELETE /lane/<id>/service/<svc> delete_lane_service
96
+ GET /lane/<id>/service/<svc>/config get_lane_service_deploy_config (returns generated YAML)
97
+
98
+ # Canary check
99
+ POST /canary_check deploy_canary_check (immediate result)
100
+ POST /canary_check_task save_canary_check_task (start timer)
101
+ GET /canary_check_task get_canary_check_task (poll status)
102
+
103
+ # Mesh / delegated traffic policy
104
+ POST /service/<svc>/reload_mesh reload_service_mesh_config (regenerate VS + DR)
105
+ GET /service/<svc>/traffic_config delegated: get connectivity-owned caller-callee policy
106
+ PUT /service/<svc>/traffic_config delegated: update connectivity-owned caller-callee policy
107
+
108
+ # Review / approval
109
+ POST /review_task create_review_task
110
+ GET /review_task list_review_task
111
+ GET /review_task/<id> get_review_task
112
+ POST /review_task/<id>/approve approve_review_task
113
+
114
+ # Domain (ingress hostname management)
115
+ GET /domain list_domain
116
+ PUT /domain modify_domain
117
+
118
+ # Callbacks (inbound webhooks)
119
+ POST /callback/grafana alert → chat platform
120
+ POST /callback/chat_card_action interactive card click (approve/confirm)
121
+ POST /callback/cloud_provider_pipeline CI/CD platform notice → chat
122
+ POST /callback/cloud_provider_alert cloud alert → chat
123
+ ```
124
+
125
+ All write APIs are idempotent on `(target, version)`. List APIs are keyset-paginated for stable iteration. Errors return a typed code envelope `{code, message, data}` consistent across the API.
126
+
127
+ ## Deploy flow
128
+
129
+ `deploy_lane_service(svc, lane, image)`:
130
+
131
+ 1. Look up the service definition.
132
+ 2. Compute the rendered k8s YAML using:
133
+ - Standard app template (Service + Deployment + optional PVC).
134
+ - Per-lane resource config from the relation row.
135
+ - Image digest.
136
+ - VCI mode flag (serverless k8s) → different sidecar layout.
137
+ 3. Apply the YAML to the target cluster (k8s dynamic client).
138
+ 4. Reconcile the service's Istio VirtualService + DestinationRule via `reload_service_mesh_config` (DR first, VS second, with rollback on partial failure — see Reconciled Istio config update section) so the new lane subset is routable.
139
+ 5. Publish the lane marker through the chosen discovery mode: registry tag, k8s label/EndpointSlice, or mixed adapter.
140
+
141
+ If any step fails, the caller gets a typed error; the control plane does not auto-rollback partial state — operator confirms then issues delete or re-deploy.
142
+
143
+ ## Deploy interactive (WebSocket stream)
144
+
145
+ `deploy_interactive` uses k8s Deployment watch + WebSocket to stream live events to the caller. Event types:
146
+
147
+ ```
148
+ ADDED / MODIFIED / DELETED / ERROR (k8s watch event types)
149
+ + ADDED-CONDITION / MODIFIED-CONDITION (synthesized per-condition lines)
150
+ ```
151
+
152
+ Each event includes: app name, replicas, ready_replicas, updated_replicas, available_replicas, condition type/status/message.
153
+
154
+ Termination criterion (avoid early-success on multi-replica rollouts): require all of:
155
+ - `status.observedGeneration >= metadata.generation` (controller has seen the latest spec)
156
+ - `status.updatedReplicas == spec.replicas` (every replica running new pod template)
157
+ - `status.availableReplicas == spec.replicas` (every new replica passed readiness)
158
+ - Deployment condition `Progressing` with reason `NewReplicaSetAvailable` (rollout fully complete)
159
+ - AND event type not in {Deleted, Error}
160
+
161
+ → `IsResultEvent=true, IsSuccess=true`.
162
+
163
+ The naive check `updated_replicas <= available_replicas` is **wrong** — it fires when only one of N desired replicas is ready (1 updated ≤ 1 available, but other 2 still missing). Always compare against `spec.replicas`, not against the other status field.
164
+
165
+ Why stream not poll: the deploy CLI's user sees the deploy progress in real time (which pod is ready, which condition is pending). This is markedly better UX than "wait for it" polling.
166
+
167
+ ## Canary check algorithm (log-error-diff variant)
168
+
169
+ Industry default is SLI burn-rate (see `canary-and-rollout-strategy.md`). A different mature option, suited when the platform already has rich structured logs:
170
+
171
+ ```
172
+ Input: service_psm, canary_lane, prod_lane, duration (default 5m)
173
+ Output: list of suspicious reports
174
+
175
+ 1. List canary lane pods → canary_pod_names
176
+ 2. List prod lane pods → prod_pod_names
177
+ 3. For each pod set, query ES for ERROR-level logs in the last `duration`:
178
+ filter: _psm=<svc> AND _lane=<lane> AND _level=ERROR AND _timestamp >= now - duration
179
+ OR clauses on _pod for each pod name
180
+ 4. Group logs by _caller (source file:line where the log was emitted)
181
+ 5. For each (caller) in canary errors:
182
+ # Normalize by pod count AND traffic share to compare RATES not raw counts.
183
+ canary_rate = canary_count / (canary_pod_count × canary_traffic_share)
184
+ prod_rate = prod_count / (prod_pod_count × prod_traffic_share)
185
+ if prod_rate > 0:
186
+ if canary_rate > 2.0 × prod_rate AND canary_count >= MIN_SAMPLE (e.g. 5):
187
+ report: "same code line, per-unit-traffic error rate anomalously increased"
188
+ else:
189
+ # prod has zero errors at this caller; canary has some.
190
+ # Tolerate if canary_count below a noise floor; report otherwise.
191
+ if canary_count >= MIN_NEW_ERR_THRESHOLD (e.g. 3):
192
+ report: "new error log not seen in prod"
193
+ 6. IsSuccess := len(reports) == 0
194
+ ```
195
+
196
+ Why this works:
197
+ - `_caller` (source location) is a stable identity across versions; new code paths produce new callers.
198
+ - **Rate normalization is mandatory**: comparing raw counts breaks when canary has different replica count or different traffic weight than prod. Example: prod has 100 pods 100 errors (1/pod), canary has 1 pod 3 errors (3/pod) — raw `3 > 2×100` is false (canary looks fine) but per-pod rate is 3× worse.
199
+ - **Minimum sample thresholds** prevent flapping on low-volume callers: a single transient error in canary should not trip the check; require enough samples to be statistically meaningful.
200
+ - Bounded by `duration` (default 5m); no long-window risk.
201
+
202
+ When to use this vs SLI burn-rate:
203
+ - Use this when: structured logs are reliable, low-error services where new error patterns are rare, fast iteration cycles where SLO definitions lag.
204
+ - Use SLI burn-rate when: latency or success-rate regressions matter as much as error volume, mature SLO discipline exists, observability backend has long retention.
205
+
206
+ Both are mature; they are complementary, not exclusive. A platform can run both for high-criticality services.
207
+
208
+ ## Canary check task (asynchronous flow)
209
+
210
+ Triggered by the CLI/CI at the start of a canary rollout:
211
+
212
+ ```
213
+ save_canary_check_task(psm, run_id, duration)
214
+ → cache key: (psm, run_id)
215
+ → cache value: { start_at_ms, expire_at_ms }
216
+ → backend: Redis with TTL = duration
217
+ ```
218
+
219
+ The CLI polls `get_canary_check_task(psm, run_id)` to know how long until the check window closes, then calls `deploy_canary_check(psm, canary_lane)` to run the log-error-diff and get the report.
220
+
221
+ **Task state durability**: write the task record to the **same audit DB** as deploy events, not Redis-only. Reasons:
222
+ - Redis restart / key expiry can lose a task mid-flight; CI sees missing task and either reruns blind or proceeds without the gate. Both are bad.
223
+ - Audit trail: "what canary checks ran and what did they conclude" is incident evidence; needs the same retention as deploys.
224
+ - Redis is acceptable ONLY as a write-through cache for fast reads; the DB is source of truth.
225
+
226
+ Task lifecycle: `Pending` → `Running` → `Completed (success|fail)` with terminal-state markers. TTL on the DB row should be at least `2 × max_bake_duration` to absorb late pollers, plus retention policy for audit (e.g. 90 days).
227
+
228
+ ## Lane deletion safety gates
229
+
230
+ `DELETE /lane` is the most destructive operation in the control plane. A naive cascade implementation (delete lane-service rows → delete k8s resources → rewrite VS) is a foot-cannon. Required gates:
231
+
232
+ 1. **Protected-lane enforcement**: lanes with `protected: true` (typically online lanes like prod, named canary slices, named long-lived dev shared lanes) cannot be deleted by the regular DELETE call. Operator must first call `PUT /lane/<id>/unprotect` (separately audited) then DELETE — two-step.
233
+ 2. **Dry-run preview required**: client MUST call `POST /lane/<id>/delete_preview` first; the response includes services affected, current traffic weight on each subset, k8s resources that would be deleted, estimated traffic loss during convergence. DELETE without a matching dry-run token within the last N minutes is rejected.
234
+ 3. **Two-person approval for online lanes**: online lanes require an approval task analogous to the deploy approval; the chat-card lists the dry-run impact.
235
+ 4. **Finalizer pattern**: lane row has a finalizer set; controller reconciles k8s deletion before removing the lane row. If k8s deletion fails partway, the row stays in `Deleting` state and the operator gets the failure surfaced; no orphaned state.
236
+ 5. **Explicit service-count confirmation**: client must pass `expected_service_count` in the DELETE body; mismatch with current count → reject (concurrent service add by another operator).
237
+ 6. **No cascade for non-empty lanes by default**: if the lane has services, DELETE rejects unless `force: true` is in the body AND approval is recorded. Empty-lane delete is the common safe case.
238
+
239
+ Skipping these gates is how production lanes get accidentally torn down. The mature platform builds them in from day one, not after the first incident.
240
+
241
+ ## Reconciled Istio config update (two-resource)
242
+
243
+ Lane add/remove/update on a service triggers regeneration of the service's VirtualService + DestinationRule. The reconcile is **per-service serialized** to avoid concurrent-operation races.
244
+
245
+ ```
246
+ ReconcileServiceIstioConfig(service, operation, isOnline, excludeLanes...):
247
+ 1. Acquire per-service distributed lock (e.g. Redis with fencing token, or etcd lease).
248
+ Lock key: "mesh-reconcile/<service-psm>". Hold for full operation.
249
+ 2. Read current desired state (lane-service relations + traffic weights) from DB
250
+ under transaction snapshot.
251
+ 3. Read current mesh config (VS + DR) from k8s with resourceVersion.
252
+ 4. Compute desired YAML; compare with current.
253
+ 5. Operation-specific ordering:
254
+ ADD or UPDATE (subset reference appears or weight changes):
255
+ a. Apply DR first (new subset exists before VS references it).
256
+ b. Wait for xDS propagation (poll DR.status or fixed budget).
257
+ c. Apply VS (now references existing subset).
258
+ REMOVE (subset reference disappears):
259
+ a. Apply VS first (drain traffic from subset; reset weight to 0 or remove route).
260
+ b. Wait for xDS propagation + connection drain (configurable, ~30-60s).
261
+ c. Apply DR (remove subset; no in-flight traffic to it).
262
+ 6. Server-side dry-run BOTH resources before each apply (admission validation pass).
263
+ 7. Use resourceVersion (CAS) on each apply; on conflict, refresh from k8s + DB,
264
+ restart from step 2 (max N retries with backoff).
265
+ 8. If any step fails after a successful apply, roll back the applied resource
266
+ to its pre-update state captured in step 3.
267
+ 9. Emit reconcile audit event with: lock holder, operation, generation, success/failure,
268
+ duration, retries.
269
+ 10. Release lock.
270
+ ```
271
+
272
+ **Why per-service serialization is non-negotiable**:
273
+ - Concurrent deploy + lane-delete on the same service can read stale DB rows, render conflicting VS/DR, and apply in opposite order — last writer resurrects deleted subsets or drops the canary route.
274
+ - The lock + CAS combination ensures the controller always operates on the latest desired state.
275
+
276
+ **Why operation-specific ordering**:
277
+ - Add: DR-first so the VS reference resolves.
278
+ - Remove: VS-first so traffic stops flowing to the subset before it disappears, avoiding a traffic blackhole during xDS propagation.
279
+ - Naive "always DR first" causes blackholes on delete; always-VS-first leaves orphan references on add. Match ordering to direction of change.
280
+
281
+ **Not atomic across k8s resources** — k8s provides no cross-resource transaction. The flow above approximates atomicity through: serialization + ordered apply + dry-run validation + rollback. A short window between steps 5a and 5c exists where mesh state is mid-transition; design routing rules so this window is safe (e.g. for ADD, the new subset starts with weight 0 in VS).
282
+
283
+ This API is called from: deploy, update, delete lane-service, delete lane. Any state change that affects routing reconciles the whole config; no delta-patching.
284
+
285
+ ## Traffic config is owned by connectivity
286
+
287
+ This reference shows how a mature lane control plane may call into traffic-policy APIs, but retry/timeout/circuit ownership belongs to `platform-service-connectivity`. Keep release orchestration responsible for deploy state, approval, canary, rollback, and mesh reconciliation; route traffic-policy design changes back to connectivity.
288
+
289
+ The platform separates **routing** (mesh) from **traffic policy** (per-call retry/timeout/circuit):
290
+
291
+ | Concern | Mechanism | Storage | Update path |
292
+ |---|---|---|---|
293
+ | Lane → which pods | Istio VirtualService + DestinationRule | k8s API | `reload_service_mesh_config` |
294
+ | Per-caller-callee retry/timeout/CB | Application-level config (read by framework client SDK) | dcc / config center | `update_service_traffic_config` |
295
+
296
+ The traffic config payload (per caller-callee pair):
297
+
298
+ ```
299
+ ServiceTrafficConfig {
300
+ CallerPSM: <psm>
301
+ CalleePSM: <psm>
302
+ Content: {
303
+ Timeout: <duration>
304
+ RetryAttempts: <int>
305
+ CircuitBreakerThreshold: <float>
306
+ // ... other framework-client tunables
307
+ }
308
+ }
309
+ ```
310
+
311
+ Updates go through a Redis write lock per caller-callee pair (prevents concurrent diverging writes), then to dcc. Framework client SDK in each service subscribes to dcc updates and applies new values without restart.
312
+
313
+ Why this split:
314
+ - Mesh routing changes affect topology — slower, requires control-plane reload across nodes.
315
+ - Traffic policy changes are per-call — needs to apply instantly, with full caller-callee granularity (mesh DR is per-callee only).
316
+ - Many companies pick one (all-mesh or all-app); the dual pattern is more work but more flexible.
317
+
318
+ When NOT to do this:
319
+ - Small platform — pick mesh-only, simpler.
320
+ - No internal dcc/config-center — adopting dcc just for this is overengineering.
321
+ - Strict zero-trust where all policy MUST be enforced at network — mesh-only mandatory.
322
+
323
+ ## Review / approval via chat platform cards
324
+
325
+ Mature pattern for fast approval workflow without a separate UI:
326
+
327
+ ```
328
+ 1. Operator calls create_review_task(lane, service, run_id, ...)
329
+ 2. Control plane creates DB row {status: Pending, expires_in: 24h default}
330
+ 3. Control plane sends a chat-platform card to the approver(s):
331
+ Card content: change summary, risk class, lane, service, version, rollback plan, approve/reject buttons.
332
+ 4. Approver clicks button → chat platform fires callback to /callback/chat_card_action
333
+ 5. Callback handler — **MUST verify before mutating state**:
334
+ a. Verify platform signature (HMAC/RSA per chat platform's webhook spec).
335
+ b. Check timestamp skew: reject if > 5 min old (replay protection).
336
+ c. Check nonce/event-id against recently-seen set (replay protection).
337
+ d. Verify action binding: the click's task_id + version + reviewer matches
338
+ what was originally sent — prevents reusing one valid signed payload
339
+ against a different task.
340
+ e. Resolve clicker's identity via chat platform user id → internal user;
341
+ check RBAC: this user is an authorized reviewer for this service/lane.
342
+ f. Look up the task by (lane, psm, run_id).
343
+ g. Idempotency: if already approved/rejected, return current state, do NOT
344
+ re-trigger downstream effects.
345
+ h. Update task status; emit audit event with full callback payload preserved.
346
+ i. Re-render card to show "approved by X" + timestamp.
347
+ 6. CI/CD polls task status; on approved, proceeds with deploy.
348
+
349
+ **Without signature + timestamp + nonce verification**, an attacker who captures a single valid callback payload (e.g. via log scraping or MITM) can replay it to approve arbitrary deploys. This is a credential-grade vulnerability; all five checks (a-d, e) are required, not optional.
350
+ ```
351
+
352
+ This compresses approval latency from "open the portal, find the task, click approve" (~minutes) to "see the card, click button" (~seconds). The chat platform is the single approval surface.
353
+
354
+ Failure modes:
355
+ - Approver clicks but callback fails to reach — chat platform retries the webhook; idempotency check prevents double-approve.
356
+ - Multiple approvers click simultaneously — first wins via DB row-level lock; others see "already approved".
357
+ - Task expires before approval — control plane marks expired, CI gets rejected status, operator must re-submit.
358
+
359
+ ## Alert flow through the same callback API
360
+
361
+ The same `/callback/chat_card_action` handles multiple action types:
362
+
363
+ ```
364
+ case "cp_review": # promotion approval
365
+ case "alert_confirm": # acknowledge alert (silences for 30min)
366
+ case "cloud_alert_confirm":# acknowledge cloud-provider alert
367
+ ```
368
+
369
+ Routing by `Action.Value.source` field. Each source has its own data shape and handler. New action types are added without changing the callback URL.
370
+
371
+ This means the chat platform is the **single interaction surface** for both releases (approve/reject) and incidents (acknowledge). Operators don't switch tools.
372
+
373
+ ## What this pattern is good for
374
+
375
+ - Teams that want strong audit + integration with internal user/RBAC system without building a full deploy UI.
376
+ - Companies where the chat platform (Lark/Slack/Teams equivalent) is already the primary work surface.
377
+ - Heavy multi-lane usage where commodity GitOps would clutter the manifest repo.
378
+
379
+ ## What it costs
380
+
381
+ - The control plane is a real backend service you maintain (DB schema, API stability, audit, RBAC).
382
+ - Tight coupling to one chat platform — switching chat platforms means rebuilding interaction cards.
383
+ - Two control levers (mesh + dcc traffic config) require operators to know which lever to pull.
@@ -0,0 +1,135 @@
1
+ # Multi-Region and Multi-Cluster
2
+
3
+ When and how to leave a single cluster, and what changes about release flow.
4
+
5
+ ## Why leave a single cluster
6
+
7
+ Drivers (most common first):
8
+ - **Failure-domain isolation**: a single cluster outage takes down everything. DR needs separate failure domains.
9
+ - **Geographic latency**: users on another continent see > 200ms RTT.
10
+ - **Compliance / data residency**: certain data must stay in a jurisdiction.
11
+ - **Resource scale**: control-plane limits, node count, etcd size.
12
+ - **Noise isolation**: noisy workloads (heavy batch, stress tests) starve neighbors.
13
+
14
+ If none of these bite, stay single-cluster. Multi-cluster has real ongoing cost.
15
+
16
+ ## Cluster topology patterns
17
+
18
+ ### Active-passive (DR)
19
+
20
+ - Primary cluster serves all traffic.
21
+ - Secondary cluster runs the same workloads at minimum capacity (or scaled down to 0).
22
+ - Failover triggered by a documented condition (primary unreachable, latency > X, manual decision).
23
+
24
+ Recovery objective:
25
+ - RPO (recovery point): how much data loss is acceptable.
26
+ - RTO (recovery time): how long until secondary serves.
27
+
28
+ Test with DR drills (see below).
29
+
30
+ ### Active-active
31
+
32
+ - Both clusters serve traffic concurrently.
33
+ - Geographic routing sends each user to the nearest cluster.
34
+ - Cross-cluster traffic happens for stateful services that pin to one region.
35
+
36
+ Higher complexity, lower RTO. Requires:
37
+ - Idempotent writes (or single-writer per record).
38
+ - Conflict resolution (CRDT, last-writer-wins, vector clocks — pick one and commit).
39
+ - Cross-region observability join.
40
+
41
+ ### Per-purpose isolation
42
+
43
+ - Cluster A: latency-critical services.
44
+ - Cluster B: batch / async / stress.
45
+ - Cluster C: external-facing edge.
46
+
47
+ Routes drawn at ingress / mesh boundary. Easier than multi-region.
48
+
49
+ ## Registry federation
50
+
51
+ If service A in cluster X needs to call service B in cluster Y:
52
+
53
+ - Both clusters' registries (Nacos / Consul) federate: writes in one are visible in the other (eventually).
54
+ - Mesh trust domain must be configured pairwise: A's identity is recognized in Y.
55
+ - VirtualService can target a remote-cluster subset.
56
+
57
+ Without federation, you fall back to direct hostname routing (k8s DNS doesn't cross clusters) — and lose lane-routing. Federation is the right answer.
58
+
59
+ ## Mesh trust domains
60
+
61
+ mTLS identity is namespaced by trust domain. Cross-cluster mTLS requires:
62
+
63
+ - Each cluster has a distinct trust domain (e.g. `cluster-1.local`, `cluster-2.local`).
64
+ - Cross-cluster AuthorizationPolicy lists peer trust domains.
65
+ - Root CA either shared or bridged.
66
+
67
+ Misconfigured trust domain = "service A cannot reach service B" for unclear reasons.
68
+
69
+ ## Multi-cluster lane semantics
70
+
71
+ A lane can live in one cluster or many:
72
+
73
+ | Scenario | Lane spec |
74
+ |---|---|
75
+ | `dev-alice` for a developer | one cluster |
76
+ | `prod` user traffic | sharded across regions, lane-tagged per region |
77
+ | `prod-canary` for global rollout | per-region canary lanes; promote independently |
78
+
79
+ Track which clusters each lane spans. Cross-cluster lane traffic uses the platform's chosen discovery path (registry federation, k8s-native EndpointSlice export, or mesh federation) plus mesh trust.
80
+
81
+ ## DR drill
82
+
83
+ Annual minimum; quarterly preferred. Drill scope:
84
+
85
+ ```
86
+ 1. Pick a non-critical service.
87
+ 2. Mark its primary cluster "unavailable" (without actually taking it down, if possible).
88
+ 3. Trigger failover to secondary.
89
+ 4. Run synthetic user traffic against the failed-over service.
90
+ 5. Measure: RTO (time to first successful response), RPO (data delta), correctness.
91
+ 6. Switch back.
92
+ 7. Document gaps; file remediation tickets.
93
+ ```
94
+
95
+ If RTO / RPO is worse than declared, fix the gap before claiming the SLA.
96
+
97
+ Reality check: most platforms have an undrilled DR plan that doesn't work. The first attempt usually surfaces 3-5 blockers. Plan for that.
98
+
99
+ ## Release flow changes
100
+
101
+ Multi-cluster makes release harder:
102
+
103
+ - Image must be available in each region's registry (replicate or use a global registry with regional cache).
104
+ - Canary in one region first, then expand. Cross-region promotion is a separate gate.
105
+ - Config-center: per-region instance, replicated; or global with regional read replicas.
106
+ - Secret store: regional, with cross-region replication where compliant.
107
+
108
+ A change is "fully deployed" only when it's been canary'd and promoted in every region.
109
+
110
+ ## Cross-region observability
111
+
112
+ Without it, you cannot reason about a global service.
113
+
114
+ - Traces stitched across regions (OTel collectors federate or push to a global backend).
115
+ - Metrics scraped per region, aggregated globally.
116
+ - Logs indexed per region with global search (federated query or central aggregation).
117
+
118
+ Cross-region trace gaps are common; verify in a drill.
119
+
120
+ ## Cost
121
+
122
+ Multi-region doubles or triples:
123
+ - Compute capacity (idle secondary).
124
+ - Network egress (cross-region replication).
125
+ - Operational complexity (oncall, runbooks, drills).
126
+
127
+ If business doesn't need it, don't pay it.
128
+
129
+ ## Verification
130
+
131
+ - Failover drill executed in the last quarter; gaps documented.
132
+ - Cross-region call traced end-to-end; trust domains and mesh policy verified.
133
+ - Lane `prod` has instances in expected regions; the chosen discovery view matches deployment.
134
+ - Image rollback can pull from the regional registry; not dependent on a single source.
135
+ - DR runbook exists, was practiced, and reaches steady state within stated RTO.
@@ -0,0 +1,149 @@
1
+ # Promotion Gate and Review
2
+
3
+ The gate that decides "is this release allowed to keep moving."
4
+
5
+ ## Two kinds of gate
6
+
7
+ ### Automated gate (SLI-driven)
8
+
9
+ Wired into the canary check task. Queries observability backend; promotes / holds / aborts based on hard thresholds.
10
+
11
+ ```
12
+ SLI(canary, bake_window) within budget?
13
+ AND no P0/P1 alert fired on canary subset?
14
+ AND smoke tests pass?
15
+ → promote
16
+ otherwise:
17
+ → hold or abort
18
+ ```
19
+
20
+ The gate is code. It runs without human intervention for low-risk changes.
21
+
22
+ ### Manual review gate (approval workflow)
23
+
24
+ For high-risk changes, a human approves before deploy executes.
25
+
26
+ ```yaml
27
+ review_task:
28
+ id: <uuid>
29
+ service: <svc>
30
+ change_summary: <one-paragraph>
31
+ risk_class: low | medium | high | critical
32
+ rollback_plan: <one-paragraph>
33
+ observability_evidence: <links to dashboards, SLI checks, recent canary results>
34
+ requester: <user>
35
+ requested_at: <timestamp>
36
+ reviewers_required: [<role-or-user>]
37
+ approvers: [<approver-records>]
38
+ status: pending | approved | rejected | expired
39
+ ```
40
+
41
+ The deploy API blocks until `status == approved`. After deploy, the same task is updated with the deploy event for audit.
42
+
43
+ ## Risk class
44
+
45
+ Each change declares its risk class. The class determines required reviewers and gates:
46
+
47
+ | Class | Examples | Required gates |
48
+ |---|---|---|
49
+ | Low | dev-lane updates, config flip in non-prod, doc updates | Automated only |
50
+ | Medium | prod canary at < 5%, prod config flip with rollback | Automated + 1 reviewer |
51
+ | High | prod canary > 25%, schema-compatible migration, mesh policy change | Automated + 2 reviewers |
52
+ | Critical | schema-breaking migration, IAM change, mesh trust domain change | Automated + 2 reviewers + on-call ack + change-mgmt notification |
53
+
54
+ Mis-declared risk is a review point: a low-risk change that turns out to break prod tells you the classifier needs tuning.
55
+
56
+ ## Approval shape
57
+
58
+ Each approval record:
59
+
60
+ ```yaml
61
+ approval:
62
+ reviewer: <user>
63
+ approved_at: <timestamp>
64
+ observability_evidence_checked: true | false
65
+ rollback_plan_verified: true | false
66
+ comments: <free text>
67
+ ```
68
+
69
+ Verification fields force the reviewer to confirm they actually read the SLI dashboards and rollback plan. "Click approve" buttons without these are decorative.
70
+
71
+ ## Multi-approver chain shape
72
+
73
+ For approval workflows requiring more than one human (typical for high-risk changes touching billing, schema, multi-tenant data, or cross-team boundaries):
74
+
75
+ - **Approval state is per-requirement satisfaction, not a flat counter threshold**: when the rule is "1 approval from owning-team-leads AND 1 approval from SRE", the workflow stores one immutable vote record per approver (id, role/group claim, timestamp, signature) and evaluates each required requirement-slot independently. A flat `approvals_received >= N` check can be satisfied by `N` approvers from the same role and silently bypass the role-separation guarantee. The transition rule: every required role-slot has at least one positive vote AND zero rejections, AND there exists a one-vote-per-slot assignment (bipartite matching of votes to role-slots, with each vote eligible only for slots it qualifies for) — equivalently, the gate transitions only if a valid injective matching exists, not by greedy assignment. A greedy "each vote claims its highest-priority eligible slot" rule is wrong: with vote A eligible for both `lead` and `SRE` and vote B eligible only for `lead`, greedy can consume `lead` with A and leave `SRE` unsatisfied even though `B→lead, A→SRE` satisfies the policy. A single rejection from any role-slot moves the gate to `rejected` and locks further state changes. A policy may explicitly opt into dual-role self-satisfaction (same person counted in multiple slots); default is forbidden.
76
+ - **Approver identity is verified, not just claimed**: every approval mutation requires the approver's authenticated identity (SSO session, OIDC token, signed chat-callback payload) — not just an approver-id field in the request body. The approver's role/group claim is resolved at vote-recording time against the platform's identity provider, not trusted from the request body. Anyone-can-approve-as-anyone is a finding.
77
+ - **Approval chain composition is data, not code**: the approver requirement set for a given risk class is loaded from configuration (e.g. "high-risk changes need ≥1 approval from owning-team-leads list AND ≥1 approval from the SRE group"). Hard-coded approver chains rot as teams reorganize. The configuration is itself versioned and reviewed.
78
+ - **Per-step handlers chained, not nested if/else**: the approval workflow runs as an ordered set of handlers (validate request → resolve approver identity → check approver eligibility for an open requirement-slot → record immutable vote → recompute per-requirement satisfaction → emit notification → check transition) with each handler returning a typed result the next reads. Pass through; do not branch.
79
+ - **External chat callbacks (Lark, Slack, Teams approval cards) follow the platform's full callback verification contract**: signature, timestamp-skew, nonce/event-id replay protection, action binding to the original task+version+reviewer, resolved clicker RBAC, and idempotent state mutation are ALL required and all enforced before any state mutation. The complete inbound-callback rule lives in `lane-orchestration-control-plane.md` (Chat-Card Approval Callback section); apply that contract here too — do not implement a weaker subset just because this is "approval workflow" rather than "lane orchestration". The HMAC shared-secret rotation rules — dual-verifier acceptance during grace, key id where available, constant-time comparison, sender-vs-verifier cutover order, hard reject after revocation, per-verification audit — live in `secret-and-config-management.md` (Webhook / HMAC verifier rotation section); the generic secret rotation pipeline alone is insufficient for callback verifiers.
80
+ - **Audit on every transition**: each approval vote records who, when, request id, vote, resolved role-claim, prior per-requirement state, new per-requirement state. The audit log goes to the platform's centralized audit store, not just the workflow's own DB.
81
+
82
+ ## Where the gate runs
83
+
84
+ The gate runs in the control plane, NOT in the CI pipeline. Reasons:
85
+ - Gate decisions need real-time SLI queries (only available post-deploy).
86
+ - Approval state changes asynchronously to CI runs.
87
+ - Rollback should not require re-running the original CI.
88
+
89
+ A pipeline can call the gate API; it cannot replace it.
90
+
91
+ ## SLI query wiring
92
+
93
+ The gate calls into the observability stack (`platform-observability` skill defines the SLI shape):
94
+
95
+ ```
96
+ GET /sli/<service>/<subset>?window=30m
97
+ → { burn_rate: <float>, error_budget_remaining: <float>, status: "within_budget" | "breaching" }
98
+ ```
99
+
100
+ The query is a contract: observability owns the implementation, release owns the consumption. If observability changes the response shape, the release gate breaks; treat as a contract change.
101
+
102
+ ## Audit log
103
+
104
+ Every gate decision (auto or manual) writes to an append-only audit log:
105
+
106
+ ```yaml
107
+ audit_event:
108
+ type: gate_decision | approval | deploy | rollback | abort
109
+ timestamp: <ISO8601>
110
+ actor: <user-or-system>
111
+ target: <lane>/<service>/<version>
112
+ previous_state: <snapshot>
113
+ new_state: <snapshot>
114
+ evidence_links: [...]
115
+ outcome: success | failure | aborted
116
+ ```
117
+
118
+ Retention: ≥ 1 year for high/critical changes, ≥ 90 days otherwise. Audit log is queryable.
119
+
120
+ ## Emergency override
121
+
122
+ For incidents where the gate must be bypassed (e.g. roll out an emergency fix faster than canary allows):
123
+
124
+ ```yaml
125
+ emergency_override:
126
+ invoked_by: <user>
127
+ reason: <postmortem-track-id>
128
+ bypassed_gates: [<list>]
129
+ approver: <senior-engineer-or-on-call> # post-hoc within N hours
130
+ ```
131
+
132
+ Override exists but it is logged loudly. A platform that overrides routinely has the gate set too tight.
133
+
134
+ ## Self-service vs centralized
135
+
136
+ | Approach | When |
137
+ |---|---|
138
+ | Self-service per team | Teams own their services; central platform sets minimum gate; teams can add stricter |
139
+ | Centralized | Small platform / regulated industry / shared infra changes |
140
+
141
+ Most platforms drift to self-service with central minimums. Document the minimum; let teams exceed it.
142
+
143
+ ## Verification
144
+
145
+ - Trigger a low-risk change → deploy executes without manual approval.
146
+ - Trigger a high-risk change without approval → deploy API rejects.
147
+ - Approve a high-risk change → deploy executes; audit log shows approval + deploy events.
148
+ - Force an SLI breach during automated gate → gate decision = abort; audit log records the decision and the SLI value that tripped it.
149
+ - Emergency override invoked → loud notification fires; post-hoc approval is recorded.