@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,392 @@
1
+ # 测试代码写法的工程实践
2
+
3
+ 写测试代码本身的工艺(stack-agnostic)。与 testing-strategy 主体的"该测什么 / 哪一层测"互补 — 这份是"该写什么形状的测试代码"。
4
+
5
+ 不替代 stack-specific dev skill(pytest fixture 细节 → python-service-dev;Go table-driven 语法 → go-microservice-dev);这份只覆盖跨语言通用模式。
6
+
7
+ ## 外部来源(按名引用 + 可核验)
8
+
9
+ - **Gerard Meszaros** — *xUnit Test Patterns: Refactoring Test Code* (2007, Addison-Wesley) — test smells、test doubles 分类、fixture 模式权威
10
+ - **Roy Osherove** — *The Art of Unit Testing* (2nd ed. 2013, Manning) — 测试命名约定
11
+ - **Steve Freeman & Nat Pryce** — *Growing Object-Oriented Software, Guided by Tests* (2009, Addison-Wesley) — outside-in / London school TDD
12
+ - **Martin Fowler** — "Mocks Aren't Stubs" (martinfowler.com, first published 2004; significant 2007 revision) — behavior vs state verification 界定
13
+ - **Daniel Terhorst-North** — "Introducing BDD" (dannorth.net, 2006) — Given-When-Then 来源
14
+ - **Nat Pryce** — "Test Data Builders: an alternative to the Object Mother pattern" (natpryce.com, 2007) — Test Data Builder
15
+ - **Go 官方 wiki** — Table Driven Tests (go.dev/wiki/TableDrivenTests) — Go 社区主流模式
16
+ - **Brian Marick** — "How to misuse code coverage" (testing.com, 1999) — coverage 不是目标
17
+
18
+ ---
19
+
20
+ ## 1. AAA / Given-When-Then 结构
21
+
22
+ **定义**:把一个测试拆 3 段:**Arrange**(准备前置)→ **Act**(执行被测代码)→ **Assert**(断言结果)。等价 BDD 形式:**Given** / **When** / **Then**(Terhorst-North 2006)。Meszaros《xUnit Test Patterns》用 4 段:Setup / Exercise / Verify / Teardown(Teardown 多由框架接管,所以日常简化为 3 段)。
23
+
24
+ **用**:所有测试默认都该有清晰的 3 段。一段空行隔开即可(注释可选)。
25
+
26
+ **不用**:参数化 / 表驱动的单条 row 不必每个都标 3 段;整个表外层结构本身就是 AAA。
27
+
28
+ **落地**:
29
+ - 视觉上一空行分段
30
+ - 一个测试只一组 AAA — 多组 AAA 说明该拆 2 个测试
31
+ - 注释 `// Arrange` / `// Act` / `// Assert` 是可选的;命名清楚的情况下不必加
32
+ - BDD 框架(Cucumber / Behave)可直接用 Given/When/Then 关键字
33
+
34
+ **例**:
35
+ ```python
36
+ def test_export_request_returns_signed_url_when_user_has_quota():
37
+ # Arrange
38
+ user = create_user(quota_remaining=1)
39
+ fake_storage = FakeStorageBackend()
40
+
41
+ # Act
42
+ result = export_service.request(user, fake_storage)
43
+
44
+ # Assert
45
+ assert result.signed_url.startswith("https://storage.example/download/")
46
+ assert result.expires_at > now()
47
+ ```
48
+
49
+ ---
50
+
51
+ ## 2. 测试命名约定
52
+
53
+ **定义**(Osherove):测试名表达 3 段意图:被测单元 + 场景 + 期望行为。各栈惯例:
54
+
55
+ - **Python (pytest)**:`def test_<unit>_<scenario>_<expected>()`
56
+ - **Go**:函数名 `func TestXxx(t *testing.T)`;场景通过 `t.Run("scenario_<expected>", ...)` 表达;表驱动 row 字段 `name string` 兜场景描述
57
+ - **Java / C#**:`<UnitName>_<Scenario>_<ExpectedBehavior>`
58
+ - **JS (mocha / Jest / Vitest)**:`describe("<unit>", () => { it("should <expected> when <scenario>") })`
59
+ - **Dart (flutter_test)**:`testWidgets('<unit> should <expected> when <scenario>', ...)`
60
+
61
+ **用**:测试代码命名一律遵守。test1 / testFoo / testCase 这种零信息名不接受。
62
+
63
+ **不用**:极短一次性 helper 测试(如临时调试)可放宽,但不要 commit。
64
+
65
+ **落地**:
66
+ - code review 阻塞:测试名读不出"测什么 / 什么情况 / 期望什么" → reject 重命名
67
+ - 长 → 拆分被测单元;不接受"名太长"作借口(短名意味着该测试在掩盖范围过广)
68
+
69
+ **例**:
70
+ ```
71
+ ✅ test_export_request_returns_signed_url_when_user_has_quota
72
+ ✅ test_export_request_returns_403_when_user_quota_exhausted
73
+ ✅ test_export_request_returns_429_when_rate_limit_exceeded
74
+ ❌ test_export_1 / test_export_basic / test_happy_path
75
+ ```
76
+
77
+ ---
78
+
79
+ ## 3. Test smells(测试异味)
80
+
81
+ **定义**(精选自 Meszaros 2007 及其衍生分类):测试代码的反模式。Meszaros 原书列约 18 项分 code/behavior/project 三类;下面是日常 review 最常碰到的子集(部分名字 / 阈值是团队启发,非原书字面):
82
+
83
+ | 异味 | 含义 | 后果 |
84
+ |---|---|---|
85
+ | **Fragile Test**(Meszaros) | 实现细节变动就挂 | 重构成本高 |
86
+ | **Change-Detector Test**(Fragile 的高频子类;名为团队启发) | 断言"预期会变的数据"的快照(目录/注册表项、版本号字面量、枚举计数、硬编码清单)而非行为 | 例行数据更新即挂 CI、零行为覆盖、浪费工时"修测试" |
87
+ | **Erratic Test** 含 Mystery Guest(Meszaros) | 隐含外部依赖 / 顺序敏感 / 时间敏感 | flaky |
88
+ | **Assertion Roulette / Eager Test**(Meszaros) | 一个测试塞多场景或多个独立断言 | 失败定位难、报错无意义 |
89
+ | **Slow Test**(Meszaros 项;阈值是**团队启发**:单 unit 测 > 100ms / 整 unit 套 > 30s 触警) | 反馈慢 → 开发者跳过 | 见下方"用"段中的层级豁免 |
90
+ | **Conditional Test Logic**(Meszaros) | 测试体内有 if/else/loop | 实际测的是什么不明 |
91
+ | **Mystery Guest**(Meszaros 子项) | 依赖外部文件/数据但未声明 | 不可复现 |
92
+
93
+ **用**:code review / 重构 / 排查 flaky test 时按这清单查。Slow Test 阈值只对**默认快速单测目标**(unit 层)严卡;integration / E2E / host-smoke / benchmark 测必有独立的更宽 budget,按 marker 分离(如 `@pytest.mark.integration` / Go `-short` 区分),不混入 unit 套时间预算。
94
+
95
+ **不用**:写新测试时不必预先记住名字 — 用 §1 §2 §7 等正面规则反过来就避开了大半。
96
+
97
+ **落地**:
98
+ - 测试矩阵 / CI 报告里发现 flaky → 先按 Sensitive Test 排查(时间/顺序/外部依赖)
99
+ - 一次 review 抓到 ≥ 3 处同类异味 → 列入技术债跟进,不只口头指出
100
+ - 自动检查工具:pytest `-x --tb=short` + flake-detector / pytest-randomly;Jest `--bail`;Go `-race -count=10`
101
+
102
+ **例**:
103
+ ```
104
+ Lazy Test(坏):
105
+ def test_export_flow():
106
+ r1 = service.request(...)
107
+ assert r1.ok
108
+ r2 = service.poll(r1.id)
109
+ assert r2.status == "done"
110
+ r3 = service.download(r1.id)
111
+ assert r3.content_length > 0
112
+
113
+ 拆成 3 个测试(好):
114
+ def test_request_returns_ok_when_input_valid(): ...
115
+ def test_poll_returns_done_when_request_completed(): ...
116
+ def test_download_returns_non_empty_content_when_request_done(): ...
117
+ ```
118
+
119
+ ```
120
+ Change-Detector(坏)—— 注册表一增/版本一升就挂,零行为覆盖:
121
+ assert "fahrenheit" in SUPPORTED_UNITS # 目录/注册表项快照
122
+ assert len(SUPPORTED_UNITS) == 7 # 枚举计数
123
+ assert CONFIG["schema_version"] == 4 # 版本号字面量
124
+
125
+ 改成不变式 / 契约(好)—— 注册表增长、版本升级仍成立:
126
+ assert "celsius" in SUPPORTED_UNITS # 仅当 celsius 是文档承诺的基准单位(契约锚点),见判据
127
+ assert all(u in CONVERSION_FACTORS for u in SUPPORTED_UNITS) # 每个单位都必须有换算因子(关系不变式)
128
+ assert CONFIG["schema_version"] == CURRENT_SCHEMA_VERSION # 迁移抵达当前版本,而非字面量
129
+ ```
130
+ 判据:读起来像"当前数据的快照"就删;读起来像"两份数据必须如何关联"的契约就留。
131
+ 区别于 Fragile Test —— Fragile 是实现细节变就挂,Change-Detector 是**本就预期会变的数据**变就挂;
132
+ PR 新增 provider/model/单位想加测试时,断言"关系不变式"(如每项都有换算因子),不要断言具体名字/计数。
133
+ **字面量锚点的取舍判据(防把有效契约/回归测试当快照删掉)**:断言某个字面量值合法 = 仅当该值本身就是被保证的行为——
134
+ 对外承诺/文档化的名字、不得静默回退的 wire/API 或 schema 迁移版本、安全 allow/denylist 项、合规枚举映射、或冻结的缺陷回归用例(a frozen defect-history regression case)。
135
+ 判定法:该值能追溯到**文档化的**产品/API/安全契约或历史缺陷(而非你刚从当前实现里读到的现状),且测试名点出该契约
136
+ (如 `test_celsius_is_documented_base_unit` / `test_v2_envelope_field_stays_stable`)→ 留;否则就是快照 → 改成关系不变式。上例 `"celsius"` 之所以合法,正是因为它是文档承诺的基准单位,不是因为它此刻恰好在注册表里。
137
+
138
+ ---
139
+
140
+ ## 4. Fixture 模式:Object Mother / Test Data Builder
141
+
142
+ **定义**:复杂测试对象的构造法。两种主流:
143
+
144
+ - **Object Mother**(Fowler、Meszaros):集中工厂方法 `aValidUser()` / `aBlockedUser()` / `aUserWithRole(role)`,按典型场景命名
145
+ - **Test Data Builder**(Pryce 2007):fluent builder `UserBuilder().withRole("admin").withQuota(0).build()`,组合灵活
146
+
147
+ **用**(按这个顺序判):
148
+ 1. **优先沿用 repo 已有 fixture 约定** — 哪个已铺开就跟哪个,避免双轨
149
+ 2. 新模块无现成约定时:场景枚举少(< 10)且业内说法稳定 → Object Mother;字段多 / 组合频繁 → Test Data Builder
150
+ 3. 两种可共存(named mother methods 内部用 builder 实现)
151
+
152
+ **不用**:单字段 primitive 测试(直接 inline 参数即可,不必 builder)。
153
+
154
+ **落地**:
155
+ - `test/helpers/<entity>_mother.py` 或 `test/helpers/<entity>_builder.py` — 共享于该模块所有测试
156
+ - builder 必有 sensible defaults — `Build().build()` 应能造一个合法 minimal 对象,免每个测试列全字段
157
+ - 不在 builder 里放业务逻辑(验证 / 派生字段);那是被测代码的事
158
+
159
+ **例**(Test Data Builder):
160
+ ```python
161
+ # helpers/user_builder.py
162
+ class UserBuilder:
163
+ def __init__(self):
164
+ self._role = "user"
165
+ self._quota = 100
166
+ self._verified = True
167
+ def with_role(self, role):
168
+ self._role = role; return self
169
+ def with_quota(self, q):
170
+ self._quota = q; return self
171
+ def build(self):
172
+ return User(role=self._role, quota=self._quota, verified=self._verified)
173
+
174
+ # 测试侧
175
+ def test_admin_can_export_when_quota_zero():
176
+ user = UserBuilder().with_role("admin").with_quota(0).build()
177
+ assert export_service.allowed(user)
178
+ ```
179
+
180
+ ---
181
+
182
+ ## 5. 行为 vs 状态验证(Behavior vs State)
183
+
184
+ **定义**(Fowler, "Mocks Aren't Stubs", 2004; revised 2007):两种 oracle 选择:
185
+
186
+ - **状态验证**:执行后查对象 / 数据库 / 返回值的状态。古典 (Detroit / classical) school 偏好
187
+ - **行为验证**:用 mock 检查"被测代码以正确的方式调用了协作者"。Mockist (London) school 偏好
188
+
189
+ **用**:
190
+ - 状态验证:纯函数 / 单一聚合内部、可观察的输出明确
191
+ - 行为验证:跨边界协作(消息发布、外部 API 调用、metric/log emit)— 状态不可见,必须验证调用本身
192
+
193
+ **不用**:
194
+ - 不要为内部实现细节用行为验证("调了 helper 几次")— 会成为 Fragile Test
195
+ - 不要对纯查询用行为验证("调了 DB 一次")— 实现细节,重构就挂
196
+
197
+ **落地**:
198
+ - 默认状态验证;只在 cross-boundary 副作用(外部 IO / event emit / metric)时上 mock
199
+ - 替身放在**昂贵、非确定、不安全/不可逆、需特权、或不可用的边界**(模型适配器 / 网络 / 时钟 / 设备 / 部署·迁移·支付执行器 / 删除类文件操作);单元隔离与确定性故障注入(拒绝、回滚、部分失败)也可用替身;边界内其余下游用真实现——**且只在隔离的、测试自有的资源上**运行。给正式组件手搓的替身只证明"桥接把字节搬过去了",证明不了该组件按断言行为——集成/桥接类测试用脚本化的边界替身 + 真工具/真执行器(发布入口 smoke 仍按 e2e 参考走真实路径)
200
+ - 行为验证必须 assert 业务可观察的 interaction("以正确参数调了一次"),不是"调了某 helper"
201
+ - 一个测试只用一种风格 — 混用难读
202
+
203
+ **例**:
204
+ ```
205
+ 状态验证(好):
206
+ result = signed_url_generator.generate(file_id, ttl=300)
207
+ assert result.expires_at == now() + 300
208
+
209
+ 行为验证(好,因为跨边界):
210
+ audit_log_mock = Mock()
211
+ service.generate(file_id, ttl=300, audit_log=audit_log_mock)
212
+ audit_log_mock.emit.assert_called_once_with(
213
+ event="signed_url_generated", file_id=file_id, ttl=300)
214
+
215
+ 行为验证(坏,测了实现):
216
+ service.generate(file_id, ttl=300)
217
+ internal_helper_mock.parse.assert_called_once() # 重构改 parse 就挂
218
+ ```
219
+
220
+ ---
221
+
222
+ ## 6. Coverage 解读:floor 非 goal
223
+
224
+ **定义**(Brian Marick 1999 / 业内共识):代码覆盖率是 floor 检测器("哪行没跑过"),不是质量 goal("这行测得好")。常见覆盖类型:
225
+
226
+ - **Line coverage**:行级别,最低门
227
+ - **Branch coverage**:条件分支,比 line 强
228
+ - **MC/DC**(Modified Condition/Decision Coverage):每个 boolean 子条件独立影响过决策。**DO-178C 航空 / 医疗 / 汽车 functional safety 才用**;普通业务代码无监管要求时不必上。
229
+ - **Mutation coverage**(见 source-to-case-workflows §C.1):才是真"测得好"的 proxy
230
+
231
+ **用**:CI 设 floor(如 line 60% / branch 50%)防覆盖崩塌;critical-path 模块定专项目标(line 90%)。
232
+
233
+ **不用**:
234
+ - **不用 100% 作 KPI** — 强行凑 100% 会产生 lazy assertions(`assert result is not None` 这种)
235
+ - **不把整库平均覆盖率作 PR gate**(个别 PR 不应承担整体覆盖率波动)
236
+
237
+ **落地**:
238
+ - CI floor:仓库整体 line ≥ X%
239
+ - **PR 覆盖率不可下降原则有例外**:删冗余测试 / 移除已废弃代码 / 合并重复 fixture 等清理类 PR 覆盖率下降允许,但 PR 描述必须给 **preservation proof row**:`deleted: <test path/name>; preserved scenario: <TC-ID or behavior statement>; replacement: <test path or "still covered by <existing test>">; oracle parity: <断言形状等价说明>; evidence: <command output / report ref>`。没 row = 当作场景失守 = 阻挡。Reviewer 用 row 验证:跑 replacement test 应能 catch 删掉的 mutant;equivalent assertion 不是"两个都跑过",是"等价业务断言"
240
+ - critical-path 模块单独定 ratchet(如 `<critical-module> line ≥ 90% 且 branch ≥ 80%`)— 模块名按 repo 实际填
241
+ - 用 mutation testing 周期性检查(见 source-to-case-workflows §C.1)— 比追 100% line 更省力且更真实
242
+ - coverage 报告 + uncovered lines 进 PR comment(不要靠开发者主动看)
243
+ - 覆盖门下的 uncovered line **先当删除候选、再当补测候选**:门在正确地标记死代码/不可达分支时,补一个测试只是把死代码钉死;行覆盖是必要不充分——证明行跑过了,不证明功能按交付形态工作
244
+
245
+ ---
246
+
247
+ ## 7. Test isolation(测试隔离)
248
+
249
+ **定义**:每个测试不依赖其他测试的执行 / 状态 / 顺序。任意子集任意顺序跑结果一致。
250
+
251
+ **用**:所有测试默认应满足。
252
+
253
+ **不用**:性能基准 / 长生命周期场景 / runtime smoke 等可豁免,但必须 **marker + reason + owner + review_at(失效条件 / 重审时间)4 字段全齐**;裸标 serial 无 owner 不接受 — 那是把"顺序依赖"藏起来。各栈编码(4 字段在哪存):
254
+
255
+ - **Python (pytest)**:自定义 marker kwargs — `@pytest.mark.serial(reason="...", owner="alice", review_at="2026-Q3")`
256
+ - **Go**:serial **必须显式标记** —— 不是"缺 `t.Parallel()`" 即 serial(正常隔离测试也常省略 `t.Parallel()`,那不是 serial exception)。serial 测试必须在函数上方有 `// serial: reason=... owner=... review_at=...` 注释,**或** 注册到 `test/serial-tests.yaml` 中心 registry。CI lint 强制:无 marker / 无 registry entry = 不视作 serial(当作普通可并行测试,并行不安全是 bug,不是免标的理由)
257
+ - **Jest / Vitest**:Vitest `describe.serial(...)` / Jest `--runInBand`;4 字段在 describe 块上方 JSDoc 注释;或 registry
258
+ - **JUnit 5**:`@Execution(SAME_THREAD)` + `@Tag("serial")`;4 字段在测试类 Javadoc
259
+ - **Flutter / Dart**:tests 顺序串行执行是默认;4 字段在 test 描述上方 `///` 注释;并必有 `// owner: ...` 行
260
+
261
+ **通用 fallback**:上面未列出的栈(如 Bun test / Playwright / Cypress / Android instrumented / iOS UI test 等)或 native marker 不支持 4 字段时,所有 serial 测的 metadata 集中维护在 `test/serial-tests.yaml`(key = 测试 path/name;value = `{reason, owner, review_at}`),CI 加 lint:所有 marker 标 serial 的测试都必须在 registry 出现。
262
+
263
+ **落地**(按"违反隔离"的常见来源逐项杜绝):
264
+ - **全局可变状态**:module-level 缓存 / singleton / 进程级 `ContextVar` — 每测前 reset,或测试用 fixture 隔离实例。当 reset 易漏、状态分散难穷举、或框架本身留有进程级残留时,升级到**进程级隔离**:每个测试在新进程里跑(`spawn` 而非 `fork`,跨 Linux/macOS/Windows 一致),module 级 dict/set/`ContextVar` 物理上无法跨测泄漏;配合**每测超时**把 hang 变成可报告的失败而非挂死。代价/边界:每测进程启动开销(用并行 worker 摊薄);fixture/参数需可跨进程序列化(spawn 会拒绝不可 pickle 的对象);每测超时阈值要给慢但合法的测留余量,别把正常慢测当 hang 杀掉。**只用于消除跨测污染**——若套件的被测对象本身就是进程生命周期 / import 顺序 / 连接复用 / 并发清理,进程隔离会把这些真 bug 藏掉,那类套件不要上。不是默认全开。
265
+ - **共享 DB / 文件**:每测起独立 schema / 临时目录;用 transaction rollback / `tmp_path` (pytest)
266
+ - **顺序依赖**:用 `pytest-randomly` / `go test -shuffle on` / Jest `--randomize` 强制随机化暴露
267
+ - **并发安全**:能并行就并行(`pytest -n auto` / `go test -parallel N`);测试本身不该用 sleep 解决竞态
268
+ - **时间依赖**:**注入 / 集中 clock**(依赖注入 Clock 接口 / 用 `freezegun` / `time.frozenTime()`),**确定性测试里 freeze**;**真实时间只在显式标记的 benchmark / runtime-deadline / signature-window / replay 测试里允许**,且必须有合理 bound 不靠"假设运行够快"
269
+
270
+ **例**:
271
+ ```python
272
+ # 坏:依赖 module 状态
273
+ counter = 0
274
+ def test_a():
275
+ global counter
276
+ counter += 1
277
+ assert counter == 1
278
+ def test_b():
279
+ global counter
280
+ counter += 1
281
+ assert counter == 2 # 顺序依赖 + 全局态
282
+
283
+ # 好:每测独立
284
+ def test_a():
285
+ c = Counter()
286
+ c.increment()
287
+ assert c.value == 1
288
+ def test_b():
289
+ c = Counter()
290
+ c.increment()
291
+ assert c.value == 1
292
+ ```
293
+
294
+ ---
295
+
296
+ ## 8. 参数化 / 表驱动测试
297
+
298
+ **定义**:同一 logic 不同输入 → 用表 + 循环展开成 N 个 case,不写 N 个测试函数。
299
+
300
+ - **Go**:社区主流(go.dev/wiki/TableDrivenTests)— `t.Run(name, func() {...})` 内层每 row 独立 fail
301
+ - **Python**:pytest `@pytest.mark.parametrize`
302
+ - **JS**:Jest / Vitest `it.each([...])`
303
+ - **Java**:JUnit 5 `@ParameterizedTest`
304
+
305
+ **用**:相同 setup + 相同断言形状、只换输入/期望的场景(边界值 / 枚举 / 等价类 — 见 `test-artifact-management/references/classical-test-design-techniques.md` §1 §2)。
306
+
307
+ **不用**:每 row setup 截然不同 / 断言形状变 → 拆独立测试更清楚。
308
+
309
+ **落地**:
310
+ - 每 row 必有 name 字段(Go `name string`, pytest `ids=[...]`)— 失败时报告读得懂哪 row 错
311
+ - 不在 row 数据里塞 logic(`{want: computeExpected(input)}` ← Bad)— 用字面 expected
312
+ - row 数量参考:3-20 适中;> 20 考虑拆表或上 property-based(见 source-to-case-workflows §C.2)
313
+
314
+ **例**(Go table-driven):
315
+ ```go
316
+ func TestExportTokenTTL(t *testing.T) {
317
+ cases := []struct {
318
+ name string
319
+ plan string
320
+ wantTTL time.Duration
321
+ }{
322
+ {"free plan: 5 minutes", "free", 5 * time.Minute},
323
+ {"pro plan: 1 hour", "pro", time.Hour},
324
+ {"enterprise: 24 hours", "enterprise", 24 * time.Hour},
325
+ }
326
+ for _, tc := range cases {
327
+ t.Run(tc.name, func(t *testing.T) {
328
+ got := computeTTL(tc.plan)
329
+ if got != tc.wantTTL {
330
+ t.Errorf("plan=%s: got %v, want %v", tc.plan, got, tc.wantTTL)
331
+ }
332
+ })
333
+ }
334
+ }
335
+ ```
336
+
337
+ ---
338
+
339
+ ## 9. 跨栈移植测试:移植对抗输入本身
340
+
341
+ 把一个 stack 的测试移植/镜像到兄弟 stack(Go adapter 测试搬到 Python adapter,或反向)时,**移植对抗输入本身**,不只移植断言形状:
342
+
343
+ - 要带过去的是**对抗语义类别**——大小写混写/别名化的 header / metadata key、畸形或非法编码输入、伪造的 trusted-only 字段、边界值——**经目标 stack 真实 ingress 边界注入**,而不是把源栈的原始字节照抄进来。原始非 UTF-8 字节只在目标生产链路确实接收原始字节时才照搬;否则移植对应的语义类别(同样攻击意图、用目标栈解码/入口能表达的形式),别测出一条生产不可能到达的假路径。
344
+ - 对抗 fixture 一律用**合成凭据 + scratch/synthetic 目标**,不带真实 secret、不打真实/生产端点(同主 SKILL 的 scratch-only matrix 纪律)——"为了更真实"用真凭据移植伪造 trusted 头,会泄漏 token、在真系统留审计事件。但"合成"不等于 **auth-bypass 打桩**:合成凭据要**结构合法、经目标栈真实校验/解析路径**(用测试签发者/密钥),否则伪造 trusted 字段的测试根本没过真 verifier、等于没测;无法安全构造就记 `safe-unavailable` + 残余风险。
345
+ - 在**每个**文档化 ingress 边界都跑,不只公网边缘:公网网关 strip 掉攻击输入,不代表内部 trusted 调用方不能伪造同样的字段——先画 trust-boundary map,对外部可达与内部 trusted 边界各跑一遍对抗 fixture,差异记 intentional-divergence。
346
+ - 只搬断言、把输入替换成干净/规范值的移植会**静默丢掉原测试的覆盖**:新 stack 上照样绿,但它本来要守的敌对路径根本没测到(假绿)。逐条对账 **input fixtures** 与源测试、不只对账期望输出;每处差异要么记 intentional-divergence,要么是 ported-away gap,**绝不静默省略**。
347
+ - **权威是文档化的契约、不是源测试的行为**:源栈测的可能是一个 legacy bug,照搬会把 bug 移植进兄弟栈、破坏更安全的规范契约;发现源行为不安全时记 `legacy-bug-closed` divergence,别静默继承。
348
+ - 用 mutation 证明移植后的测试真有牙口,但 mutation 打在**实现/oracle**上、不是打在对抗输入本身:**破坏新 stack 的防御实现**(去掉 strip/校验、放过伪造字段)后移植测试应转 RED;或临时移除/规范化对抗 fixture 看覆盖是否掉——mutation 一律在 scratch/临时进行、跑完 **restore + 核 clean diff**,别把削弱后的 fixture 提交进去永久丢掉防御。注意正确实现下喂对抗输入测试应当 **PASS**(它断言系统正确处理/拒绝了该输入),别把"喂对抗输入就该失败"写进断言(呼应 §182 行为验证与主 SKILL 的 mutation 要求)。
349
+
350
+ 这是主 skill "port/mirror enforcement guard 逐条 parity" 规则在**跨栈测试代码**上的具体化(那条针对 enforcement guard;本条针对任意跨栈测试的输入保真)。
351
+
352
+ ---
353
+
354
+ ## 10. 行为纠正时的断言清扫
355
+
356
+ 当变更**纠正**一个行为(compliance / contract / privacy / spec-conformance fix)时,入口规则要求找出钉住旧行为的断言、逐层清扫、同批改写为纠正后的契约。本节承载机制解释:
357
+
358
+ - **为什么旧行为必然被钉住**:A defect that shipped normally shipped with tests, and those tests encode it as intended —— 一个断言写"this response must carry X",就是一份"X 是正确的"的承重声明;行为纠正必然把它打红。那个红是规则在 firing,不是回归——改写后的断言形态才是阻止旧行为回来的东西。
359
+ - **层枚举从变更自身的可达面走**:unit、contract、integration、host/E2E smoke、fixture 与 golden 文件。the assertion that pins the old behavior is often in the layer you did not plan to touch —— 于是替你发现它的是 CI,不是你。
360
+
361
+ ---
362
+
363
+ ## 快速选用决策表
364
+
365
+ | 写代码时遇到 | 用 |
366
+ |---|---|
367
+ | 单个测试结构混乱 | §1 AAA / GWT |
368
+ | 测试名表达不清 | §2 命名约定 |
369
+ | 测试 flaky 或重构成本高 | §3 排查 test smells |
370
+ | 复杂对象构造重复 | §4 Object Mother / Test Data Builder |
371
+ | 决定用 mock 还是查状态 | §5 行为 vs 状态验证 |
372
+ | Coverage 数字焦虑 | §6 floor 非 goal |
373
+ | 跑顺序变化结果不同 | §7 隔离 |
374
+ | 相同 logic N 个输入 | §8 表驱动 |
375
+ | 把测试搬到另一个语言/stack | §9 移植对抗输入本身 |
376
+ | 行为修复后旧断言变红 | §10 行为纠正时的断言清扫 |
377
+
378
+ ---
379
+
380
+ ## 故意不重复(在别处已有)
381
+
382
+ | 模式 | 已在何处 |
383
+ |---|---|
384
+ | TDD red-green-refactor 周期 | `superpowers/test-driven-development` skill |
385
+ | Mock 分类(dummy/stub/spy/mock/fake) | `testing-strategy` SKILL.md 主体(test double 段)|
386
+ | Property-based testing | `test-artifact-management/references/source-to-case-workflows.md` §C.2 |
387
+ | Mutation testing | `test-artifact-management/references/source-to-case-workflows.md` §C.1 |
388
+ | 测试层选择(unit/integration/E2E) | `testing-strategy` SKILL.md 主体 |
389
+ | Outside-in vs Inside-out TDD(设计哲学) | 选 GOOS Freeman & Pryce 2009 自行学;本 ref 不替代书 |
390
+ | Snapshot testing | 工具特定(Jest `toMatchSnapshot()` / `vitest-image-snapshot`),归各 stack-dev skill 实现段 |
391
+ | Golden file / Approval tests | 已在各 stack-dev skill release-ops / feature-playbook ref 里覆盖(生成产物快照、API 响应快照、报告快照)|
392
+ | Contract tests | 已在 `test-artifact-management/references/source-to-case-workflows.md` §D(schemathesis / Pact / Dredd / Prism)覆盖 |
@@ -0,0 +1,39 @@
1
+ # Test Data And Determinism
2
+
3
+ Use this when tests need realistic data or must be repeatable run to run.
4
+
5
+ ## Test Data Strategy
6
+
7
+ - Build data with named factories or builders that default to valid and override per scenario.
8
+ - Derive test data from intent, such as "expired token" or "over limit", not from production identifiers.
9
+ - If production-shaped data is required, anonymize structurally: replace identifiers, redact PII/secrets, preserve shape and edge distribution.
10
+ - Keep one canonical minimal fixture per scenario; do not grow a shared mega-fixture.
11
+ - Commit only data that is safe, readable, and needed for the assertion.
12
+
13
+ ## Determinism Controls
14
+
15
+ Make these injectable, pinned, or normalized in tests:
16
+
17
+ - Clock/time: use a fake or fixed clock; avoid wall-clock `now()` assertions.
18
+ - Randomness: seed RNG or assert on invariants when output is sampled.
19
+ - IDs/UUIDs: inject a generator or assert shape instead of exact value.
20
+ - Ordering: sort or compare as sets when order is not contractual.
21
+ - Locale, timezone, currency, and number/date formatting: pin explicitly.
22
+ - Concurrency: use synchronization, deterministic schedulers, channels, latches, or condition polling instead of sleeps.
23
+ - Network, DNS, and filesystem: isolate by default; keep them out of fast tests unless the behavior itself is the boundary.
24
+ - Generated integrity manifests verified by regenerate-and-diff (a committed `sha256` list, a lockfile-like sorted artifact, a content-digest drift gate): the **generating sort must be byte-stable, not locale-collated** — use `LC_ALL=C sort` (and a fixed field/key order) so the manifest written by `gen` on the author's machine matches the `verify` regeneration on a differently-localed CI runner. A locale-dependent sort makes the gate false-positive ("DRIFT") on identical content across machines. This is the artifact-generation analogue of pinning `TZ`/`LANG` for test runs: pin the collation wherever a sort feeds a comparison or an integrity check, not only in fixtures.
25
+
26
+ ## Property-Based And Fuzz Testing
27
+
28
+ - Use property-based tests for parsers, serializers, encoders, normalizers, math, and round-trip invariants.
29
+ - Use fuzzing for untrusted input boundaries such as public payloads, protocol decoders, and file parsers.
30
+ - Pin or record the seed and persist a failing case as a named regression fixture.
31
+ - Property tests complement named scenario tests; they do not replace high-risk examples.
32
+ - **Per-stack mature library baseline**: Python → **Hypothesis** (`hypothesis.readthedocs.io`, strategy-based generators, automatic shrinking, stateful via `RuleBasedStateMachine`); JavaScript/TypeScript → **fast-check** (`fast-check.dev`, integrates with Vitest/Jest/Mocha/`node:test`); Java/Kotlin → **jqwik** (`jqwik.net`); Go → built-in `testing.F` fuzz target (Go 1.18+ stdlib, coverage-guided, persists failing inputs to `testdata/fuzz/<name>/`); Rust → **proptest** + cargo-fuzz. **Decision rule for "when to actually reach for it"**: the cost of a property-based test is teaching the team to read shrunk counterexamples and to write generators that explore the input space; the value is finding edge cases the example-based suite missed. Pull in property-based when: (a) the function under test has an algebraic invariant (round-trip `decode(encode(x)) == x`, idempotence `f(f(x)) == f(x)`, commutativity, associativity, ordering preservation); (b) the input space is large and bug history shows edge cases the team keeps re-discovering by hand; (c) the function is high-risk (parser / encoder / auth / billing / quota math). Skip property-based when the function is straight-line business logic with few branches and named examples already cover the contract — the maintenance overhead doesn't pay back. **High-risk domains override the skip default**: for auth (token validation, signature verification, scope resolution), billing / money / quota math, parsers / serializers / encoders / decoders, and any function where wrong output silently corrupts downstream state, default to writing a property-based test alongside named examples — the team cannot enumerate every edge case the input grammar admits, and these are precisely the domains where the bug the team didn't think of becomes the production incident. Treat "named examples cover" as a self-audit prompt ("can I write down the equivalence classes I think I covered?") not as a license to skip. Per-stack implementation lives in the owning stack-dev skill; this skill owns the use-or-don't-use decision and the algebraic-invariant trigger.
33
+
34
+ ## Avoid
35
+
36
+ - Time, locale, or timezone-dependent assertions without pinning.
37
+ - Tests that pass only on first run, in one timezone, or in serial order.
38
+ - Snapshotting nondeterministic output without normalization.
39
+ - Raw production dumps, secrets, or private user data.
@@ -0,0 +1,92 @@
1
+ # Test Topology And Commands
2
+
3
+ Use this before choosing or running tests in an unfamiliar repository.
4
+
5
+ ## Discovery Order
6
+
7
+ Read local project guidance before inventing commands:
8
+
9
+ - Agent/project instructions: `AGENTS.md`, `CLAUDE.md`, `README`, `CONTRIBUTING`, and local agent skill/instruction directories when present.
10
+ - Build and test metadata: `go.mod`, `Makefile`, `package.json`, `pyproject.toml`, `pytest.ini`, `tox.ini`, `vitest.config.*`, `playwright.config.*`.
11
+ - Automation wrappers: `scripts/run_tests.*`, `scripts/dev.*`, `scripts/check.*`, `magefile.go`, `Taskfile.yml`.
12
+ - CI truth: `.github/workflows`, `.gitlab-ci.yml`, buildkite/circle config, release scripts.
13
+
14
+ Prefer a documented wrapper when present. Wrapper scripts often set env files, codegen, service ports, coverage options, timeout behavior, xdist/parallelism, fixture paths, or CI parity checks that raw runners miss.
15
+
16
+ ## Test-environment hermeticity (local ↔ CI parity)
17
+
18
+ "Works on my machine, fails in CI" (and the reverse) has several causes — OS/runtime/browser versions, filesystem case-sensitivity, CPU/memory, network/service availability, dependency caches — but a very common and cheap-to-eliminate one is the test reading **ambient environment** that differs between the two machines. The default fast test target must be **hermetic** on that axis — its result must not depend on the developer's machine env. Neutralize the recurring local-vs-CI drift axes:
19
+
20
+ - **Ambient credentials / API-key env vars** — *unset* them for the default fast target, don't just "not require" them. A developer's shell often has real `*_API_KEY` / `*_TOKEN` / provider creds exported; with them present a test can silently hit a live service, auto-detect a provider, or take a different code path — passing locally and failing in CI where they're absent (or the reverse). Scope the unset to the **hermetic fast-test runtime only**, and target real credential vars — don't blindly nuke every glob match (package-registry tokens, CI job tokens, fixture-only fake tokens). Tests that legitimately need creds are explicitly marked, isolated, and run in a separate live/credentialed gate (or seeded with fake/local creds), never silently broken by the fast gate. This is distinct from the separate rule that the fast gate must not *require* live creds; do both.
21
+ - **HOME / state / config dir** — redirect the app/user *state* dirs to a temp location per run/test so the suite reads a clean default config, never the developer's real app-home / auth file, and never writes the real user state dir. But don't hand every spawned tool a blind-empty `HOME`: tools that need real or seeded config (git identity, CA bundles, language/package caches, browser profiles) will throw false failures — use a minimal synthetic HOME with the required tool config seeded, not an empty one.
22
+ - **Timezone and locale** — pin (e.g. `TZ=UTC`, `LANG=C.UTF-8`) at the run-environment level for the default deterministic gate; this is the environment-level complement to pinning them at the data/fixture level (see `test-data-and-determinism.md`). Pinning is for determinism, not coverage: when behavior is timezone/DST/locale-visible (dates, billing periods, schedules, "today", number/date formatting), a UTC-only run does NOT prove it — add targeted non-UTC / DST-boundary / non-default-locale cases so the pin doesn't hide a real zone/locale bug.
23
+ - **Parallelism / worker count** — fix it or make it irrelevant via per-test isolation (see `test-code-authoring-patterns.md` §7). A suite that passes at one worker count but flakes at another usually has a hidden cross-test dependency — investigate that first rather than pinning workers to hide it; it can occasionally be genuine resource contention (DB pool size, rate limits, CI CPU/memory), which is a capacity fix, not a correctness one. Pinning workers is to make the gate *reproducible*, not to serialize-until-green; if the product itself has suspected concurrency behavior, keep a separate randomized/parallel stress check so pinning the gate doesn't bury a real product concurrency bug.
24
+
25
+ Enforce hermeticity in **two layers, belt-and-suspenders** — the wrapper alone is not enough because it is easy to bypass (an IDE "run test" button, a raw `pytest` / `go test`, a teammate who does not know the wrapper):
26
+ - The **wrapper** (`scripts/run_tests.*`) sets the hermetic env and matches CI exactly; discover and use it, and keep it in lockstep with the CI config — CI is the source of truth, so if they drift the wrapper is wrong.
27
+ - An **autouse / always-on fixture** (pytest `conftest.py` autouse fixture, Go `TestMain`, jest `setupFiles`) re-applies the same neutralization so an invocation that skips the wrapper is still hermetic *for ordinary test-body and setup reads*. Caveat: these hooks run after interpreter/package start, so env read at **import / collection / package-`init` / module-level-variable time** is not caught by them — that earliest layer still needs process/runner-level env setup (the wrapper, a CI env block, or a launcher that sets the env before the process starts). So: wrapper = CI parity + the import/init-time layer; autouse hook = the catch-all for everything from setup onward; you generally need both, not either alone.
28
+
29
+ When there is no wrapper yet, making the default target hermetic against these axes (and adding the autouse hook) is part of the test work, not a separate nicety.
30
+
31
+ ## Inventory Hygiene
32
+
33
+ When scanning a repository, exclude dependency and generated-test noise unless the task is about those artifacts:
34
+
35
+ - JavaScript dependencies and outputs: `node_modules`, `dist`, `build`, coverage outputs.
36
+ - Python environments and vendored packages: `.venv`, `venv`, `site-packages`, `third_party`, vendored SDK snapshots.
37
+ - Generated clients and codegen snapshots unless their drift or compatibility is the test subject.
38
+ - Archived worktrees, temporary harnesses, and copied legacy trees unless the active workflow uses them.
39
+
40
+ Do not count a discovered test file as project coverage until you know which command runs it, whether it is in CI, whether it needs live infrastructure, and what assertion it makes.
41
+
42
+ ## Standard Test Layout
43
+
44
+ Use the repository's existing layout first. When creating a new layout, keep names conventional:
45
+
46
+ - `tests/unit`: fast isolated logic.
47
+ - `tests/contracts` or `tests/contract`: API, generated client/server, schema, compatibility, and adapter contracts.
48
+ - `tests/integration`: DB, Redis, MQ, filesystem/object storage, service-client, transaction, migration, and local container coverage.
49
+ - `tests/e2e`: browser, cross-service, release smoke, and real user/caller flows.
50
+ - `tests/scenarios` or `tests/acceptance`: optional scenario matrices, acceptance flows, or thin orchestration specs when the repo already separates them. Keep assertions in the owning unit/contract/integration/E2E layer when possible instead of building a second test hierarchy.
51
+ - `tests/architecture`: dependency boundary, forbidden import, module layering, generated code cleanliness, and schema drift checks.
52
+ - `tests/fixtures`: minimal scenario fixtures, builders, and golden files.
53
+
54
+ Do not create a parallel convention when the repo already has a clear one.
55
+
56
+ ## Command Tiers
57
+
58
+ Classify commands before running them:
59
+
60
+ - Fast default: format, compile/typecheck, lint/static checks, codegen-clean check, unit tests.
61
+ - Focused verification: changed package/module tests plus a directly related contract/integration test.
62
+ - Opt-in integration: marker/tag/env-gated tests requiring local containers or provisioned services.
63
+ - Scenario/acceptance gate: selected risk matrix proving primary, negative, permission, recovery, and regression scenarios at the cheapest sufficient layer.
64
+ - E2E/release smoke: browser/API/device real flows in an isolated environment.
65
+ - Long gate: compatibility matrix, migration dry-run, load/replay, visual regression, or full-suite release checks.
66
+
67
+ If the repo separates markers such as `unit`, `integration`, `contract`, `slow`, or `e2e`, preserve that split. Do not move expensive tests into the default PR path unless the local CI contract already expects it.
68
+
69
+ When existing commands use richer labels such as `contract_fake`, `contract_mysql`, `api`, `e2e_smoke`, `failure_mode`, `drill`, `shadow`, `smoke`, or `replay`, preserve the local meaning instead of flattening everything into unit/integration/E2E. Map them to the scenario matrix and CI gate they actually serve.
70
+
71
+ ## Runner Choice Baseline (2025-2026)
72
+
73
+ - **`pytest-asyncio` mode choice is a deliberate decision, not a default to leave unset**. Per the project docs at `pytest-asyncio.readthedocs.io`: when no `asyncio_mode` is configured, the mode defaults to `strict`, which means pytest-asyncio runs ONLY tests carrying the `@pytest.mark.asyncio` marker AND fixtures decorated with `@pytest_asyncio.fixture` — async tests/fixtures without those markers silently get skipped or treated as sync. **`auto` mode** (configured via `asyncio_mode = auto` in `pyproject.toml` / `pytest.ini` / `setup.cfg`) auto-marks every async test and takes ownership of every async fixture; this is the recommended setting for projects using only asyncio. **Choose `strict`** when the codebase mixes async libraries (asyncio + trio + anyio) or interoperates with other async test plugins; the marker discipline is the boundary that keeps them from fighting. **Pre-flip audit before flipping a strict-mode project to `auto`**: grep the repo for `import trio` / `import anyio` / `@pytest.fixture` on async functions / `pytest-trio` / `anyio.pytest_plugin` references. Auto mode takes ownership of every async fixture regardless of which library wrote it; flipping without an audit can silently break trio fixtures (auto-marks them as asyncio, runs them in the asyncio event loop, fails or hangs). Stay on strict whenever any async-library coexistence is even possible — the per-test marker cost is small compared to the silent-coexistence failure. Routing the runtime-asyncio mechanic to Python-specific implementation lives in `python-service-dev/references/testing-and-quality-patterns.md`; this skill owns the strict-vs-auto policy choice at portfolio level.
74
+ - **`node:test` (Node.js stdlib, stable since Node 20 LTS) is the zero-dep test-runner option for libraries and scripts** that don't need Jest/Vitest's rich-mock / snapshot ecosystem; provides built-in coverage via `--experimental-test-coverage` (the flag remained experimental through Node 22.x at time of writing — verify the exact flag name in the running Node version's `nodejs.org/api/test.html` before pinning CI). **`bun test`** is the analogous runner for Bun-based projects (Jest-compat API, no separate config). Per portfolio: pick ONE primary test runner across services on the same stack (Vitest for most JS/TS web/node projects, Jest where the legacy snapshot ecosystem is load-bearing, `node:test` or `bun test` for small libraries or runtime-native projects); mixing 3-4 runners across a monorepo multiplies CI setup, config drift, and shared-utility coverage gaps. The choice is a portfolio-level architecture decision recorded in the platform docs, not a per-team free choice. **Monorepo with mixed legacy/new runners (Jest-legacy app + Vitest-new app sharing a utility package)** is the recurring failure shape: the shared util may pass tests in caller-A's Jest suite while breaking in caller-B's Vitest suite (subtle API differences in mock injection, `import.meta` handling, module-resolution), and CI may not catch it because the shared util has no test suite of its own. Mitigation: shared utility packages MUST run their own test suite under each runner that production code consumes them with (a `npm test:jest` + `npm test:vitest` matrix on the shared package), OR publish a one-runner contract and migrate stragglers; do not accept "tests pass in caller, no tests on the utility itself" as the steady state.
75
+
76
+ ## Evidence Format
77
+
78
+ When reporting verification, include:
79
+
80
+ - command;
81
+ - scope;
82
+ - result;
83
+ - skipped or unavailable suites;
84
+ - residual risk.
85
+
86
+ Example:
87
+
88
+ | Command | Scope | Result | Notes |
89
+ | --- | --- | --- | --- |
90
+ | `scripts/run_tests.sh unit` | fast unit gate | pass | repo wrapper used |
91
+ | `pytest -m integration tests/contracts` | API and DB contracts | pass | local containers required |
92
+ | `npm run e2e:smoke` | release browser smoke | skipped | browser credentials unavailable |
@@ -0,0 +1,46 @@
1
+ # Unit Testing
2
+
3
+ Use this when the behavior can be proven without live infrastructure.
4
+
5
+ ## What Belongs Here
6
+
7
+ - Domain rules and invariants.
8
+ - Validation and permission decisions.
9
+ - DTO/protobuf/Pydantic/request-response mapping.
10
+ - Error wrapping and canonical error mapping.
11
+ - Config parsing and defaults.
12
+ - Retry/fallback decision logic.
13
+ - Cache key, Redis key, idempotency key, and lock value builders.
14
+ - State-machine transition rules.
15
+ - Small concurrency units with cancellation or bounded workers.
16
+
17
+ ## Frontend Component Tests
18
+
19
+ - Render behavior for components, hooks, forms, stores, and view-model logic.
20
+ - Props/state transitions, validation messages, empty/loading/error states, permission-gated controls, and emitted events.
21
+ - Accessibility roles, labels, keyboard behavior, focus transitions, and disabled/aria states when they are part of the component contract.
22
+ - Keep browser-only routing, uploads, responsive layout, and cross-page flows in E2E unless a component test can prove the behavior directly.
23
+
24
+ ## Patterns
25
+
26
+ - Write the test skeleton around the risk being protected: name the scenario, expected behavior, and why it matters.
27
+ - Use Arrange/Act/Assert or Given/When/Then structure so setup, behavior, and assertion stay readable.
28
+ - Prefer table-driven tests for input/output matrices.
29
+ - Test negative paths explicitly: missing fields, malformed input, forbidden scope, duplicate idempotency key, timeout, and canceled context.
30
+ - Use small handwritten fakes for dependency behavior.
31
+ - Keep fixtures minimal and named by scenario.
32
+ - Assert behavior, not logs or private function calls.
33
+ - Test request deadlines, cancellation, or context propagation when the stack exposes them.
34
+ - For bug fixes and visible behavior changes, make the focused unit or contract test fail before changing implementation when feasible.
35
+
36
+ ## Avoid
37
+
38
+ - Live DB/Redis/MQ/network in unit tests.
39
+ - Broad golden snapshots for unordered data.
40
+ - Sleeping to wait for async/concurrent work; use fake clocks, condition polling, task joins, channels, or explicit synchronization.
41
+ - Monkey patching when a small interface boundary is practical.
42
+ - Large production payload dumps as fixtures.
43
+
44
+ ## Completion Evidence
45
+
46
+ Report the focused command and outcome, such as changed-package tests, typecheck/compile, or specific unit test names. If unit coverage is intentionally omitted, state why the behavior is only provable at integration/E2E level.