@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,956 @@
1
+ import { copyFileSync, existsSync, lstatSync, mkdirSync, readFileSync, readdirSync, renameSync, rmSync, rmdirSync, } from "node:fs";
2
+ import { dirname, join, relative, resolve, sep } from "node:path";
3
+ import { acquireLock, assertSafeRoot, atomicJson, canonicalAlias, contained, copyRegularTree, durableRename, durableUnlink, verifyTree, } from "./fs-safe.js";
4
+ import { checkHost, marketplaceAdd, marketplaceRemove, pluginAdd, pluginRemove, publicState, } from "./codex-host.js";
5
+ import { manifestFor, MetadataError, readManifest, readRelease, } from "./manifest.js";
6
+ import { paths, } from "./paths.js";
7
+ import { compare } from "./version.js";
8
+ const pending = (message, details = {}) => ({
9
+ code: 3,
10
+ status: "installed-hooks-pending",
11
+ message,
12
+ trust: "pending-unverified",
13
+ details,
14
+ });
15
+ const activePath = (root, active) => join(root, active);
16
+ const marketPath = (root, active) => join(activePath(root, active), "marketplace");
17
+ function writeJournal(path, value, context = {}) {
18
+ atomicJson(path, { schema: 1, startedAt: new Date().toISOString(), ...value }, context.fs);
19
+ }
20
+ function journal(path, root) {
21
+ try {
22
+ const value = JSON.parse(readFileSync(path, "utf8"));
23
+ if (value.schema !== 1 ||
24
+ typeof value.operation !== "string" ||
25
+ typeof value.step !== "string" ||
26
+ typeof value.startedAt !== "string")
27
+ return null;
28
+ if (value.completed &&
29
+ !value.completed.every((item) => typeof item === "string"))
30
+ return null;
31
+ if (value.deletedFiles &&
32
+ !value.deletedFiles.every((item) => typeof item === "string" &&
33
+ !item.startsWith("/") &&
34
+ !item.split(sep).includes("..")))
35
+ return null;
36
+ if (value.trashPath &&
37
+ (!value.trashPath.startsWith(".trash-") ||
38
+ value.trashPath.includes(sep) ||
39
+ contained(root, value.trashPath) !== join(root, value.trashPath)))
40
+ return null;
41
+ return value;
42
+ }
43
+ catch {
44
+ return null;
45
+ }
46
+ }
47
+ function interrupted(context, name) {
48
+ return (context.checkpoint?.(name) === true ||
49
+ context.isInterrupted?.(name) === true);
50
+ }
51
+ function interruption(result) {
52
+ return { ...result, code: 130, interrupted: true };
53
+ }
54
+ function symlinkBelow(root) {
55
+ if (!existsSync(root))
56
+ return null;
57
+ for (const entry of readdirSync(root, { withFileTypes: true })) {
58
+ const path = join(root, entry.name);
59
+ if (lstatSync(path).isSymbolicLink())
60
+ return path;
61
+ if (entry.isDirectory()) {
62
+ const found = symlinkBelow(path);
63
+ if (found)
64
+ return found;
65
+ }
66
+ }
67
+ return null;
68
+ }
69
+ function exactState(codexHome, source, plugin) {
70
+ const state = publicState(codexHome);
71
+ return (state.status === "known" &&
72
+ (state.marketplaceSource
73
+ ? canonicalAlias(state.marketplaceSource)
74
+ : null) === (source ? canonicalAlias(resolve(source)) : null) &&
75
+ state.plugin === plugin);
76
+ }
77
+ function removeRegistration(codexHome) {
78
+ const state = publicState(codexHome);
79
+ if (state.status === "unknown")
80
+ return false;
81
+ if (state.plugin && pluginRemove(codexHome).status !== 0)
82
+ return false;
83
+ const afterPlugin = publicState(codexHome);
84
+ if (afterPlugin.status === "unknown")
85
+ return false;
86
+ if (afterPlugin.marketplace && marketplaceRemove(codexHome).status !== 0)
87
+ return false;
88
+ return exactState(codexHome, null, false);
89
+ }
90
+ function restoreOld(codexHome, source) {
91
+ if (!removeRegistration(codexHome))
92
+ return false;
93
+ if (marketplaceAdd(source, codexHome).status !== 0)
94
+ return false;
95
+ if (pluginAdd(codexHome).status !== 0)
96
+ return false;
97
+ return exactState(codexHome, source, true);
98
+ }
99
+ function removeEmptyTree(root, files) {
100
+ const dirs = new Set(files.map((f) => dirname(join(root, f.path))));
101
+ for (const dir of [...dirs].sort((a, b) => b.length - a.length)) {
102
+ try {
103
+ rmdirSync(dir);
104
+ }
105
+ catch { }
106
+ }
107
+ try {
108
+ rmdirSync(root);
109
+ }
110
+ catch { }
111
+ }
112
+ function remainingErrors(root, snapshot, deleted) {
113
+ const deletedSet = new Set(deleted), remaining = snapshot.ownedFiles.filter((file) => !deletedSet.has(file.path)), errors = verifyTree(root, remaining);
114
+ for (const file of deleted)
115
+ if (existsSync(contained(root, file)))
116
+ errors.push(`${file}: recorded deleted but exists`);
117
+ return errors;
118
+ }
119
+ function deleteTrash(path, snapshot, operation, committed, deleted, context) {
120
+ const p = paths(context), errors = [];
121
+ for (const file of [...snapshot.ownedFiles].sort((a, b) => b.path.length - a.path.length)) {
122
+ if (deleted.includes(file.path))
123
+ continue;
124
+ const target = contained(path, file.path);
125
+ try {
126
+ durableUnlink(target, context.fs, "trash-unlink");
127
+ deleted.push(file.path);
128
+ writeJournal(p.journal, {
129
+ operation,
130
+ step: "trash-deleting",
131
+ trashPath: relative(p.root, path),
132
+ snapshot,
133
+ completed: ["trash-renamed"],
134
+ deletedFiles: [...deleted],
135
+ committed,
136
+ }, context);
137
+ }
138
+ catch (error) {
139
+ errors.push(`${file.path}: ${String(error)}`);
140
+ break;
141
+ }
142
+ }
143
+ if (!errors.length)
144
+ removeEmptyTree(path, snapshot.ownedFiles);
145
+ return errors;
146
+ }
147
+ function quarantine(path, snapshot, operation, context) {
148
+ if (!existsSync(path))
149
+ return { errors: [] };
150
+ const errors = verifyTree(path, snapshot.ownedFiles);
151
+ if (errors.length)
152
+ return { errors };
153
+ const p = paths(context), trashRel = `.trash-${operation}-${snapshot.snapshotHash}`, trash = contained(p.root, trashRel), committed = operation === "prune";
154
+ if (existsSync(trash))
155
+ return { errors: ["trash path already exists"] };
156
+ try {
157
+ durableRename(path, trash, context.fs, "quarantine-rename");
158
+ }
159
+ catch (error) {
160
+ const renamed = !existsSync(path) && existsSync(trash);
161
+ writeJournal(p.journal, {
162
+ operation,
163
+ step: renamed ? "trash-renamed" : "quarantine-rename-failed",
164
+ trashPath: renamed ? trashRel : undefined,
165
+ snapshot,
166
+ completed: renamed ? ["trash-renamed"] : [],
167
+ deletedFiles: [],
168
+ error: String(error),
169
+ committed,
170
+ }, context);
171
+ return { errors: [String(error)], trash: renamed ? trash : undefined };
172
+ }
173
+ writeJournal(p.journal, {
174
+ operation,
175
+ step: "trash-renamed",
176
+ trashPath: trashRel,
177
+ snapshot,
178
+ completed: ["trash-renamed"],
179
+ deletedFiles: [],
180
+ committed,
181
+ }, context);
182
+ return {
183
+ errors: deleteTrash(trash, snapshot, operation, committed, [], context),
184
+ trash,
185
+ };
186
+ }
187
+ function cleanupCandidate(path, files, context) {
188
+ if (!existsSync(path))
189
+ return [];
190
+ const errors = verifyTree(path, files);
191
+ if (errors.length)
192
+ return errors;
193
+ for (const file of [...files].sort((a, b) => b.path.length - a.path.length))
194
+ try {
195
+ durableUnlink(contained(path, file.path), context.fs);
196
+ }
197
+ catch (error) {
198
+ return [`${file.path}: ${String(error)}`];
199
+ }
200
+ removeEmptyTree(path, files);
201
+ return [];
202
+ }
203
+ function resumeJournal(context) {
204
+ const p = paths(context), j = journal(p.journal, p.root);
205
+ if (!j)
206
+ return {
207
+ code: 5,
208
+ status: "partial-journal",
209
+ message: "operation journal is malformed",
210
+ };
211
+ if (j.step === "committed" || j.step === "journal-unlink-failed") {
212
+ if (j.operation !== "install" && j.operation !== "update")
213
+ return {
214
+ code: 5,
215
+ status: "partial-journal",
216
+ message: "committed journal operation is invalid",
217
+ };
218
+ const manifest = readManifest(p.manifest);
219
+ if (!manifest ||
220
+ !exactState(p.codexHome, marketPath(p.root, manifest.active.path), true))
221
+ return {
222
+ code: 5,
223
+ status: "partial-journal",
224
+ message: "committed journal does not match public and manifest state",
225
+ };
226
+ try {
227
+ durableUnlink(p.journal, context.fs, "journal-unlink");
228
+ return null;
229
+ }
230
+ catch (error) {
231
+ return {
232
+ code: 5,
233
+ status: "committed-stale-journal",
234
+ message: "committed state is intact; stale journal cleanup failed",
235
+ details: { error: String(error) },
236
+ };
237
+ }
238
+ }
239
+ if (j.operation === "uninstall" &&
240
+ j.step === "quarantine-rename-failed" &&
241
+ j.snapshot) {
242
+ if (!exactState(p.codexHome, null, false))
243
+ return {
244
+ code: 5,
245
+ status: "partial",
246
+ message: "uninstall resume requires absent public state",
247
+ };
248
+ const q = quarantine(activePath(p.root, j.snapshot.path), j.snapshot, "uninstall", context);
249
+ if (q.errors.length)
250
+ return {
251
+ code: 5,
252
+ status: "partial",
253
+ message: "registration removed; local cleanup requires resume",
254
+ details: { errors: q.errors, trashPath: q.trash },
255
+ };
256
+ try {
257
+ if (existsSync(p.manifest))
258
+ durableUnlink(p.manifest, context.fs, "manifest-unlink");
259
+ durableUnlink(p.journal, context.fs, "journal-unlink");
260
+ rmSync(p.root, { recursive: true });
261
+ return {
262
+ code: 0,
263
+ status: "uninstalled",
264
+ message: "resumed verified uninstall cleanup",
265
+ };
266
+ }
267
+ catch (error) {
268
+ return {
269
+ code: 5,
270
+ status: "partial",
271
+ message: "uninstall cleanup completed but metadata remains",
272
+ details: { error: String(error) },
273
+ };
274
+ }
275
+ }
276
+ if (j.trashPath && j.snapshot) {
277
+ const trash = contained(p.root, j.trashPath), deleted = j.deletedFiles || [], errors = remainingErrors(trash, j.snapshot, deleted);
278
+ if (errors.length)
279
+ return {
280
+ code: 5,
281
+ status: "unknown-trash",
282
+ message: "trash metadata verification failed",
283
+ details: { errors },
284
+ };
285
+ const deletion = deleteTrash(trash, j.snapshot, j.operation, !!j.committed, [...deleted], context);
286
+ if (deletion.length)
287
+ return {
288
+ code: 5,
289
+ status: j.committed ? "committed-stale-cleanup" : "partial",
290
+ message: "trash cleanup remains incomplete",
291
+ details: { errors: deletion },
292
+ };
293
+ if (j.operation === "uninstall") {
294
+ try {
295
+ if (existsSync(p.manifest))
296
+ durableUnlink(p.manifest, context.fs, "manifest-unlink");
297
+ durableUnlink(p.journal, context.fs, "journal-unlink");
298
+ rmSync(p.root, { recursive: true });
299
+ return {
300
+ code: 0,
301
+ status: "uninstalled",
302
+ message: "resumed verified uninstall cleanup",
303
+ };
304
+ }
305
+ catch (error) {
306
+ return {
307
+ code: 5,
308
+ status: "partial",
309
+ message: "uninstall cleanup completed but metadata remains",
310
+ details: { error: String(error) },
311
+ };
312
+ }
313
+ }
314
+ try {
315
+ durableUnlink(p.journal, context.fs, "journal-unlink");
316
+ }
317
+ catch (error) {
318
+ return {
319
+ code: 5,
320
+ status: j.committed ? "committed-stale-journal" : "partial",
321
+ message: "cleanup completed but journal remains",
322
+ details: { error: String(error) },
323
+ };
324
+ }
325
+ return null;
326
+ }
327
+ return {
328
+ code: 5,
329
+ status: "partial-journal",
330
+ message: "an incomplete operation journal requires repair",
331
+ };
332
+ }
333
+ function rollbackResult(operation, old, candidate, candidateFiles, error, context) {
334
+ const p = paths(context);
335
+ const oldSource = old ? marketPath(p.root, old.active.path) : null;
336
+ const restored = old && oldSource
337
+ ? restoreOld(p.codexHome, oldSource)
338
+ : removeRegistration(p.codexHome);
339
+ if (!restored) {
340
+ writeJournal(p.journal, {
341
+ operation,
342
+ step: "rollback-partial",
343
+ oldSource,
344
+ candidateSource: join(candidate, "marketplace"),
345
+ error,
346
+ });
347
+ return {
348
+ code: 5,
349
+ status: "partial",
350
+ message: `${operation} failed and rollback finality is unknown`,
351
+ };
352
+ }
353
+ const cleanup = cleanupCandidate(candidate, candidateFiles, context);
354
+ if (cleanup.length === 0) {
355
+ rmSync(p.journal, { force: true });
356
+ return {
357
+ code: 1,
358
+ status: "rolled-back",
359
+ message: `${operation} failed; prior public state was restored`,
360
+ };
361
+ }
362
+ writeJournal(p.journal, {
363
+ operation,
364
+ step: "rollback-partial",
365
+ oldSource,
366
+ candidateSource: join(candidate, "marketplace"),
367
+ error: `${error}${cleanup.length ? `; cleanup: ${cleanup.join(", ")}` : ""}`,
368
+ });
369
+ return {
370
+ code: 5,
371
+ status: "partial",
372
+ message: `${operation} failed and rollback finality is unknown`,
373
+ };
374
+ }
375
+ function conflict(command, context) {
376
+ const p = paths(context), manifest = readManifest(p.manifest), state = publicState(p.codexHome);
377
+ if (state.status === "unknown")
378
+ return {
379
+ code: 3,
380
+ status: "host-state-unknown",
381
+ message: "Codex public state could not be verified",
382
+ };
383
+ if (state.legacy)
384
+ return {
385
+ code: 3,
386
+ status: "legacy-plugin-conflict",
387
+ message: "Git-backed ccl-skills plugin is installed",
388
+ };
389
+ const legacy = symlinkBelow(join(p.codexHome, "skills"));
390
+ if (legacy && /ccl-skills/.test(legacy))
391
+ return {
392
+ code: 3,
393
+ status: "legacy-skill-symlink",
394
+ message: `legacy ccl-skills symlink exists: ${legacy}`,
395
+ };
396
+ const managed = symlinkBelow(p.root);
397
+ if (managed)
398
+ return {
399
+ code: 3,
400
+ status: "symlink-conflict",
401
+ message: `managed path contains symlink: ${managed}`,
402
+ };
403
+ if (!manifest && (state.marketplace || state.plugin))
404
+ return {
405
+ code: 3,
406
+ status: "unowned-registration",
407
+ message: "ccl-skills-npm is registered without an owned manifest",
408
+ };
409
+ if (command !== "doctor" && existsSync(p.journal))
410
+ return {
411
+ code: 5,
412
+ status: "partial-journal",
413
+ message: "an incomplete operation journal requires repair",
414
+ };
415
+ return null;
416
+ }
417
+ function doctor(context) {
418
+ const p = paths(context);
419
+ try {
420
+ assertSafeRoot(p.codexHome, p.root);
421
+ }
422
+ catch (error) {
423
+ return { code: 3, status: "safety-refusal", message: String(error) };
424
+ }
425
+ const host = checkHost(p.codexHome);
426
+ if (!host.ok)
427
+ return { code: 4, status: `host-${host.kind}`, message: host.message };
428
+ if (existsSync(p.journal)) {
429
+ const repair = resumeJournal(context);
430
+ if (repair)
431
+ return repair;
432
+ }
433
+ const unknownTrash = existsSync(p.root)
434
+ ? readdirSync(p.root).filter((name) => name.startsWith(".trash-"))
435
+ : [];
436
+ if (unknownTrash.length)
437
+ return {
438
+ code: 5,
439
+ status: "unknown-trash",
440
+ message: "unreferenced trash requires manual ownership verification",
441
+ details: { trash: unknownTrash },
442
+ };
443
+ const problem = conflict("doctor", context);
444
+ if (problem)
445
+ return problem;
446
+ const manifest = readManifest(p.manifest);
447
+ if (!manifest)
448
+ return {
449
+ code: 3,
450
+ status: "absent",
451
+ message: "ccl-skills is not installed",
452
+ trust: "pending-unverified",
453
+ };
454
+ const drift = verifyTree(activePath(p.root, manifest.active.path), manifest.active.ownedFiles);
455
+ if (drift.length)
456
+ return {
457
+ code: 3,
458
+ status: "owned-drift",
459
+ message: "owned files are missing or modified",
460
+ details: { drift },
461
+ };
462
+ if (!exactState(p.codexHome, marketPath(p.root, manifest.active.path), true))
463
+ return {
464
+ code: 3,
465
+ status: "public-state-mismatch",
466
+ message: "owned files exist but Codex registration does not match the manifest",
467
+ };
468
+ return pending("plugin is installed; hooks trust is pending/unverified", {
469
+ version: manifest.active.version,
470
+ });
471
+ }
472
+ function installOrUpdate(command, options, context) {
473
+ const p = paths(context);
474
+ try {
475
+ assertSafeRoot(p.codexHome, p.root, true);
476
+ }
477
+ catch (error) {
478
+ return { code: 3, status: "safety-refusal", message: String(error) };
479
+ }
480
+ const host = checkHost(p.codexHome);
481
+ if (!host.ok)
482
+ return { code: 4, status: `host-${host.kind}`, message: host.message };
483
+ if (existsSync(p.journal)) {
484
+ const repair = resumeJournal(context);
485
+ if (repair)
486
+ return repair;
487
+ }
488
+ const problem = conflict(command, context);
489
+ if (problem)
490
+ return problem;
491
+ const old = readManifest(p.manifest), release = readRelease(p.release);
492
+ if (command === "update" && !old)
493
+ return {
494
+ code: 3,
495
+ status: "not-installed",
496
+ message: "update requires an existing owned installation",
497
+ };
498
+ if (old) {
499
+ const drift = verifyTree(activePath(p.root, old.active.path), old.active.ownedFiles);
500
+ if (drift.length)
501
+ return {
502
+ code: 3,
503
+ status: "owned-drift",
504
+ message: "owned files drifted",
505
+ details: { drift },
506
+ };
507
+ if (!exactState(p.codexHome, marketPath(p.root, old.active.path), true))
508
+ return {
509
+ code: 3,
510
+ status: "public-state-mismatch",
511
+ message: "public state does not match the owned manifest",
512
+ };
513
+ const comparison = compare(release.version, old.active.version);
514
+ if (comparison === 0)
515
+ return command === "install"
516
+ ? {
517
+ ...doctor(context),
518
+ message: "same version is already installed; hooks trust remains pending/unverified",
519
+ }
520
+ : doctor(context);
521
+ if (command === "install")
522
+ return {
523
+ code: 3,
524
+ status: "use-update",
525
+ message: "an owned version exists; use update",
526
+ };
527
+ if (comparison < 0 && !options.allowDowngrade)
528
+ return {
529
+ code: 3,
530
+ status: "downgrade-refused",
531
+ message: "newer version is installed; pass --allow-downgrade --yes",
532
+ };
533
+ }
534
+ if (command === "update" && !options.yes)
535
+ return {
536
+ code: 0,
537
+ status: "dry-run",
538
+ message: "update preview",
539
+ plan: [
540
+ "prepare immutable snapshot",
541
+ "replace Codex registration",
542
+ "verify exact candidate source",
543
+ "commit active/previous manifest pointers",
544
+ ],
545
+ };
546
+ if (options.allowDowngrade && !options.yes)
547
+ return {
548
+ code: 2,
549
+ status: "usage",
550
+ message: "--allow-downgrade requires --yes",
551
+ };
552
+ const snapshotRel = join("snapshots", release.snapshotHash), snapshot = contained(p.root, snapshotRel);
553
+ let unlock;
554
+ try {
555
+ unlock = acquireLock(p.lock);
556
+ }
557
+ catch {
558
+ return {
559
+ code: 3,
560
+ status: "lock-contended",
561
+ message: "another operation holds the lock",
562
+ };
563
+ }
564
+ let candidateCreated = false;
565
+ try {
566
+ if (interrupted(context, "before-first-mutation"))
567
+ return interruption({
568
+ code: 1,
569
+ status: "rolled-back",
570
+ message: "interrupted before mutation",
571
+ });
572
+ mkdirSync(p.root, { recursive: true });
573
+ if (existsSync(snapshot)) {
574
+ const drift = verifyTree(snapshot, release.files);
575
+ if (drift.length)
576
+ return {
577
+ code: 3,
578
+ status: "snapshot-drift",
579
+ message: "existing snapshot failed verification",
580
+ details: { drift },
581
+ };
582
+ }
583
+ else {
584
+ const staging = contained(p.root, join("snapshots", `.staging-${release.snapshotHash}-${process.pid}`));
585
+ rmSync(staging, { recursive: true, force: true });
586
+ copyRegularTree(join(p.assets, "marketplace"), join(staging, "marketplace"));
587
+ const drift = verifyTree(staging, release.files);
588
+ if (drift.length) {
589
+ rmSync(staging, { recursive: true, force: true });
590
+ return {
591
+ code: 3,
592
+ status: "safety-refusal",
593
+ message: "staged snapshot failed verification",
594
+ details: { drift },
595
+ };
596
+ }
597
+ renameSync(staging, snapshot);
598
+ candidateCreated = true;
599
+ }
600
+ const candidateMarket = join(snapshot, "marketplace"), hidden = join(candidateMarket, ".agents/plugins/marketplace.json"), carrier = join(candidateMarket, "marketplace-manifest.json");
601
+ if (!existsSync(hidden)) {
602
+ if (!existsSync(carrier))
603
+ throw new Error("packed marketplace manifest carrier is missing");
604
+ mkdirSync(join(candidateMarket, ".agents/plugins"), { recursive: true });
605
+ copyFileSync(carrier, hidden);
606
+ }
607
+ const oldSource = old ? marketPath(p.root, old.active.path) : null;
608
+ writeJournal(p.journal, {
609
+ operation: command,
610
+ step: "candidate-prepared",
611
+ oldSource,
612
+ candidateSource: candidateMarket,
613
+ completed: ["candidate-prepared"],
614
+ });
615
+ if (old && pluginRemove(p.codexHome).status !== 0)
616
+ return rollbackResult(command, old, snapshot, release.files, "old plugin remove failed", context);
617
+ if (old)
618
+ writeJournal(p.journal, {
619
+ operation: command,
620
+ step: "old-plugin-removed",
621
+ oldSource,
622
+ candidateSource: candidateMarket,
623
+ completed: ["candidate-prepared", "old-plugin-removed"],
624
+ });
625
+ if (old && interrupted(context, "after-old-plugin-remove"))
626
+ return interruption(rollbackResult(command, old, snapshot, release.files, "interrupted after old plugin remove", context));
627
+ if (old && marketplaceRemove(p.codexHome).status !== 0)
628
+ return rollbackResult(command, old, snapshot, release.files, "old marketplace remove failed", context);
629
+ if (old)
630
+ writeJournal(p.journal, {
631
+ operation: command,
632
+ step: "old-marketplace-removed",
633
+ oldSource,
634
+ candidateSource: candidateMarket,
635
+ completed: [
636
+ "candidate-prepared",
637
+ "old-plugin-removed",
638
+ "old-marketplace-removed",
639
+ ],
640
+ });
641
+ if (old && interrupted(context, "after-old-marketplace-remove"))
642
+ return interruption(rollbackResult(command, old, snapshot, release.files, "interrupted after old marketplace remove", context));
643
+ if (marketplaceAdd(candidateMarket, p.codexHome).status !== 0)
644
+ return rollbackResult(command, old, snapshot, release.files, "candidate marketplace add failed", context);
645
+ writeJournal(p.journal, {
646
+ operation: command,
647
+ step: "candidate-marketplace-added",
648
+ oldSource,
649
+ candidateSource: candidateMarket,
650
+ completed: [
651
+ "candidate-prepared",
652
+ "old-plugin-removed",
653
+ "old-marketplace-removed",
654
+ "candidate-marketplace-added",
655
+ ],
656
+ });
657
+ if (interrupted(context, "after-candidate-marketplace-add"))
658
+ return interruption(rollbackResult(command, old, snapshot, release.files, "interrupted after candidate marketplace add", context));
659
+ if (pluginAdd(p.codexHome).status !== 0)
660
+ return rollbackResult(command, old, snapshot, release.files, "candidate plugin add failed", context);
661
+ writeJournal(p.journal, {
662
+ operation: command,
663
+ step: "candidate-plugin-added",
664
+ oldSource,
665
+ candidateSource: candidateMarket,
666
+ completed: [
667
+ "candidate-prepared",
668
+ "old-plugin-removed",
669
+ "old-marketplace-removed",
670
+ "candidate-marketplace-added",
671
+ "candidate-plugin-added",
672
+ ],
673
+ });
674
+ if (interrupted(context, "after-candidate-plugin-add"))
675
+ return interruption(rollbackResult(command, old, snapshot, release.files, "interrupted after candidate plugin add", context));
676
+ if (!exactState(p.codexHome, candidateMarket, true))
677
+ return rollbackResult(command, old, snapshot, release.files, "candidate public verification failed", context);
678
+ writeJournal(p.journal, {
679
+ operation: command,
680
+ step: "candidate-verified",
681
+ oldSource,
682
+ candidateSource: candidateMarket,
683
+ completed: [
684
+ "candidate-prepared",
685
+ "old-removed",
686
+ "candidate-added",
687
+ "candidate-verified",
688
+ ],
689
+ });
690
+ if (interrupted(context, "after-public-verify-before-manifest"))
691
+ return interruption(rollbackResult(command, old, snapshot, release.files, "interrupted before manifest commit", context));
692
+ try {
693
+ atomicJson(p.manifest, manifestFor(release, snapshotRel, old?.active || null), context.fs);
694
+ }
695
+ catch (error) {
696
+ return {
697
+ code: 5,
698
+ status: "partial",
699
+ message: "manifest durability is unknown; journal retained",
700
+ details: { error: String(error) },
701
+ };
702
+ }
703
+ writeJournal(p.journal, {
704
+ operation: command,
705
+ step: "committed",
706
+ oldSource,
707
+ candidateSource: candidateMarket,
708
+ completed: ["manifest-committed"],
709
+ committed: true,
710
+ }, context);
711
+ const interruptedAfterCommit = interrupted(context, "after-manifest-commit");
712
+ const retainedDrift = [];
713
+ if (old?.previous) {
714
+ const obsolete = activePath(p.root, old.previous.path);
715
+ const errors = verifyTree(obsolete, old.previous.ownedFiles);
716
+ if (errors.length) {
717
+ retainedDrift.push(...errors);
718
+ atomicJson(join(p.root, "ownership-evidence.json"), { schema: 1, snapshot: old.previous, drift: errors }, context.fs);
719
+ }
720
+ else {
721
+ const q = quarantine(obsolete, old.previous, "prune", context);
722
+ if (q.errors.length)
723
+ return {
724
+ code: 5,
725
+ status: "committed-stale-cleanup",
726
+ message: "new version committed; obsolete snapshot cleanup requires resume",
727
+ details: { errors: q.errors, trashPath: q.trash },
728
+ };
729
+ }
730
+ }
731
+ try {
732
+ durableUnlink(p.journal, context.fs, "journal-unlink");
733
+ }
734
+ catch (error) {
735
+ writeJournal(p.journal, {
736
+ operation: command,
737
+ step: "journal-unlink-failed",
738
+ committed: true,
739
+ error: String(error),
740
+ }, context);
741
+ return {
742
+ code: 5,
743
+ status: "committed-stale-journal",
744
+ message: "new version committed; stale journal requires cleanup",
745
+ };
746
+ }
747
+ const result = pending("plugin installed and publicly verified; hooks trust is pending/unverified", { version: release.version, retainedDrift });
748
+ return interruptedAfterCommit
749
+ ? interruption({
750
+ ...result,
751
+ status: "committed",
752
+ message: "interrupted after manifest commit; new state remains active",
753
+ })
754
+ : result;
755
+ }
756
+ catch (error) {
757
+ if (!candidateCreated)
758
+ writeJournal(p.journal, {
759
+ operation: command,
760
+ step: "exception",
761
+ error: String(error),
762
+ });
763
+ return rollbackResult(command, old, snapshot, release.files, String(error), context);
764
+ }
765
+ finally {
766
+ unlock();
767
+ }
768
+ }
769
+ function uninstall(options, context) {
770
+ const p = paths(context);
771
+ if (!options.yes)
772
+ return {
773
+ code: 0,
774
+ status: "dry-run",
775
+ message: "uninstall preview",
776
+ plan: [
777
+ "verify ownership and exact public state",
778
+ "remove plugin and marketplace",
779
+ "verify absent",
780
+ "delete only verified owned files",
781
+ ],
782
+ };
783
+ try {
784
+ assertSafeRoot(p.codexHome, p.root);
785
+ }
786
+ catch (error) {
787
+ return { code: 3, status: "safety-refusal", message: String(error) };
788
+ }
789
+ if (existsSync(p.journal)) {
790
+ const repair = resumeJournal(context);
791
+ if (repair)
792
+ return repair;
793
+ }
794
+ const problem = conflict("uninstall", context);
795
+ if (problem)
796
+ return problem;
797
+ const manifest = readManifest(p.manifest);
798
+ if (!manifest)
799
+ return { code: 0, status: "absent", message: "nothing to uninstall" };
800
+ const active = activePath(p.root, manifest.active.path), source = marketPath(p.root, manifest.active.path), drift = verifyTree(active, manifest.active.ownedFiles);
801
+ if (drift.length)
802
+ return {
803
+ code: 3,
804
+ status: "modified-owned-files",
805
+ message: "modified owned files were retained with ownership evidence",
806
+ details: { drift },
807
+ };
808
+ if (!exactState(p.codexHome, source, true))
809
+ return {
810
+ code: 3,
811
+ status: "public-state-mismatch",
812
+ message: "public state does not match the owned manifest",
813
+ };
814
+ let unlock;
815
+ try {
816
+ unlock = acquireLock(p.lock);
817
+ }
818
+ catch {
819
+ return {
820
+ code: 3,
821
+ status: "lock-contended",
822
+ message: "another operation holds the lock",
823
+ };
824
+ }
825
+ try {
826
+ writeJournal(p.journal, {
827
+ operation: "uninstall",
828
+ step: "started",
829
+ oldSource: source,
830
+ completed: [],
831
+ }, context);
832
+ const rollback = (wasInterrupted) => {
833
+ const restored = restoreOld(p.codexHome, source);
834
+ let result;
835
+ if (restored) {
836
+ rmSync(p.journal, { force: true });
837
+ result = {
838
+ code: 1,
839
+ status: "rolled-back",
840
+ message: `uninstall ${wasInterrupted ? "interrupted" : "failed"}; prior public state was restored`,
841
+ };
842
+ }
843
+ else {
844
+ writeJournal(p.journal, {
845
+ operation: "uninstall",
846
+ step: "restore-partial",
847
+ oldSource: source,
848
+ error: "public removal or restore failed",
849
+ }, context);
850
+ result = {
851
+ code: 5,
852
+ status: "partial",
853
+ message: `uninstall ${wasInterrupted ? "interrupted" : "failed"} and restore finality is unknown`,
854
+ };
855
+ }
856
+ return wasInterrupted ? interruption(result) : result;
857
+ };
858
+ if (pluginRemove(p.codexHome).status !== 0)
859
+ return rollback(false);
860
+ writeJournal(p.journal, {
861
+ operation: "uninstall",
862
+ step: "old-plugin-removed",
863
+ oldSource: source,
864
+ completed: ["old-plugin-removed"],
865
+ }, context);
866
+ if (interrupted(context, "after-uninstall-plugin-remove"))
867
+ return rollback(true);
868
+ if (marketplaceRemove(p.codexHome).status !== 0)
869
+ return rollback(false);
870
+ writeJournal(p.journal, {
871
+ operation: "uninstall",
872
+ step: "old-marketplace-removed",
873
+ oldSource: source,
874
+ completed: ["old-plugin-removed", "old-marketplace-removed"],
875
+ }, context);
876
+ if (interrupted(context, "after-uninstall-marketplace-remove"))
877
+ return rollback(true);
878
+ if (!exactState(p.codexHome, null, false)) {
879
+ const restored = restoreOld(p.codexHome, source);
880
+ if (restored) {
881
+ rmSync(p.journal, { force: true });
882
+ return {
883
+ code: 1,
884
+ status: "rolled-back",
885
+ message: "uninstall failed; prior public state was restored",
886
+ };
887
+ }
888
+ writeJournal(p.journal, {
889
+ operation: "uninstall",
890
+ step: "restore-partial",
891
+ oldSource: source,
892
+ error: "public removal or restore failed",
893
+ });
894
+ return {
895
+ code: 5,
896
+ status: "partial",
897
+ message: "uninstall failed and restore finality is unknown",
898
+ };
899
+ }
900
+ writeJournal(p.journal, {
901
+ operation: "uninstall",
902
+ step: "public-absent-committed",
903
+ oldSource: source,
904
+ completed: [
905
+ "old-plugin-removed",
906
+ "old-marketplace-removed",
907
+ "public-absent-committed",
908
+ ],
909
+ committed: true,
910
+ }, context);
911
+ const interruptedCommitted = interrupted(context, "after-uninstall-public-absent-commit");
912
+ const snapshots = [manifest.active, manifest.previous].filter(Boolean);
913
+ for (const snapshot of snapshots) {
914
+ const q = quarantine(activePath(p.root, snapshot.path), snapshot, "uninstall", context);
915
+ if (q.errors.length) {
916
+ const stale = {
917
+ code: 5,
918
+ status: "committed-stale-cleanup",
919
+ message: "registration removal committed; local cleanup requires resume",
920
+ details: { errors: q.errors, trashPath: q.trash },
921
+ };
922
+ return interruptedCommitted ? interruption(stale) : stale;
923
+ }
924
+ }
925
+ durableUnlink(p.manifest, context.fs);
926
+ durableUnlink(p.journal, context.fs);
927
+ rmSync(p.root, { recursive: true });
928
+ const result = {
929
+ code: 0,
930
+ status: "uninstalled",
931
+ message: "Codex registration removed and verified owned files deleted",
932
+ };
933
+ return interruptedCommitted ? interruption(result) : result;
934
+ }
935
+ finally {
936
+ unlock();
937
+ }
938
+ }
939
+ export function run(command, options = {}, context = {}) {
940
+ try {
941
+ if (command === "doctor")
942
+ return doctor(context);
943
+ if (command === "install")
944
+ return installOrUpdate("install", options, context);
945
+ if (command === "update")
946
+ return installOrUpdate("update", options, context);
947
+ if (command === "uninstall")
948
+ return uninstall(options, context);
949
+ return { code: 2, status: "usage", message: "unknown command" };
950
+ }
951
+ catch (error) {
952
+ if (error instanceof MetadataError)
953
+ return { code: 3, status: "safety-refusal", message: error.message };
954
+ return { code: 5, status: "partial", message: String(error) };
955
+ }
956
+ }