@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,157 @@
1
+ ---
2
+ name: python-service-architecture
3
+ description: Python 后端架构 / FastAPI 项目结构 / Celery worker 拆分 / Python 微服务边界 / 服务分层重构 / Python 服务重构 → design or review Python backend, service, worker, package, API contract, data ownership, reliability, async/job, and runtime boundaries. Prefer this for architecture/boundary decisions; use python-service-dev for implementation work and localized refactor (某文件/某类); multi-stage / cross-module refactor delivery re-enters product-rd-workflow.
4
+ ---
5
+
6
+ # Python Service Architecture
7
+
8
+ Use this for new product/server architecture work in Python. For new backend products, decide the service boundary from ownership, data source of truth, runtime isolation, scaling, release cadence, and rollback needs before choosing microservice, modular monolith, worker, script, or package shape. This skill distills proven Python backend, AI-service hosting, worker, package, and data-access patterns, but must not assume any existing repository, product domain, package path, service identifier, database, or legacy service layout.
9
+
10
+ ## Skill Routing
11
+
12
+ - Use this skill for Python architecture decisions, microservice decomposition, service decomposition, API contract shape, storage ownership, async execution, worker/job design, observability, reliability, release readiness, and platform boundaries.
13
+ - Use `python-service-dev` when the user asks to implement, modify, scaffold, generate Python code, or apply a diagnosis/test strategy in Python code. A localized refactor (某文件/某类) also belongs to `python-service-dev`; only service-wide layering/boundary redesign stays here, and a multi-stage refactor delivery must re-enter `product-rd-workflow`. For root-cause debugging use `defect-diagnosis` first; for test-layer choice use `testing-strategy` first.
14
+ - Use `product-rd-workflow` first when the request spans product shaping, architecture, implementation, review, release, and learning loops.
15
+ - Use `defect-diagnosis` first when the task is to reproduce, isolate, instrument, fix, verify, or root-cause a backend defect, regression, repeated failure, review finding, or failing test.
16
+ - Use `testing-strategy` when the main question is which unit, integration, contract, or E2E layer should prove behavior; then return here for Python architecture impact.
17
+ - Use `llm-inference-integration` for inference, RAG, prompt, model-routing, evaluation, replay, token-cost, and batch-inference design. This skill only owns the Python service boundary that hosts or calls those capabilities.
18
+ - Use `go-microservice-architecture` for Go services. Do not load Go skill rules for Python work unless the task is explicitly cross-language contract design.
19
+ - Use `platform-observability` for logs/metrics/traces/log-id propagation/dashboards/alerts/SLI-SLO design. This skill owns only the service-side observability surface (what fields the handler emits, what middleware the framework attaches, what health endpoints exist); the cross-cutting evidence stack belongs there.
20
+ - Use `platform-service-connectivity` for service mesh, service discovery, mTLS, multi-environment lane routing, retry/timeout/circuit-breaker policy, and framework client/server middleware for cross-service hops. This skill defines what the service exposes (health endpoints, ctx propagation, error-code conformance); routing/policy lives there.
21
+ - Use `platform-release-engineering` for environment/lane matrix, canary/blue-green, promotion gates, rollback playbook, secret distribution, dynamic-config (config-center) vs static-config split, image build pipeline. This skill owns the service-side contracts (what the service consumes from the secret store and config center); release flow lives there.
22
+ - Use codebase-specific skills only when the task is explicitly about an existing repository.
23
+ - When changing an architecture rule that implementation must obey, name the downstream execution owner before landing: `python-service-dev` for code mechanics, `testing-strategy` for proof layer, platform skills for runtime contracts, and `product-rd-workflow` for cross-stage gates. If the rule also applies outside Python, route through `skill-extraction-workflow` and mirror or explicitly skip sibling architecture/dev skills.
24
+ - For money, billing, quota, permission, tenant/user data isolation, privacy, high-impact AI, repeated writes, async finality, or incident-explanation risk, start from `product-rd-workflow` and its high-risk resilience gate before choosing Python service boundaries or fallback behavior.
25
+
26
+ ## Platform Boundary
27
+
28
+ This skill owns the **service-internal** view: handler shape, contracts, data ownership, async model, error map, worker design, package layout. It exposes a fixed contract to the platform layer:
29
+
30
+ | Service exposes (this skill owns) | Platform owns (route to platform-* skill) |
31
+ |---|---|
32
+ | `/healthz`, `/readyz`, `/ping` endpoints with correct semantics | How orchestrator probes them; registry healthcheck contract |
33
+ | Python equivalent of correlation propagation (`contextvars`, FastAPI `Request.state`, Starlette state, framework request scope) carrying request id / correlation id / trace context / lane / deadline | How those fields propagate across mesh / queue boundaries |
34
+ | Logger interface that takes ctx and emits structured JSON matching the platform field schema | Log shipping pipeline, search index |
35
+ | Use of the framework default app factory with the mandatory middleware chain attached | What that middleware chain must include — see `platform-observability` and `platform-service-connectivity` |
36
+ | Stable error-code enum + mapping table (framework error → code → HTTP/RPC status) | Cross-service error contract evolution |
37
+ | Graceful shutdown: deregister from SD → drain in-flight → close clients → exit | Orchestrator pre-stop hook and termination grace period |
38
+ | Secret consumption via the platform secret-store SDK or injected env at boot | Secret rotation pipeline, distribution mechanism |
39
+ | Static config in per-environment files bundled in the image; dynamic config via config-center SDK | Config-center deployment, audit, rollout |
40
+ | Trace span creation around handler + outbound calls (auto via OTel instrumentation) | Trace backend, sampling policy, retention |
41
+ | Metric emission via framework metrics client (baseline labels attached automatically) | Metric storage, cardinality budget, SLI definition |
42
+
43
+ A Python service author works against this contract. Platform-level questions ("which collector?", "which mesh weight?", "which canary check?") route to the platform skills. Cross-language uniformity of this contract is what makes the platform layer reusable.
44
+
45
+ ## Generalization Discipline
46
+
47
+ - Keep only reusable Python-side mechanics: framework boundaries, typed contracts, dependency assembly, storage ownership, migrations, async/concurrency model, workers, config, reliability, observability, security boundaries, packaging, and delivery workflow.
48
+ - Do not copy product nouns, service names, package paths, provider names, environment names, IDs, dashboards, callbacks, or organization-specific operating habits into the architecture.
49
+ - Convert domain-specific source patterns into reusable mechanics: router shape, schema evolution, repository/unit-of-work boundary, transaction ownership, cache key strategy, idempotency, job lease, config validation, trace context, or test contract.
50
+ - When patterns conflict, choose deliberately:
51
+ - Prefer explicit Pydantic/OpenAPI schemas over untyped dictionaries for public API contracts.
52
+ - Prefer SQLAlchemy 2.x plus Alembic for new Python relational services unless the service records a deliberate alternative data-access choice; use framework ORM ownership when the chosen framework owns that boundary.
53
+ - Prefer relational durable truth over Redis-only truth for auditable state.
54
+ - Prefer explicit dependency assembly over import-time singletons and hidden global clients.
55
+ - Prefer async only when the call chain and libraries are truly non-blocking; isolate blocking CPU/GPU or sync I/O through workers, process pools, or `asyncio.to_thread`.
56
+ - Prefer fail-closed for auth, permission, critical state transitions, and data-integrity paths; fail-open only for non-critical cache/telemetry paths when availability requires it.
57
+ - Fuse patterns only when both are generic and complementary; otherwise keep the simpler product-agnostic rule.
58
+
59
+ ## Core Workflow
60
+
61
+ Before changing architecture guidance, contracts, service boundaries, diagrams, plans, or implementation-driving recommendations, complete enough analysis and planning for the decision to be reviewable. Scale the plan to risk: a simple low-risk explanation can use a short inline plan; multi-service, contract-visible, data-ownership, release, high-risk, branch/MR, or unclear-risk architecture work needs explicit assumptions, alternatives, tradeoffs, acceptance checks, verification evidence, rollback or migration path, and named handoffs to implementation, testing, platform, or product workflow skills before edits or approval.
62
+
63
+ 1. Define the Python service boundary.
64
+ - Identify whether the product needs an HTTP API, internal API, microservice, worker, scheduled job, batch pipeline, SDK/package, or AI-service host.
65
+ - Classify Python code before reusing a pattern: deployable service, SDK/shared package, application service, experiment/benchmark, generated artifact, model/runtime artifact, or third-party/vendor code. Only deployable/current service code should define service defaults.
66
+ - Internal microservice calls use RPC/gRPC by default and may use HTTP when the service contract chooses it. Internal HTTP must meet the same service discovery, auth, timeout, retry, observability, and contract-test standards as RPC.
67
+ - Use a microservice boundary only when ownership, scaling, data ownership, runtime isolation, deployment cadence, or rollback needs justify a separate deployable unit; then identify each service's owner, data source of truth, API/OpenAPI or gRPC contract, runtime dependencies, deployment unit, and rollback boundary.
68
+ - Use a modular monolith, script, worker-only service, or package when service boundaries are unclear, the product is too small to justify separate deployable services, the active repository is already that shape and the task is local to it, or the user explicitly requests that shape.
69
+ - Choose FastAPI, Flask, Django, or another framework by request model, admin needs, async needs, ecosystem constraints, and team familiarity.
70
+
71
+ 2. Define contracts before implementation.
72
+ - Use Pydantic/OpenAPI as the default HTTP contract surface.
73
+ - Use Django forms/serializers or framework-native schemas when the repository standard already exists.
74
+ - Use protobuf/gRPC for RPC only when the integration explicitly requires it; protobuf as an HTTP contract source is governed separately by this ordered decision:
75
+ 1. Default to Pydantic/OpenAPI as the Python HTTP contract source.
76
+ 2. Use protobuf as the HTTP contract source only when that default is not sufficient for a documented cross-language consumer set.
77
+ 3. Before approving protobuf HTTP, record owner, consumers, generated artifacts, compatibility policy, and migration or deprecation path.
78
+ 4. Record framework binding (FastAPI/Flask/Django) and wire format (JSON vs binary protobuf).
79
+ 5. Define the globally unique service name before IDL and implementation, keep IDL ownership separate from business implementation, and consume versioned generated artifacts.
80
+ 6. When the platform uses shared IDL and IDLGen repositories, consume the generated Python artifacts from the same contract source as Go and client-side consumers; do not copy IDL into a service repo, handwrite protobuf types, or treat generated clients as service-local source.
81
+ 7. Satisfying a protobuf/cross-language trigger does not substitute for the owner, consumer, artifact, compatibility, migration, framework-binding, and wire-format records above; all are required before approval.
82
+ - Classify protobuf-backed HTTP using `../platform-service-connectivity/references/protobuf-http-contract-signals.md`; that reference owns the in-scope gate and the routine JSON/OpenAPI carve-out. In Python architecture, once the gate is in scope, record contract source, framework binding, owner, consumers, generated artifact package/version, compatibility policy, migration/deprecation path, and JSON vs binary protobuf wire format. Missing in-scope records block approval; out-of-scope routine Pydantic/OpenAPI changes use the normal contract-definition record.
83
+ - API contracts must define request schemas, the response envelope, and shared public fields in the shared contract source before implementation, per the canonical `code`/`message`/`data` envelope contract in `../platform-service-connectivity/references/http-response-envelope-contract.md` (adoption, migration, non-JSON surfaces, and anti-patterns live there — do not restate them here).
84
+ - Internal RPC contracts carry the platform's shared request/response metadata field when the platform defines one; `platform-service-connectivity` owns the canonical base-struct shape and named-framework examples. Do not inherit a framework's reserved envelope/base field number as a cross-product convention (per `../go-microservice-architecture/references/protobuf-contract-architecture.md`); if a shared metadata field must be part of the protobuf contract (rather than carried via middleware metadata), a new product picks an explicit field and documents it. Within a platform that has already standardized such a field, its field number, name, and message type are compatibility surfaces — do not renumber, rename, or replace them locally.
85
+ - Internal service data models need the same contract discipline: shared cross-service DTOs, enums, status values, metadata fields, and request/response models live in the contract or generated artifact boundary; service-private domain and persistence models stay inside the owning service and convert at route/application boundaries.
86
+ - Prefer additive contract evolution: new fields, new endpoints, new enum values, and stable response semantics.
87
+ - **Inventory the service's exposed surfaces and review new ones at the boundary.** Keep a machine-checkable inventory of every externally reachable surface appropriate to the stack — HTTP routes (FastAPI / Flask / Django), any RPC services and methods, and async subscriptions (Celery / queue / event / webhook consumers); a surface absent from it should not reach production unreviewed. Drive it from a deterministic discovery profile (routes/subscriptions-as-code, or a generated OpenAPI/manifest plus a checked-in snapshot, are two common patterns) with explicit allowlisted carve-outs for framework / health / debug, generated, plugin, and env-conditional surfaces, so the gate flags genuinely new exposure instead of churning on false positives; also flag inventory entries no longer present in code so the snapshot stays trustworthy. Scale enforcement to risk: hard-fail CI for production, externally reachable services; a lighter manifest + review checklist suffices for prototypes, internal scripts, or repos without CI. The inventory proves *every surface was seen and reviewed*, **not** that it is authorized — it is not an authn/authz gate; auth, tenant isolation, and safe exposure remain separate evidence the boundary review must still demand. An unregistered new route or consumer is a *shadow surface* (unreviewed; async consumers are a commonly missed class). Distinct from breaking-change detection (schema / contract diff on *existing* surfaces) and from agent-contract directory coverage (whether a directory carries an `AGENTS.md`); it guards *new runtime exposure*. `product-rd-workflow`'s spec/repo-contract sync gate owns the human discipline; this is its mechanical enforcement. Mirror any change to this rule in `../go-microservice-architecture/SKILL.md`.
88
+ - For finite values that cross service, storage, client, analytics, or generated-code boundaries, architecture must name the canonical owner, shared package or contract location, conversion boundaries, unknown/default behavior, and migration/debt exit path before implementation. If no shared location exists, approve the local-slice fallback and require every `finite-value-debt` marker to carry task reference, owner, deadline, and reason.
89
+
90
+ 3. Design data ownership.
91
+ - A service owns its write model and migration path.
92
+ - Use SQLAlchemy 2.x plus Alembic by default for new relational services unless the service records a deliberate alternative data-access choice.
93
+ - For new MySQL async services, prefer `asyncmy`; `aiomysql` is allowed when the service deliberately chooses it or already uses it. Do not replace an existing working `aiomysql` driver solely to comply with the default. Do not mix MySQL async drivers inside one service boundary.
94
+ - For MySQL sync services, prefer `mysqlclient`; `PyMySQL` is allowed when portability or existing service convention requires it.
95
+ - Use Django ORM and Django migrations when the service is a Django service. Use SQLModel when the architecture deliberately chooses the Pydantic plus SQLAlchemy model shape or the service already uses SQLModel; do not replace existing SQLModel solely to comply with the default.
96
+ - Another deliberately chosen or existing ORM/query layer is allowed when kept consistent inside the service boundary and recorded as the service data-access choice.
97
+ - Treat Alembic or framework migrations as reviewable source artifacts; autogeneration is a draft, not a substitute for migration design.
98
+ - Use Redis for cache, locks, counters, idempotency windows, rate limits, and ephemeral coordination, not durable truth.
99
+
100
+ 4. Design runtime and dependency contracts.
101
+ - Config should be typed and environment-specific, preferably through Pydantic Settings or framework-equivalent config schemas.
102
+ - High-risk feature flags and runtime config default fail-closed in production. Local stubs, test defaults, and developer-safe switches must be visibly scoped and cannot become implicit production enablement.
103
+ - Secrets must not live in code, config examples, tests, or generated clients.
104
+ - Dependency clients for DB, Redis, MQ, object storage, service discovery, external HTTP, and inference calls must have explicit timeout, credential, observability, and test-substitution contracts.
105
+ - Separate serving-path timeout budgets from admin, migration, bootstrap, repair, and batch-operation timeouts.
106
+ - Service registration or model-serving registration should happen only after readiness checks pass; registered metadata should identify environment, version, routing/lane, and capability. Shutdown, polling, and background registration loops need bounded timeout and explicit exit semantics.
107
+ - Readiness must be externally observable for operations. Internal SDK or serving-framework status is useful, but production services still need a clear health/readiness surface, startup failure behavior, and unregister/shutdown semantics.
108
+ - A capability requirement is not a framework-adoption decision. When a requirement names a capability (service discovery, mTLS, graceful drain), first define its minimal closure — the smallest layer that satisfies it — before adopting a platform framework or runtime component for it, AND name which layer actually closes it: service discovery and mTLS can close at the deployment layer (orchestrator DNS, mesh sidecar), but graceful drain inherently needs runtime behavior (stop accepting, SIGTERM/readiness handling, in-flight completion) — manifests alone leave it explicitly `not closed`, never silently satisfied. Framework adoption is not all-or-nothing: when a framework default conflicts with a service characteristic (e.g. a fixed 30s drain window versus minute-scale streaming requests), split at the boundary — land the part that delivers value on its own (deployment manifests), decide or defer the conflicting part (runtime lifecycle adoption) separately with each deferred capability's closure status recorded, and keep a quotable record of why it was not adopted. Mirror any change to this rule in `../go-microservice-architecture/SKILL.md`.
109
+ - Define error mapping once, then map framework, validation, ORM, worker, HTTP client, and dependency errors into it.
110
+ - When comparing a new product backend against a mature internal reference, convert the comparison into a platform-capability gap list, not a source-code shopping list.
111
+ - The recurring maturity checks are: identity/RBAC subject model, external API signature/replay/allowlist boundary, dynamic config with version/cache/watch/rollback, queue producer/consumer lifecycle with retry/drop/replay visibility, DB transaction and query-safety guardrails, context/error propagation across HTTP/RPC/queue, and resource/search visibility scope.
112
+ - A placeholder or README-only package family is not implementation evidence.
113
+ - Before marking an internal reference package family as placeholder-only, inspect nested git repositories or submodules, non-default local/remote branches, tags, and tree contents with read-only commands. Default-branch scaffolds do not prove the architecture capability is absent.
114
+ - If the comparison uses internal checkouts, private repositories, local paths, or organization projects, route preservation through `skill-extraction-workflow` or apply the same sanitization gate before landing any artifact: keep only mechanisms, boundaries, and acceptance gates; remove source-identifying domains, paths, repository/module names, people, tickets, and business nouns.
115
+
116
+ 5. Define observability, quality, and release readiness.
117
+ - Logs, metrics, traces, health/readiness endpoints, request IDs, and safe debug exposure are architecture surfaces.
118
+ - Package and runtime choices must be reproducible: lockfile, dependency groups, import mode, lint/type/test commands, and container entrypoint.
119
+ - Define deployment resources, process model, worker concurrency, canary/smoke checks, rollback, and migration order before launch.
120
+
121
+ ## Architecture Defaults
122
+
123
+ - Do not split Python backends into microservices until ownership, scaling, data ownership, runtime isolation, deployment cadence, or rollback needs justify separate deployable units. When microservices are justified, each service has an owner, API/OpenAPI or gRPC contract, data ownership, inter-service auth, timeout/retry policy, service discovery or routing, observability, deployment unit, and rollback boundary.
124
+ - A modular monolith, script, worker-only service, or package is valid when boundaries are unclear, the product is small, the existing repository shape fits, or the user requests simplification. Record the reason when choosing it.
125
+ - Keep FastAPI/Flask route handlers thin: auth, validation, request/response mapping, and orchestration handoff.
126
+ - In Django, keep framework conventions where they improve clarity, but do not hide domain rules in views, serializers, or settings side effects.
127
+ - Use explicit app factories or startup assembly for clients and middleware; avoid doing network I/O at import time.
128
+ - Avoid hard-coded registry endpoints, provider URLs, secrets, and fallback domains in code. Route them through typed config and fail closed when required production config is missing.
129
+ - Use SQLAlchemy 2.x-style sessions, unit-of-work boundaries, or framework transactions as the data consistency boundary.
130
+ - Long-running jobs require idempotency, checkpoint/restart behavior, failure visibility, and a max execution/concurrency model.
131
+ - Mature reference code is useful only when it exposes a reusable boundary. Prefer extracting framework wrappers, typed clients, context/error contracts, config schemas, unit-of-work or transaction helpers, queue lifecycle helpers, and query-safety checks; discard business nouns, private module layout, and one-off legacy habits.
132
+ - Cross-boundary semantic values are an architecture responsibility even when their local representation is small. Architecture decides where finite values such as status, market, region, channel, source, provider, or permission are canonical, who may expose generated transport enums to domain code, and how duplicate constants are retired.
133
+ - High-risk operations require a resilience contract: fail-closed policy, idempotency strategy, durable status, reconciliation or repair path, trace/request id propagation, user/support explanation surface, and proof that fallback/degradation cannot bypass authorization, tenant/user isolation, quota, audit, or data-retention controls.
134
+ - High-risk context resolution must reject missing tenant, actor, subject, or resource scope instead of falling back to default identities. Durable side effects need atomic audit/outbox evidence or an explicit reconciliation/repair workflow.
135
+ - Python AI/RAG service hosts must separate service wiring from inference design. Model routing, prompt policy, retrieval design, evaluation, and replay belong to `llm-inference-integration`.
136
+ - Generated API clients and generated protobuf code are output surfaces; do not hand-edit them. Generated migrations are drafts that require human review before landing.
137
+
138
+ ## Reference Loading
139
+
140
+ - For source provenance, current extraction boundary, and keep/merge/discard decisions, read `references/source-evidence-map.md` when auditing or re-extracting this skill.
141
+ - For architecture decisions and boundaries, read `references/architecture-playbook.md`.
142
+ - For framework choice, app boundaries, ASGI/WSGI, and route ownership, read `references/web-framework-boundaries.md`.
143
+ - For Pydantic, OpenAPI, schema evolution, and protobuf/gRPC exceptions, read `references/api-contract-and-schema.md`.
144
+ - For public API, partner app auth, signature verification, callback trust boundaries, authorization scope, and audit/operations security, read `references/api-security-boundaries.md`.
145
+ - For SQLAlchemy/Django ORM, migrations, transactions, and data ownership, read `references/data-modeling-and-migrations.md`.
146
+ - For asyncio, blocking work, GIL, and concurrency design, read `references/async-execution-model.md`.
147
+ - For Celery/RQ/arq, scheduled jobs, worker leases, and batch/restart policy, read `references/background-jobs-and-scheduling.md`.
148
+ - For event-driven architecture concerns — delivery semantics taxonomy, producer-side patterns, transactional outbox/inbox, idempotency design, partition-key ordering, schema evolution, retry/DLQ/replay strategy, fanout patterns, saga vs choreography, end-to-end "exactly-once" illusion, and Python-specific implementation glue (asyncio consumer + bounded queue, SQLAlchemy outbox poller with `SKIP LOCKED`, exception hierarchy, sync-vs-async consumer choice, graceful-shutdown order) — read `references/event-driven-architecture.md`. Stack-agnostic core sections mirror the sibling `go-microservice-architecture/references/event-driven-architecture.md`; maintainers updating those sections must update both files in the same change.
149
+ - For multi-tenant SaaS isolation concerns — isolation-tier decision tree (RLS / schema-per-tenant / DB-per-tenant / region-per-tenant), tenant context as a first-class value, tenant-aware data access with DB-engine enforcement, per-tenant quota and rate limit at every layer, tenant-aware observability with cardinality management, per-tenant lifecycle (provision / suspend / export / delete / retention / archive), per-tenant rollout and feature flags, cross-tenant capability gating, compliance / residency / sovereignty, migration between tiers, and Python-specific implementation glue (tenant on `contextvars.ContextVar`, FastAPI dependency + Starlette middleware, SQLAlchemy RLS session variables, connection pool reset via pool reset event, cache key helper, async task spawning with `copy_context`, async message consumer pattern, outbox tenant propagation) — read `references/multi-tenant-isolation.md`. Stack-agnostic core sections mirror the sibling `go-microservice-architecture/references/multi-tenant-isolation.md`; maintainers updating those sections must update both files in the same change.
150
+ - For data-platform architecture concerns — DB engine choice axis (single-instance OLTP / sharding middleware like Vitess / distributed SQL like TiDB / managed cloud DB), HA topology and failover model, read scaling and replica routing with staleness budget, sharding and resharding strategy, cross-region replication and data residency, backup with tested recovery (RPO/RTO + restore drill), cluster lifecycle (provision / scale / decommission), capacity planning (storage / IOPS / connections / latency / replica lag), fleet-wide schema-migration coordination, connection-pool and proxy topology (PgBouncer / ProxySQL / Vitess gateway), cost and efficiency, and Python-specific implementation glue (sync-vs-async driver choice, SQLAlchemy 2.x async with asyncpg/asyncmy, Alembic migrations, PgBouncer prepared-statement caveat, health-check FastAPI dependency, connection-storm mitigation) — read `references/data-platform-architecture.md`. Stack-agnostic core sections mirror the sibling `go-microservice-architecture/references/data-platform-architecture.md`; maintainers updating those sections must update both files in the same change.
151
+ - For Redis cache, locks, counters, rate limiting, and idempotency architecture, read `references/redis-cache-coordination.md`.
152
+ - For typed settings, secrets, dependency clients, and runtime config, read `references/config-secrets-runtime.md`.
153
+ - For logs, metrics, traces, health checks, and debug exposure, read `references/observability-and-ops.md`.
154
+ - For timeouts, retries, canonical errors, validation, and failure policy, read `references/reliability-and-error-contract.md`.
155
+ - For Python service boundaries around LLM/RAG/inference systems, read `references/ai-service-integration-boundaries.md`.
156
+ - For uv/poetry/pip, lockfiles, dependency groups, containers, process model, and launch checks, read `references/packaging-runtime-readiness.md`.
157
+ - For import/export, backfill, data repair, batch jobs, and pipeline boundaries, read `references/batch-and-pipeline-architecture.md`.
@@ -0,0 +1,4 @@
1
+ interface:
2
+ display_name: "Python Service Architecture"
3
+ short_description: "Design Python backend and service architectures"
4
+ default_prompt: "Use $python-service-architecture to design a product-agnostic Python backend architecture and choose service boundaries from ownership, data, runtime, scale, release, and rollback evidence."
@@ -0,0 +1,57 @@
1
+ # AI Service Integration Boundaries
2
+
3
+ Use this for Python service architecture around LLM, RAG, model inference, embedding, OCR, vision, or ML calls.
4
+
5
+ ## Scope Boundary
6
+
7
+ - This skill owns Python service hosting, API boundaries, worker execution, dependency clients, timeouts, streaming endpoints, and persistence around inference.
8
+ - `llm-inference-integration` owns prompt design, model routing, retrieval design, evaluation, replay, token/cost policy, batch inference strategy, and agent behavior.
9
+
10
+ ## Service Rules
11
+
12
+ - Separate request validation, inference orchestration, provider/client adapter, and result persistence.
13
+ - Treat model calls as external dependencies with timeout, retry, rate limit, cost, observability, and partial-failure handling.
14
+ - Long-running inference belongs in workers or async job APIs when request latency is not bounded.
15
+ - Streaming endpoints need cancellation, heartbeat, error event, and cleanup policy.
16
+ - Vector stores and embedding tables are data adapters; define ownership, refresh, versioning, and deletion policy.
17
+ - GPU/CPU-bound inference must have concurrency controls and memory pressure safeguards.
18
+
19
+ ## Inference Service Runtime Topology
20
+
21
+ For Python services that host models or wrap model-serving runtimes (Triton, TorchServe, Ray Serve, llama.cpp llama-server):
22
+
23
+ - **Deployment shape choice** is an architecture decision: FastAPI + Ray Serve for multi-model orchestration with per-model autoscaling and traffic ratio; FastAPI + uvicorn lifespan for single-model CPU services with eager singleton load; llama-server / vLLM / similar for self-contained GGUF / safetensors with OpenAI-compatible HTTP surface. Mixing shapes within one service is a finding.
24
+ - **Model load is part of readiness**, not startup side-effect. The readiness probe reflects "model loaded and warm", not "process up". Health stays public early so the orchestrator can place pods; readiness flips only after the model is callable. **FastAPI lifespan loading interaction**: putting a multi-minute model load inside the lifespan startup blocks the whole app from serving any endpoint (including `/health`) until startup completes; Kubernetes can restart the pod before readiness ever flips. Use one of: (1) Kubernetes startup probe with a generous failure budget (cluster waits the model-load time before liveness/readiness fire); (2) a separate lightweight health-only HTTP server on a different port that runs immediately while the main app loads; (3) an async load state machine where the main app starts immediately and `/ready` reads a "loaded" flag the background loader flips. Document which pattern the service uses.
25
+ - **GPU memory budget is declared per replica**, not inferred. Document the model's resident memory, KV-cache budget (for LLMs), and headroom required for the largest expected batch; pick `instance count` / `Ray Serve replicas` so the product fits.
26
+ - **Three-stage instance lifecycle**: register only after readiness; heartbeat with bounded cadence and explicit failure path; on SIGTERM deregister first, drain in-flight requests with a deadline, then close model handles and exit. Unbounded loops, process-kill exits, and registration-before-load are anti-patterns.
27
+ - **Service metadata exposed to discovery** carries lane, environment, partition, active model version, startup timestamp, and commit hash. Discovery can route by lane and surface "which model version is serving this lane" without polling each instance.
28
+ - **Per-request log_id and request_id propagation**: middleware reads W3C `traceparent` + `tracestate` (and `baggage` when needed) via OpenTelemetry propagator `extract` so spans continue the parent trace, alongside the platform's `X-Log-Id` / `X-Request-ID` for log correlation. At public trust boundaries, regenerate or validate inbound request ids so callers cannot spoof log correlation; on internal hops, preserve. For `asyncio.create_task` / Ray actors / thread-pool workers, capture the OTel context at task creation via `opentelemetry.context.get_current()` and reattach inside the worker; without this, child-task spans become orphans of the parent trace.
29
+
30
+ ## Internal Inference RPC Authentication And Authorization
31
+
32
+ "Internal infrastructure" is not a security boundary on its own. Inference endpoints reachable from the service mesh need explicit auth at the architecture layer:
33
+
34
+ - **Service identity**: every caller has a verified workload identity — mTLS service certificate, SPIFFE / SPIRE ID, signed JWT issued by the platform identity provider, or k8s service account token. The inference service refuses unauthenticated callers; "from inside the cluster" is not authentication.
35
+ - **Caller allowlist per model**: each inference endpoint declares which callers (service identities, teams, environments) are allowed to invoke it. The allowlist is enforced by middleware before the model is loaded, not by trust in network reachability.
36
+ - **Tenant / resource authorization**: when the call carries a tenant id or resource id, the inference service verifies the caller is permitted to use that tenant's / resource's data. A tenant-id passed in the request body and trusted as truth is a finding.
37
+ - **Quota / rate limiting per caller × model × tenant**: a shared GPU model is a shared resource; per-caller quotas prevent one consumer from exhausting capacity for the rest.
38
+ - **Signed object-storage URL trust**: a signed URL is a bearer credential plus a server-side fetch target. The inference server enforces (1) allowed bucket/host allowlist (SSRF defense), (2) allowed object namespace / prefix per caller, (3) maximum expiry window (minutes, not hours), (4) HTTP method scope, (5) content-length and content-type caps, (6) checksum / digest validation when the registry supports it, (7) redaction of signed query parameters from logs and trace attributes.
39
+
40
+ ## Discovery Cache Miss Policy
41
+
42
+ The fallback policy on discovery cache miss is **per-route**, not a portfolio default. The SDK's cache fall-back-to-baseline-lane behavior must be overridable per call:
43
+
44
+ - Read-only idempotent calls on data that is already public-to-the-tenant (classification, OCR on already-uploaded content) MAY fall back to a documented baseline lane.
45
+ - Canary, stress, shadow, tenant-sensitive, or write-with-side-effects routes MUST fail closed when the requested lane has no healthy instance. Silent fallback can leak canary traffic, stress traffic, or one tenant's processing into the wrong lane.
46
+ - The default for unmarked routes is fail-closed. Per-route opt-in to baseline fallback is explicit and reviewed.
47
+
48
+ ## Internal Inference SDK Boundary
49
+
50
+ Portfolios with multiple Python inference services converge on an internal SDK that owns the integration concerns:
51
+
52
+ - **SDK scope**: service discovery (registry-based or k8s-native, with environment/lane filtering), transport (sync and async paths against the same wire), retry with bounded budget, tracing header injection, contract (de)serialization (protobuf / Pydantic / equivalent), and registry-side lifecycle helpers (`register / heartbeat / shutdown`).
53
+ - **Distribution**: package the SDK as a wheel published to a private package index. Pin the version per consumer; SDK upgrades are managed changes with a release note, not ambient editable installs.
54
+ - **Service identity format**: SDK validates the platform's chosen identity format (e.g. three-segment `<owner>.<class>.<env>` or equivalent) at client construction; mistyped identities fail at startup, not at first request.
55
+ - **Lane derivation**: SDK reads the lane environment variable at startup and tags every outbound discovery query and trace span; in-cluster discovery filters by lane metadata so a canary cannot fall back to production by accident.
56
+ - **Discovery cache + failover**: SDK caches the resolved instance list with a short refresh interval (5-15 s), filters to healthy + matching lane, and load-balances over the survivors (round-robin or random). On cache miss, baseline-lane fallback is **per-route, not default-on**: it applies only to routes explicitly opted in per the Discovery Cache Miss Policy above; canary / stress / shadow / tenant-sensitive / write-with-side-effects and all unmarked routes fail closed (never silently fall back) — wiring baseline fallback globally leaks canary/tenant traffic into the wrong lane.
57
+ - **Typed exceptions**: SDK raises typed errors (`InferenceTimeout`, `InferenceModelUnavailable`, `InferenceTransport`) rather than `RuntimeError("...")` with a string. Business code catches by class.
@@ -0,0 +1,62 @@
1
+ # API Contract And Schema
2
+
3
+ Use this for HTTP API, internal API, generated client, Pydantic, OpenAPI, and protobuf/gRPC architecture.
4
+
5
+ ## Defaults
6
+
7
+ - Use Pydantic models and OpenAPI as the default contract surface for Python HTTP APIs.
8
+ - Keep request, response, persistence, and internal domain models separate when they evolve at different speeds.
9
+ - Use protobuf/gRPC only when the integration or platform contract requires it.
10
+ - Generated clients are build artifacts; generated migrations are not contract truth.
11
+
12
+ ## Evolution Rules
13
+
14
+ - Prefer additive evolution: optional fields, new response fields, new endpoints, new enum values, and versioned behavior flags.
15
+ - Treat shipped or externally consumed Pydantic/OpenAPI/protobuf/API contracts as compatible-by-default regardless of implementation language. Do not remove, rename, repurpose, make required, or stop accepting existing fields, codes, endpoints, or semantics unless a human explicitly approves a breaking change after reviewing a risk assessment.
16
+ - A breaking-change risk assessment must name consumers and generated clients, rollout order, compatibility window, migration or dual-read/dual-write plan, monitoring, rollback path, user/customer impact, and contract/integration/replay evidence for the cutover.
17
+ - If launch or consumer status is unknown, assume the contract may be live and design a compatible path first.
18
+ - Do not reuse field meanings or silently change validation semantics.
19
+ - Make deprecation explicit in schema, docs, and compatibility tests.
20
+ - Use typed SDKs or generated clients for cross-service calls when contracts need stability.
21
+
22
+ ## Validation
23
+
24
+ - Validate at the boundary, then convert to domain objects or use-case inputs.
25
+ - Keep public error shape stable even when framework, validation, or dependency exceptions change.
26
+ - If schema validation depends on external data, split syntactic validation from business validation.
27
+ - Treat schema enums and generated enum clients as boundary representations unless architecture explicitly approves transport-coupled domain code through an ADR or an inline usage-site comment formatted `architecture-approval: transport-coupled finite value <scope> <decision-ref> <reason>` where `<decision-ref>` is a full URL or numeric record id such as `ADR-123`; reviewers must confirm the referenced record exists and approves the specific value/scope before approval. A CI check, grep panel, or required review checklist item MUST exist and pass before any PR introducing `architecture-approval:` comments is merged; absence of that check is itself a blocking finding. The first PR that introduces `architecture-approval:` comments must include the enforcement check in the same PR or reference a prior merged check; "will add later" is not approval.
28
+ - For finite values shared by services or clients, define the canonical owner, shared schema/package location, conversion helper owner, unknown/default behavior, and rollout/debt retirement path. If no shared location exists, approve a local fallback and track every temporary duplicate/raw use with `finite-value-debt: <task-ref> <owner> <deadline> <reason>`.
29
+
30
+ ## IDL And Schema Governance (Cross-Stack)
31
+
32
+ When Python services share IDL surfaces (protobuf for gRPC, OpenAPI/JSON Schema for HTTP, Pydantic models for internal contracts) with Go services or other clients, governance applies symmetrically.
33
+
34
+ - For multi-service portfolios, prefer dedicated IDL repos (proto, http-thrift, OpenAPI) over inlining schemas in business repos; each IDL repo runs codegen, formatter, and breaking-change checks in CI.
35
+ - Inside one IDL set, use a tiered structure — `base` for shared structs and the canonical error/code enum, `api` for gateway-facing contracts, `<domain>` (one bounded context per directory) for per-domain RPC — matching the cross-stack convention. The shared `base` is defined once and imported by every service within that set, never redeclared per service (a deliberate compatibility fork with owner/version/deprecation plan is the documented exception); a service that diverged unintentionally is a recorded known divergence with a migration target, not a silent parallel convention.
36
+ - Numeric Code range is reserved at the platform layer (e.g., the platform-specific reserved range) and sub-allocated per tier. Python services raising biz codes must register in the same allocation table as Go services; collisions are caught at allocation, not at runtime.
37
+ - Multi-language codegen: each language has its own codegen script (e.g. one shell script per target language), driven from the IDL repo's CI. The language with integration tests is canonical; others inherit the contract and may need their own coverage.
38
+ - Breaking-change governance is platform-level: `buf breaking` or equivalent runs in IDL-repo CI; intentional breaks route through an explicit approval path regardless of which language consumes the IDL.
39
+
40
+ ## Response Envelope Strategy (Cross-Stack)
41
+
42
+ - Architecture decides once whether the portfolio uses HTTP-status-as-semantic or HTTP-200-always-with-JSON-code, and applies the choice consistently across Go and Python services. Mixing the two on the same portfolio breaks gateway error classification and SDK error parsing.
43
+ - For HTTP-200-always portfolios, the envelope `{code, message, data}` shape and the code-allocation table are platform contracts. Python services use the same envelope as Go services; SDK generators on either side parse the same shape.
44
+
45
+ ## Contract Tiers, Streaming, And Shape Validation (Cross-Stack)
46
+
47
+ Mirrors `go-microservice-architecture/references/protobuf-contract-architecture.md` (Streaming And Surface-Shape Validation); keep these cross-stack rules in sync across both files.
48
+
49
+ - **Distinct contract tiers are distinct shapes — do not force one envelope across all.** Internal RPC (shared base + typed data), the public HTTP JSON envelope (`{code, message, data}`), streaming, and **externally-dictated standard protocols** (a provider-compatible API, a webhook spec, an industry wire format) each carry their own shape. An externally-dictated protocol follows that protocol's wire, mapped from the contract source — not the internal RPC/HTTP envelope. A compatible wire is **not an exemption from internal controls**: authz, tenant isolation, quota, audit, and error-code governance still apply behind it; "just being standard-compatible" must not become a bypass. For a surface with no consumer yet, don't default it to another tier's envelope; define its own contract when a consumer or stability requirement appears.
50
+ - **A streamed message (`grpc.aio` streaming, FastAPI `StreamingResponse` / SSE / NDJSON) is a separate shape decision — not automatically the unary envelope.** Define completion and error semantics explicitly: for a fatal terminal error on a transport that can still signal it (gRPC trailers) surface a non-success status, but where the HTTP status is already committed (SSE / NDJSON after a 200) carry the error in-band and ensure observability classifies it as a failure rather than trusting the 200. A stream that already emitted client-visible data or dispatched side effects is not freely retryable; per-domain event payloads are that service's contract, not a universal field set.
51
+ - **Make the conventions machine-checkable and multi-service, scaled to repo maturity** — an agent-readable convention spec plus a contract health check that iterates every service (not one hardcoded), validates each unary tier's envelope, and exempts streaming and shared-base definitions. A service it cannot yet validate is a recorded gap with owner and severity, not silently skipped.
52
+
53
+ ## Front-End Consumer Contract
54
+
55
+ The HTTP / gRPC contract that Python services publish is consumed by front-end clients (React Web, mobile web, mobile-native). The same envelope, header, and timeout decisions appear on the consumer side; architecture documents both sides so they cannot drift independently.
56
+
57
+ - **Envelope direction**: the server emits the same envelope shape every front-end client parses. Mixing HTTP-200-always with HTTP-status-as-semantic across services forces every front-end caller to special-case per endpoint; the choice is portfolio-level. See the web client skill's cross-stack contract guidance for the consumer-side rules.
58
+ - **Trace propagation**: framework middleware reads inbound request-id header when present and otherwise generates one; both the request id and the OTel trace id are surfaced on the response (header or envelope field) so the front end can show them in error UI. Middleware that drops the inbound header silently breaks end-to-end correlation.
59
+ - **Auth header contract**: the agreed auth header (e.g. `Authorization` or a platform-specific token header), app-identity header, and any tenant / lane / shadow-traffic headers are validated through one middleware and exposed on the request context using a tiered context-keys convention. Per-route ad hoc header reads are findings.
60
+ - **Timeout layering**: outer caller budget is always longer than inner callee budget. For the path `front-end client → Python gateway → downstream RPC/HTTP`, the relationship is `client timeout > gateway timeout (uvicorn / gunicorn worker + framework-level) > downstream RPC/HTTP timeout`. A gateway longer than the client lets the client time out before the gateway can return a structured error; a gateway shorter than the downstream call the gateway itself initiates leaves the inner call running with no caller. Per-endpoint risk tunes the specific values; the ordering is invariant. For long-running work, the gateway holds the request only as far as the streaming/polling contract requires; otherwise the server hands the work to a background worker and returns a task id the front end can poll.
61
+ - **Client-signed object-storage upload**: expose a narrow signed-credential endpoint (returns short-lived STS or signed URL + upload target) so front ends write directly to object storage. The main API channel never carries the file body. Token issuance is logged for audit.
62
+ - **SDK/codegen for the front end**: when the contract is exposed via OpenAPI / Pydantic schemas, the front-end TS client is generated from the same source the server compiles. Architecture owns the generator command and the publishing cadence so the front-end client never lags the server contract by more than one release.
@@ -0,0 +1,39 @@
1
+ # API Security Boundaries
2
+
3
+ Use this when a Python service exposes public APIs, partner integrations, callbacks, signed requests, app credentials, or externally reachable admin surfaces.
4
+
5
+ ## Public API Boundary
6
+
7
+ - Treat public APIs as a separate trust boundary from internal framework routes, workers, and RPC clients.
8
+ - Authenticate the calling app or user before resolving authorization scope or running domain validation.
9
+ - Keep authentication, authorization, scope resolution, schema validation, and domain validation as separate architecture steps.
10
+ - Define auth bypass paths explicitly. Keep them small, reviewed, and limited to health/readiness or documented public metadata.
11
+ - Public errors should be stable and non-sensitive; logs should keep the detailed auth failure reason with safe identifiers.
12
+
13
+ ## Partner Application Auth
14
+
15
+ - A partner app model should include app id, secret/public-key reference, allowed source restrictions when applicable, allowed authorization/resource scope, integration/source identity, status, and rotation metadata.
16
+ - Store secrets in a secret provider or encrypted config, not in code, config examples, tests, generated docs, or logs.
17
+ - Support disabled apps and rotated credentials. Unknown, disabled, expired, or malformed auth config fails closed.
18
+ - Signed requests should include timestamp, nonce or request id, app id, and canonical request data.
19
+ - Prefer HMAC or asymmetric signatures for new integrations. Enforce timestamp windows and replay protection for state-changing APIs and callbacks; document explicit read-only or already-idempotent exceptions.
20
+
21
+ ## Authorization Scope Isolation
22
+
23
+ - Treat tenant, account, owner, actor, resource, and permission fields from request body, query, path, headers, or downstream payloads as claims until resolved from authenticated context.
24
+ - Resolve allowed resource scope from the authenticated app/user before domain logic.
25
+ - Include resolved scope/source in idempotency keys, cache keys, rate limits, audit records, and downstream context.
26
+ - Scope-check bypasses require explicit integration config, narrow reason, and audit trail.
27
+
28
+ ## Callback Boundary
29
+
30
+ - Callback endpoints must validate signature/token, timestamp window, event type, payload shape, and required resource identifiers before side effects.
31
+ - Callback processing should assume duplicate, delayed, and out-of-order delivery.
32
+ - Deduplicate by provider event id, request id, or a stable resource-event-time key.
33
+ - Return provider success only after durable acceptance, or document why the provider should not retry.
34
+
35
+ ## Audit And Operations
36
+
37
+ - Log app id, resolved scope id, integration source, event id, endpoint, auth result, canonical error code, and trace/request id.
38
+ - Do not log secrets, raw signatures, full tokens, or sensitive payloads.
39
+ - Metrics should separate auth failure, permission failure, validation failure, duplicate callback, callback processing failure, and dependency failure.
@@ -0,0 +1,46 @@
1
+ # Architecture Playbook
2
+
3
+ Use this as the first reference for Python backend, Python microservice, AI-service host, worker, batch, or package architecture. For new backend products, choose microservice, modular monolith, worker, script, or package shape from ownership, data boundary, runtime isolation, scaling, release cadence, and rollback evidence.
4
+
5
+ ## Source Lessons
6
+
7
+ - Official framework docs support clear router/app separation, dependency injection, settings, test clients, and deployment checks.
8
+ - Local production-service code shows strong Python service hygiene: `uv` workspace, dependency groups, FastAPI app factory, SQLAlchemy/Alembic, pytest markers, ruff, mypy/pyright, OpenTelemetry packages, generated clients, and release scripts.
9
+ - Local inference-service code shows high-value async and model-hosting patterns, but also a risk: business-specific handlers, ad hoc scripts, and domain terms must be filtered out. Extract async boundaries and service wiring, not product vocabulary.
10
+
11
+ ## Architecture Decisions
12
+
13
+ - Decide the backend shape first: API service, internal service, worker service, scheduled job service, SDK/package support library, CLI, AI-service host, or modular monolith.
14
+ - Use separate deployable service boundaries only when ownership, scaling, data ownership, runtime isolation, deployment cadence, or rollback needs justify them. Keep one modular service/package/script shape when boundaries are unclear or the scope is too small for separate services.
15
+ - For each Python microservice that is justified, define the owner, contract, data source of truth, inter-service auth, timeout/retry/fallback policy, deployment unit, canary/rollback, and observability.
16
+ - Separate layers:
17
+ - transport/framework: routing, auth, validation, response mapping
18
+ - application/service: use-case orchestration and transactions
19
+ - domain: invariants and decisions
20
+ - infrastructure: DB, Redis, MQ, object storage, external HTTP, inference clients
21
+ - tooling: migrations, scripts, generated clients, test helpers
22
+ - Avoid import-time network I/O, implicit global clients, and hidden environment reads outside settings/bootstrap.
23
+ - Put cross-service contracts in schemas, OpenAPI, protobuf, SDKs, or typed clients, not in string conventions.
24
+ - For finite values used across contracts, domain logic, persistence, clients, analytics, or events, architecture owns the semantic source of truth. Decide the canonical owner, shared contract/package location, allowed representations per boundary, parser/canonicalization owner, unknown/default behavior, and rollout order. If a shared location does not yet exist, the architecture decision must approve a local fallback and a consolidation task with owner and deadline; unowned `finite-value-debt` markers are architecture findings.
25
+
26
+ ## Layering Depth (Apply In Moderation)
27
+
28
+ - The transport / application / domain / infrastructure split above is the **Ports-and-Adapters / Hexagonal** idea in moderation — `infrastructure` modules are the adapters, the application-service layer hides them behind plain function / class boundaries. Useful when: an external dependency has multiple real implementations (S3 + GCS, OpenAI + local-inference + vendor-N), a domain rule is stable enough that the test fake is reusable across years, or a regulated boundary requires a single audit point. Counter-indicated when: there is one real implementation that will not change, the "adapter" is a thin pass-through with no behavior, or the layering would force every DTO through 3 mappings. Do not introduce an interface per class out of habit — the Java-style "every service has an interface, DTO mirrors entity, entity mirrors row" pattern is over-engineering in Python and produces churn without testability or substitution gains.
29
+ - **Functional core, imperative shell**: prefer pure functions for calculation / rule / state-transition logic; let FastAPI handlers, SQLAlchemy sessions, Celery tasks, and external clients be the I/O shell that calls them. The pure core is easy to unit-test without fixtures; the shell is small enough to integration-test directly. Conflating them — domain rules sprinkled inside ORM event listeners, or business calculation inside a Celery task — is the recurring source of "we cannot test this without a real database / queue / network." Distinct and **not** optional: domain invariants must not be hidden inside route/FastAPI handlers, repositories, external-client wrappers, SQLAlchemy/ORM event listeners or hooks, or Celery task/worker callbacks — anywhere outside the domain/service layer. That is the layering rule, independent of whether you adopt the pure-core style. Sibling: `go-microservice-architecture/references/architecture-playbook.md` ("Functional Core, Imperative Shell") carries the same principle for Go; keep the two in sync.
30
+ - **Shared foundation/utility packages need stricter tiering than a single service**, scaled to blast radius — a widely-imported cross-service `common` library earns it; a tiny single-consumer helper does not. Such a module inherits one import cycle or one heavyweight coupling into every consumer, and a leaf utility cannot be reused once it transitively drags in unrelated packages. Document an explicit linear package-tier order in the module itself (illustrative: `generated value-types -> constants -> generic pure utils -> logging/metrics -> framework/business adapters`); forbid earlier tiers importing later tiers (one-directional, acyclic). Default to sibling independence so each leaf stays independently importable; when one same-tier package genuinely needs another, extract the shared piece down a tier rather than copy-pasting or adding a micro-tier. Generated pure contracts may be imported anywhere; generated clients carry transport deps and belong in the adapter tier only; all generated code is regenerate-only. Enforce with `import-linter` `layers` + `independence` contracts (a `src/` layout aids packaging isolation but does not enforce tiering) rather than review memory; a new cross-tier or sibling import is an architecture-review item.
31
+ - **How a layer boundary is enforced is itself an architecture decision**, with a strength ladder: physical package boundary (a separate distribution package whose violation is an import or packaging error), `import-linter` contracts in CI (above), then review convention — in decreasing strength; prefer mechanisms where a violation is a CI error, not a review comment. For a core where a frozen contract must coexist with continuous evolution (a gateway data plane, a billing domain), prefer the physical boundary, and add a deterministic digest/conformance anchor as machine proof that evolution has not touched the frozen surface. Record why the chosen strength is enough (cost versus strength); a weaker tier is a documented tradeoff, not a default. Sibling: `go-microservice-architecture/references/architecture-playbook.md` ("Dependency Direction") carries the same rule for Go; keep the two in sync.
32
+ - **Adapter / plugin family = shared core + thin bridges (especially across repos).** When one cross-cutting concern (observability, auth/governance, a client-SDK wrapper) bridges into many frameworks/drivers (FastAPI / aiohttp / a set of DB, cache, MQ clients), put the invariants in one shared core and make each adapter a thin framework-specific bridge — not a per-adapter re-implementation. The core exposes only the seam + invariants; a *concrete* framework/driver adapter (a specific ORM, HTTP framework, or MQ-client binding) must NOT live inside the core package — that pulls its heavyweight deps into every core consumer and inverts the dependency direction (adapters import the core, never the reverse; keep the core adapter-agnostic). Keep the seam **dependency-neutral but semantics-explicit**: it names the required transaction/commit/ack/retry/cancel/failure guarantees the invariants rely on (an outbox/audit control needs real commit-and-ack, not a seam that hides it) plus an adapter conformance suite, and rejects a driver that can't meet them rather than flattening to a lowest common denominator. A library swap is a thin shim *only if* it preserves that declared capability matrix (session scoping, connection reset, broker nack/backpressure, middleware ordering); dropping a real semantic is an architecture change, not a shim. "Outside the core" ≠ "ship nothing" — provide at least one official/reference adapter + bootstrap for every mandatory fail-closed control (auth/governance/data-integrity/audit/compliance) + baseline instrumentation, so services don't each hand-roll and diverge from — or bypass — the invariants. Failure policy is risk-specific: fail-open only for genuinely optional telemetry, fail-closed for auth/governance/data-integrity/audit (audit & compliance signals are controls, not "observability") — but "fail-closed" for audit means durable local capture (outbox) + bounded degraded mode, hard-blocking only the specific regulated operation (mutation, sensitive read, export, or privileged access), not making the audit exporter a synchronous kill switch for unrelated traffic; context binding, lifecycle, propagation, canonical schema/error model are the other invariants. The same fix landing in a third sibling adapter is the signal to extract the invariant into the core — but backport/mitigate the live bug across existing adapters **first**; extraction is the durable follow-up. For independently-pinned adapters, ship a *minimal, explicitly-versioned* extension API plus a **tiny stable contract package separate from the core impl** (so a core change doesn't version-lock every adapter — govern with semver windows + cross-adapter contract tests); stabilize the broader abstraction only on rule-of-three evidence, not speculatively (a wrong shared abstraction is harder to undo than duplication). Reuse official framework instrumentation only through explicit injected provider/runtime (not its process-globals; contract-test no global set-once) — or, if the official lib is global-only, a documented single-owner idempotent bootstrap exception (test-isolated, no custom wire semantics) rather than forking it — keeping governance in the core. Sibling: `go-microservice-architecture/references/architecture-playbook.md` ("Adapter / Plugin Family") carries the same principle; keep the two in sync.
33
+ - **Composition over inheritance** is the Python default. Reach for a base class only when the subclass relationship is genuinely "is-a" and the parent class is stable; a `BaseService` / `AbstractHandler` / `BaseRepository` that exists to share two helper methods is a refactor target — extract the helpers, drop the hierarchy. Deep business-service inheritance trees (3+ project-owned levels, excluding framework base classes like SQLAlchemy `DeclarativeBase` / Pydantic `BaseModel` / Django `Model`) are a code-review finding.
34
+
35
+ ## Architecture Output Checklist
36
+
37
+ - Chosen framework and why.
38
+ - Service shape: microservice set, modular service, package, CLI, worker, script, or AI-service host, with the boundary rationale.
39
+ - API/schema contract and evolution policy.
40
+ - Finite-value semantic owner, shared location or approved local fallback, conversion boundaries, unknown/default behavior, and debt retirement owner/deadline when relevant.
41
+ - Data owner, migration owner, transaction boundary, and rollback strategy.
42
+ - Async/concurrency model and blocking-work isolation.
43
+ - Worker/job model, retries, idempotency, and failure visibility.
44
+ - Config/secrets model and dependency client lifecycle.
45
+ - Observability and launch checks.
46
+ - Tests and quality gates at the architecture level, with detailed test mechanics routed to `testing-strategy` and `python-service-dev`.
@@ -0,0 +1,24 @@
1
+ # Async Execution Model
2
+
3
+ Use this when deciding sync vs async, concurrency, event loops, CPU/GPU work, and blocking dependency boundaries.
4
+
5
+ ## Decisions
6
+
7
+ - Use async when the dominant work is non-blocking I/O and the dependency libraries are async-native.
8
+ - Keep synchronous stacks synchronous when async would only wrap blocking SDKs.
9
+ - Do not call blocking DB, HTTP, file, CPU, or GPU work directly inside async endpoints.
10
+ - Isolate blocking work with workers, process pools, thread pools, or `asyncio.to_thread` where appropriate.
11
+ - Bound concurrency with semaphores, queue limits, worker pool settings, and dependency-specific connection limits.
12
+
13
+ ## Python-Specific Risks
14
+
15
+ - The GIL makes CPU-heavy concurrency different from lightweight I/O concurrency. Use process or native-extension strategies for CPU-bound work.
16
+ - `asyncio.gather` without limits can overload downstream systems.
17
+ - Cancellation and timeouts must be designed; a cancelled request should not leave orphaned jobs, leaked clients, or half-written state.
18
+ - Event-loop lifecycle and client cleanup belong to app lifespan/bootstrap, not module import.
19
+
20
+ ## Structured Concurrency Principle
21
+
22
+ - **`asyncio.TaskGroup` (Python 3.11+) is the architecture default for fan-out concurrency** — supersedes `asyncio.gather` as the recommended primitive for any concurrent work where partial failure should cancel siblings. The architectural shift from `gather` to `TaskGroup` is the same shift Trio popularized as "structured concurrency": every concurrent task has a lexically-scoped lifetime, failures propagate as a unit (via `ExceptionGroup` + `except*` per PEP 654), and cancellation flows in a deterministic order. Reserve `gather(return_exceptions=True)` for the narrow case where partial success with independent siblings is the intended contract — every other use is technical debt waiting to leak.
23
+ - **Free-threading (PEP 703) changes the GIL assumption for new architecture decisions starting at Python 3.14**, where free-threading reached officially-supported Phase II status (per PEP 779) with the single-threaded penalty narrowed to ~5-10%. For services where parallel CPU work matters (in-process inference fan-out, parallel parsing, image/document processing) this is the first version where the "use a process pool to escape the GIL" decision becomes "use threads in a free-threaded build" — a meaningfully different architecture. The catch: C extensions must opt in (PEP 803 `abi3t`), and ecosystem maturity at 2025-2026 is uneven. Treat free-threading as an architecture option to consider deliberately, not the default; for pure I/O-bound services, the stock-GIL build remains correct.
24
+ - **`anyio` is the architecture choice for async code that should support both asyncio and Trio backends** — relevant when the service ships as a library consumed by both ecosystems or when the team values Trio's stronger structured-concurrency semantics. Pure-application services usually stay on asyncio directly (TaskGroup + timeout + ExceptionGroup); reach for anyio when the dual-backend requirement is real, not as a hedge.
@@ -0,0 +1,18 @@
1
+ # Background Jobs And Scheduling
2
+
3
+ Use this for Celery, RQ, arq, APScheduler, cron-like jobs, queue workers, and long-running tasks.
4
+
5
+ ## Job Model
6
+
7
+ - Define job identity, payload schema, idempotency key, retry policy, timeout, max concurrency, and terminal states.
8
+ - Decide whether the job is durable queue work, scheduled work, one-off repair, or batch pipeline before choosing a tool.
9
+ - Use Celery/RQ/arq when work must survive process restarts or run outside the request path.
10
+ - Use in-process background tasks only for short, non-critical work that can be lost safely.
11
+
12
+ ## Reliability
13
+
14
+ - Treat queue delivery as at-least-once unless the platform proves otherwise.
15
+ - Make consumers idempotent.
16
+ - Use leases or locks for singleton jobs.
17
+ - Store progress/checkpoints for long jobs.
18
+ - Expose failure visibility through logs, metrics, status records, or administrative reports.
@@ -0,0 +1,11 @@
1
+ # Batch And Pipeline Architecture
2
+
3
+ Use this for imports, exports, backfills, repair scripts, data processing, and pipeline-like Python work.
4
+
5
+ ## Boundaries
6
+
7
+ - Keep one-off scripts from becoming hidden production systems. If a script is repeated, add config, logs, dry run, resume, and tests.
8
+ - For large jobs, define chunk size, checkpoint, restart behavior, max concurrency, rate limits, and output artifacts.
9
+ - Use durable task state for multi-step jobs that affect product data.
10
+ - Separate extraction, transformation, validation, persistence, and reporting.
11
+ - For Airflow, Dagster, Spark, dbt, or true data-engineering orchestration, consider a future dedicated `python-data-pipeline` skill instead of overloading this skill.
@@ -0,0 +1,22 @@
1
+ # Config Secrets Runtime
2
+
3
+ Use this for settings, secrets, dependency clients, and runtime configuration.
4
+
5
+ ## Settings
6
+
7
+ - Prefer typed settings through Pydantic Settings, Django settings modules with typed accessors, or equivalent schema-backed config.
8
+ - Separate local, test, staging, and production configuration without hard-coding environment names into business logic.
9
+ - Validate required config at startup before serving traffic. More generally, never let a critical invariant rest on a dependency's incidental or undocumented behavior — assert and own it locally, preferring construction-time fail-fast over request-time fail-open.
10
+ - Keep defaults safe for local development, not silently production-like.
11
+ - The Settings / Secrets / Dependency Clients rules in this file plus the stateless-process and structured-logs rules in `observability-and-ops.md` and `packaging-runtime-readiness.md` cover the Twelve-Factor App principles MOST relevant to a Python service skill (config in env, backing services as attached resources, build/release/run separation, processes, logs). Do not treat this as a full Twelve-Factor checklist — factors like codebase, port binding, and admin processes are owned elsewhere. Follow the typed-config + env/secret-injection + startup-validation rules here and route deployment / release / port-binding / admin-process factors to `platform-release-engineering` and `packaging-runtime-readiness.md`.
12
+
13
+ ## Secrets
14
+
15
+ - Secrets must come from environment, secret manager, workload identity, or deployment platform.
16
+ - Do not place real secrets in examples, tests, generated clients, notebooks, logs, or pyproject files.
17
+ - Redact secrets from error messages and structured logs.
18
+
19
+ ## Dependency Clients
20
+
21
+ - Define lifecycle: construction, readiness validation, timeout, retry, credentials, close hook, and fake/test substitution.
22
+ - Separate startup/admin timeouts from request-path timeouts.
@@ -0,0 +1,64 @@
1
+ # Data Modeling And Migrations
2
+
3
+ Use this for SQLAlchemy, SQLModel, Django ORM, Alembic, transactions, and storage ownership.
4
+
5
+ ## Ownership
6
+
7
+ - A Python service owns its write schema and migration history.
8
+ - Shared databases require explicit ownership rules. Do not let two services write the same tables without a designed contract.
9
+ - Keep ORM models, repository interfaces, transactions, and migration scripts aligned.
10
+
11
+ ## Migration Policy
12
+
13
+ - Treat Alembic autogenerate output as a draft. Review table names, indexes, constraints, data migrations, downgrade/rollback expectations, and lock impact.
14
+ - Keep generated migrations in source control, with human-edited intent where needed.
15
+ - For Django, treat migrations as source artifacts too; review data migrations and irreversible operations.
16
+ - Define deploy order for schema changes that require application compatibility.
17
+
18
+ ## Index And Query Model
19
+
20
+ Evidence boundary: these rules are cross-stack backend guidance expressed for Python ORM and migration tooling. Confirm the active repository's migrations, ORM conventions, database dialect, and observed repository methods before claiming local completeness.
21
+
22
+ - Define expected query filters, joins, sort order, and pagination strategy before finalizing ORM models or migrations.
23
+ - Composite indexes should match actual access paths: leading equality or `IN` predicates first, then range/order fields. Single-column `index=True` fields do not replace a reviewed composite index when the repository method filters by multiple columns.
24
+ - Unique constraints should represent product/data invariants, not only performance. Upsert or de-duplication paths that re-query rows to recover generated fields need a stable unique/conflict key that matches the re-query shape.
25
+ - Treat leading-wildcard search, broad `OR`, tuple or large `IN`, `DISTINCT` over joins, and offset pagination as warnings for hot user paths. Either prove bounded cardinality and a query-plan budget, or move the use case to exact-match filters, keyset pagination, or a search/read-model projection.
26
+ - Query-plan tooling such as SQLAlchemy compiled SQL plus database `EXPLAIN`, or Django `QuerySet.explain()`, is a safety net. It does not replace reviewing migrations, access paths, and production cardinality assumptions.
27
+
28
+ ## Transactions
29
+
30
+ - Use explicit unit-of-work/session boundaries for multi-step writes.
31
+ - Avoid opening sessions deep inside domain functions when the caller owns the transaction.
32
+ - Keep DB read/write routing and transaction ownership in a shared infrastructure layer when one exists.
33
+ - Redis, queues, and external calls inside DB transactions require careful outbox, idempotency, or compensation design.
34
+
35
+ ## Postgres Driver Choice (Architecture Axis)
36
+
37
+ - **Driver choice is an architecture decision, not a developer preference** — it constrains sync/async coexistence, ecosystem maturity, and operational tooling (psql tools, observability libraries, ORM dialect availability). Decide at service-shape time, not when the first repository method is written.
38
+ - **`psycopg` v3 is the default for new services that need both sync and async** — per psycopg docs, one library, one DBAPI, both `create_engine()` and `create_async_engine()` consume the same URL with SQLAlchemy auto-selecting sync vs asyncio dialect. Supports modern Postgres features (composite types, JSONB, pipeline mode, server-side parameter binding). Migration target for psycopg2 (maintenance mode, no new features). Architecture impact: one driver across web handlers, Alembic migration runner, batch scripts, CLI tools, admin paths — no driver-boundary cognitive overhead.
39
+ - **`asyncpg` is the alternative for pure-async high-throughput services** — independent driver, optimized for the async path; SQLAlchemy supports it as an async dialect. Architecture cost: any sync code path (Alembic, batch scripts, sync admin) will pull in psycopg2/psycopg anyway, producing a two-driver service. Choose asyncpg only when (a) the service is genuinely 100% async, (b) profiled benchmarks show measurable improvement over psycopg async on the actual workload (the gap has narrowed in psycopg v3), (c) the team accepts the cost of two-driver maintenance. The "asyncpg is faster" claim is generic; verify against the workload before letting it drive a driver split.
40
+ - **For non-Postgres dialects, the same architectural question applies but with different defaults**: MySQL async → prefer `asyncmy` for new services; `aiomysql` is allowed when deliberately chosen or already established in the service, and should not be replaced solely to comply with the default. MySQL sync → prefer `mysqlclient`; `PyMySQL` is allowed for portability or existing convention. SQLite → built-in `sqlite3` (sync) + `aiosqlite` for async. Document the chosen driver per dialect at architecture level and do not mix two MySQL async drivers inside one service boundary.
41
+
42
+ ## Connection Pool And Proxy Topology
43
+
44
+ - Pool sizing is a contract between the service, the connection proxy (PgBouncer, RDS Proxy), and the database server. Architecture must name the binding constraint and document how worker count, async concurrency, and replica count combine into the global connection budget.
45
+ - Decide proxy mode (session vs transaction pooling) at the architecture level; transaction pooling forces the service to give up session-level state (server-side cursors, `LISTEN/NOTIFY`, prepared-statement caches, advisory locks held across statements). Code patterns that depend on session continuity must be redesigned or routed to a session-pooling pool.
46
+ - Recycle intervals (`pool_recycle`, proxy idle timeout, load balancer idle timeout) must satisfy `recycle < idle_timeout` at every hop; architecture documents the tightest hop and the resulting client setting.
47
+
48
+ ## Read Replica And Routing Boundary
49
+
50
+ - If the deployment includes read replicas, architecture declares which read paths can tolerate replica lag and which must read through the primary. Replica reads are a feature with a consistency contract, not a transparent optimization.
51
+ - Read-after-write within a request window routes to primary until the consistency window closes; the window length and the carrier (request scope, causality token, session flag) are architecture decisions.
52
+ - Replica engines should use read-only DB credentials so write attempts fail loudly at the database, not silently against the wrong endpoint.
53
+
54
+ ## Outbox And Dual-Write Consistency
55
+
56
+ - DB-plus-Redis or DB-plus-MQ writes must use an outbox table when both must reflect the same business fact. Architecture declares which write paths cross a durability boundary and need outbox; ad hoc dual writes are review findings.
57
+ - Outbox publishing is at-least-once; downstream consumers carry the idempotency burden. Architecture names the consumer-side idempotency mechanism (unique key, idempotency store, state machine) per outbox topic.
58
+ - High-throughput outbox paths may use CDC (logical replication, binlog tail) instead of polling; architecture names the chosen strategy and the durability contract it provides.
59
+
60
+ ## Long-Running Transaction Budget
61
+
62
+ - Architecture sets per-role transaction time budgets and chooses the enforcement layer: database `statement_timeout` / `idle_in_transaction_session_timeout`, framework-level transaction wrapper with timeout, or both.
63
+ - External calls (HTTP, inference, object storage) inside DB transactions are an architectural error unless explicitly documented with a compensation plan. Streaming responses and websocket handlers must commit before entering the long phase.
64
+ - Transaction-duration histograms and idle-in-transaction counts are first-class SLI/SLO signals owned at the platform observability layer; this skill names the emission contract.