@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,441 @@
1
+ # Agent Command-Execution Sandbox (Implementation Layer)
2
+
3
+ Implementation companion to the shell-authorization and sandbox-as-defense-in-depth rules in
4
+ `SKILL.md` (Core Workflow) and the Tool Execution section of `retrieval-agent-safety.md`. Those
5
+ rules state *what the authorization decision must require*; this reference states *how to build the
6
+ enforcement* when an agent executes model-proposed shell commands or file edits on a real host.
7
+
8
+ Use when the agent runs commands/edits locally (coding agent, dev/ops agent, CI agent). Do not use
9
+ for pure API tool calls with no local process execution — there the Tool Execution rules suffice.
10
+
11
+ These patterns are drawn from a production reference agent and cross-checked against OS sandbox
12
+ primitives; treat the OS-primitive facts as the authority and the composition shapes as a proven
13
+ pattern, not the only valid design.
14
+
15
+ ## 1. Separate the three axes — never collapse them
16
+
17
+ A safe-execution decision is the product of three independent inputs. Collapsing any two produces a
18
+ security hole:
19
+
20
+ - **Approval policy** — how much human confirmation this session requires (see §6).
21
+ - **Sandbox enforcement** — what OS-level confinement is actually applied to the process (§3–§4).
22
+ - **Command classification** — what the command itself is judged to do (§5).
23
+
24
+ Resolve them into one explicit outcome: `auto-approve(sandbox_type, user_explicitly_approved)`,
25
+ `ask-user`, or `reject(reason)`. The outcome must record *which* sandbox type was selected and
26
+ whether a human explicitly approved — downstream audit and escalation depend on both.
27
+
28
+ **Fail-closed coupling rule:** auto-approve is valid only when a sandbox can *actually be enforced*
29
+ on this platform. If the policy would auto-run but no sandbox primitive is available, downgrade to
30
+ `ask-user` (or `reject` if the policy forbids unsandboxed approval) — never silently run
31
+ unsandboxed. "Sandbox unavailable" is uncertainty, not permission.
32
+
33
+ **The boundary is the kernel, not the string.** Path, basename, and command-string checks are
34
+ *advisory hints* that decide whether to *attempt* auto-approval — they are not containment. The only
35
+ real boundaries are the kernel sandbox (filesystem + network confinement, §4/§8) and a closed
36
+ process surface (closed FDs, allowlisted env, no inherited credentials, §9). Every classification or
37
+ path check in §3/§5/§6 can be defeated by a determined malicious command; design so that defeating
38
+ one still leaves the kernel sandbox enforcing. Never let an advisory check be the *sole* gate in
39
+ front of an irreversible or exfil-capable action.
40
+
41
+ ## 2. Sandbox policy = a small set of named profiles, not ad-hoc flags
42
+
43
+ Express the filesystem/network posture as a closed enum of named profiles. A minimal proven set:
44
+
45
+ - **full-access** — no restriction. Reserve for explicit user opt-in; mark dangerous.
46
+ - **read-only** — no writes; network off by default with an explicit on toggle.
47
+ - **workspace-write** — read-only everywhere plus write access to the working directory and an
48
+ explicit list of additional writable roots; network off by default; explicit toggles to
49
+ include/exclude the per-user temp dir and `/tmp`.
50
+ - **external-sandbox (pass-through)** — the agent already runs inside someone else's sandbox
51
+ (container, VM, CI runner). Apply no *additional* inner filesystem sandbox but still honor the
52
+ declared network posture. **Pass-through is a trust assertion — attest it, do not assume it.** A
53
+ CI/container host frequently exposes broad mounts, a Docker socket, cloud-credential files, the
54
+ user's home dir, or unrestricted egress; "I'm in a container" is not "I'm confined". Probe the
55
+ effective writable paths, reachable credentials, and network controls before selecting
56
+ pass-through; if you cannot attest the outer boundary, apply the normal inner sandbox or treat the
57
+ sandbox as unavailable (fail closed), not as full trust.
58
+
59
+ Default network to **off** in every write-capable profile. Network is a separate grant from
60
+ filesystem write (§4).
61
+
62
+ **Reads need a confidentiality boundary too, not just writes.** A profile that confines *writes* but
63
+ allows reading the whole host is still an exfil hole: an auto-approved "safe" read (`cat`, `rg`,
64
+ `sed`, `find`) can slurp `~/.ssh`, `~/.aws`/cloud-credential files, browser profiles, keychains,
65
+ agent tokens, or other repos and leak them through stdout, generated artifacts, or simply into the
66
+ model's context (then out via any later egress). Redaction is not a boundary — it cannot recognize
67
+ arbitrary secrets. Treat sensitive credential/key/browser/agent paths as **deny-by-default reads**
68
+ even under a broad read profile, and have auto-approved read commands validate their target paths
69
+ against an explicit read allowlist (workspace + minimal toolchain/system paths), not just the
70
+ write/network checks.
71
+
72
+ ## 3. Writable roots must protect privilege-escalation paths
73
+
74
+ A writable root is not uniformly writable. Within each root, carve out read-only sub-paths and
75
+ protected metadata names so the agent cannot rewrite the very files that would re-grant it
76
+ privileges:
77
+
78
+ - VCS hooks and config (`.git/hooks`, `.git/config`), agent/tool config directories, and any
79
+ on-disk policy the runtime reads back. A writable workspace that lets the agent edit its own
80
+ approval policy or a git hook is a sandbox escape by construction.
81
+ - Enforce protected-metadata names at the *first path component* under the root, so a new
82
+ `.git/`-shaped directory cannot be created to shadow protections.
83
+
84
+ **Hard-link / symlink escape:** path-prefix checks alone do not prove containment, and the two link
85
+ types fail differently. A **symlink** under a writable root can point outside it — catch these by
86
+ *canonicalizing* (resolving symlinks) before the prefix check, not after. A **hard link** is
87
+ harder: it shares an inode with a file outside the root while the path genuinely *is* inside the
88
+ root, so canonicalization cannot detect it — you need filesystem identity (device + inode) checks,
89
+ or run the write inside the OS sandbox so the kernel enforces the boundary regardless. Identity
90
+ checks are best-effort (reject files whose link count > 1, or that resolve to a different device);
91
+ the robust fix is a kernel-enforced writable layer, not a userspace check. Normalize `.`/`..`
92
+ without touching the filesystem before any prefix comparison, but remember normalization is not
93
+ canonicalization.
94
+
95
+ **TOCTOU — the check and the write are not atomic.** Any path validated by canonicalization can be
96
+ swapped (symlink replaced, directory swapped, mount changed) between the check and the write. A
97
+ userspace "validate then write" is a race. Close it by performing writes *under* kernel sandbox
98
+ enforcement, or with race-safe APIs (`openat2` with `RESOLVE_BENEATH`/`RESOLVE_NO_SYMLINKS`, or
99
+ `O_NOFOLLOW` + dirfd), and treat the per-invocation decision snapshot as immutable. Do not re-derive
100
+ permission from a path string a second time after the model influenced the filesystem.
101
+
102
+ **Temp dirs are not ordinary writable roots.** A shared `/tmp` or per-user temp invites predictable-
103
+ path races, Unix-socket spoofing, lockfile poisoning, and disk-fill. Give each invocation a private,
104
+ bounded temp directory (ideally a tmpfs mounted only inside the sandbox) and clean it on exit,
105
+ rather than granting the shared temp as a writable root.
106
+
107
+ ## 4. Compose the OS sandbox: deny-default + minimal layered allow + dynamic roots
108
+
109
+ Same architecture on every platform: start from a closed-by-default base policy, layer in a minimal
110
+ fixed allowlist (process spawn within the same sandbox, read-only system info, PTY, temp), then
111
+ inject the policy's writable roots and network exception dynamically per invocation.
112
+
113
+ - **macOS** — Seatbelt via `sandbox-exec` with an SBPL policy that begins `(deny default)` and adds
114
+ minimal allowances; append `(allow file-write*)` rules generated from the writable roots.
115
+ **Pin the absolute launcher path** (`/usr/bin/sandbox-exec`) — never resolve it through `PATH`,
116
+ or a planted binary on `PATH` defeats the sandbox. (`sandbox-exec` is Apple-deprecated but still
117
+ functional and widely used in production agents/browsers; validate availability per OS version
118
+ and be ready to migrate to a per-process sandbox API if Apple removes it.)
119
+ - **Linux** — two complementary primitives: **Landlock** (stackable LSM, unprivileged, mainline
120
+ since kernel 5.13) for filesystem access control, plus **seccomp-bpf** for syscall filtering.
121
+ Landlock controls *which files*; seccomp controls *which syscalls* — use both. Run setup in an
122
+ **unprivileged self-re-exec helper** (a multi-call-binary dispatch): the main binary re-invokes
123
+ itself with `argv[0]` set to a marker name; at startup the process inspects its own `argv[0]` and,
124
+ when it matches, acts as a minimal helper that applies Landlock+seccomp (or bubblewrap) and then
125
+ `exec`s the real command. This isolates the sandbox-setup code path and keeps the enforcing
126
+ process minimal. Pass the policy to the helper as serialized JSON, and put a `--` separator before
127
+ the target command so args starting with `-` are not parsed as helper options. **Authenticate the
128
+ helper invocation:** the helper applies whatever policy JSON it is handed, so a sandboxed child
129
+ that re-invokes the multi-call binary under the marker with attacker-chosen, *looser* policy is a
130
+ full escape. Gate helper mode behind a sealed parent-created credential (an inherited
131
+ authenticated fd / one-time token the child cannot forge), and reject helper invocations whose
132
+ policy did not come from the trusted parent.
133
+ - **Linux (container-less hosts)** — bubblewrap as an alternative unprivileged-namespace sandbox.
134
+ Detect environments where it cannot work (e.g. WSL1) and degrade explicitly rather than
135
+ silently running unsandboxed.
136
+ - **Windows** — a write-restricted token (restricted SID list) and/or AppContainer (Low integrity
137
+ level, capability SIDs). For input/screen isolation, launch under a **private window
138
+ station + desktop** so the sandboxed process cannot inject input into or scrape the user's
139
+ desktop. The boundary must **follow the child-process tree** (package managers, test runners,
140
+ scripts spawn children), not just the first executable.
141
+
142
+ Inheritance differs by platform: on Linux (Landlock/seccomp) and macOS (Seatbelt) the sandbox
143
+ domain applies to the process and all descendants automatically. On **Windows it is not
144
+ automatic** — a child gets the restricted token / AppContainer only if launched with it, and you
145
+ need a Job object that blocks process breakaway so a child cannot escape; enforce and verify it
146
+ across the whole process tree. On every platform, verify spawned helpers do not run *before* the
147
+ sandbox is applied.
148
+
149
+ ## 5. Classify the command before auto-running it
150
+
151
+ OS confinement is defense-in-depth; classification decides whether a command may auto-run *at all*.
152
+
153
+ - **Known-safe read-only allowlist** — a curated set of read-only inspection commands (list/read/
154
+ search/status) may auto-approve under stricter policies. Validate flags and subcommands: a
155
+ "read" tool with a flag that writes, executes, or reaches the network is no longer read-only.
156
+ - **Parse shell wrappers — don't trust the string.** When the command is `bash -lc "<payload>"` /
157
+ `sh -c` / `zsh -lc`, parse the payload and only auto-classify when it decomposes into plain
158
+ commands joined by a *tiny allowlist of safe operators* (`&&`, `||`, `;`, `|`). Reject — i.e.
159
+ fall through to human approval — on redirections, subshells, command substitution, heredocs,
160
+ process substitution, or any operator not explicitly allowed. A safe-looking wrapper hiding a
161
+ dangerous payload is the most common bypass.
162
+ - **Interpreter-escape ban (allowlist hygiene).** Never let a user/policy allowlist a *prefix* that
163
+ is an interpreter or shell: `python`/`python3 -c`, `node -e`, `perl`, `ruby`, `bash -lc`, `sh -c`,
164
+ `pwsh -Command`, plus `env` and `sudo`. Allowlisting any of these is equivalent to allowlisting
165
+ arbitrary code execution. Reusable allow suggestions must target concrete leaf programs, never a
166
+ shell/interpreter/wrapper prefix.
167
+ - **Exec-escape flags hide in "normal" tools too.** The basename is not the whole story: many
168
+ ordinary allowlisted programs have a flag or subcommand that runs arbitrary commands —
169
+ `find -exec`, `xargs`, `git -c core.pager=`/`-c alias.x='!sh'`/`-c core.sshCommand=`, `make`,
170
+ `npm`/`yarn` run-scripts, `tar --checkpoint-action=exec`, `ssh -o ProxyCommand=`, `rsync -e`,
171
+ `awk 'BEGIN{system(...)}'`, `vim/less` shell-out. Auto-approval needs a *flag/subcommand-level*
172
+ validator that denies these escape hatches, not just a basename match.
173
+ - **Planted-binary defense.** A bare basename allow (`git`, `rg`) can be satisfied by a `./git` the
174
+ model just wrote into the writable workspace, which then reads/prints secrets through stdout even
175
+ with network off. Every auto-allow rule must bind to an **absolute path in a trusted system
176
+ location**, never a name resolved against a workspace-influenced `PATH` or cwd.
177
+ - **Dangerous-command detection** — independently flag destructive operations (recursive delete,
178
+ force-push, history rewrite, disk format, ownership/permission changes) for mandatory approval
179
+ even when other checks would pass.
180
+
181
+ ## 6. Command-policy as a testable DSL
182
+
183
+ For anything beyond a hardcoded allowlist, express command policy as data, not branching code:
184
+
185
+ - **Ordered prefix rules**: a token pattern → a decision of `allow` | `prompt` | `forbidden`. A
186
+ rule that *omits* its decision defaults to `allow` (a prefix rule is an allowlist entry). Any
187
+ pattern token may be a set of alternatives. First match wins.
188
+ - **The unmatched default is fail-closed.** The per-rule `allow` default applies only to an explicit
189
+ matched rule — never to the no-match case. When *no* rule matches, do not auto-allow: fall through
190
+ to `prompt` (interactive) or deny (non-interactive). An allowlist whose "nothing matched" branch
191
+ allows is not an allowlist.
192
+ - **Justification** on every rule, surfaced in approval/rejection UX. `forbidden` rules should name
193
+ the recommended alternative (e.g. "use `X` instead").
194
+ - **Inline self-tests**: each rule carries `match` / `not_match` example invocations validated *at
195
+ load time*. A policy that fails its own examples must fail to load — this prevents a typo'd rule
196
+ from silently allowing or blocking the wrong commands.
197
+ - **Host-executable binding is mandatory for any auto-`allow` rule**: constrain a basename rule to a
198
+ set of trusted absolute paths so a rule for `git` cannot be satisfied by a planted `./git` on a
199
+ workspace-influenced `PATH`. A basename `allow` with no path binding is a bypass, not a
200
+ convenience. (`prompt`/`forbidden` rules may match on basename since a human or denial still
201
+ gates them.)
202
+ - **Layered precedence**: managed/admin policy, then user policy, then defaults. Deny/`forbidden`
203
+ outranks `prompt` outranks `allow`. Make the layer that produced a decision visible in the trace.
204
+
205
+ ## 7. Approval and escalation as a state machine
206
+
207
+ Graduated approval modes (strictest → loosest):
208
+
209
+ - **untrusted** — only known-safe read-only commands auto-approve; everything else asks.
210
+ - **on-request** — the model may *request* approval, but the policy engine still decides
211
+ independently; a sensible interactive default. Phrase it as "the model can ask", never "the model
212
+ decides what is safe": a compromised or jailbroken model under `on-request` will simply never ask
213
+ and frame risky commands as routine. **Model self-classification is never a security boundary** —
214
+ the deny/policy/sandbox layers must hold regardless of what the model claims about a command.
215
+ - **granular** — per-category booleans (shell approval, policy-`prompt` rules, skill-script
216
+ execution, permission-request tool, server elicitations). **A `false` category auto-*rejects*,
217
+ it does not silently allow** — explicit denial, not a gap.
218
+ - **never** — non-interactive; failures return to the model and are never escalated to a human.
219
+
220
+ **Escalation flow (run-then-escalate):** under sandbox-first policies, run the command inside the
221
+ sandbox; on failure, offer the human an *explicit* escalation to re-run with additional permissions
222
+ or outside the sandbox. The escalated re-run must carry `user_explicitly_approved = true` through
223
+ the decision trace. Never let the model self-escalate; escalation is a human grant. Distinguish a
224
+ sandbox-caused failure (worth escalating) from a genuine command error (not worth escalating).
225
+
226
+ ## 8. Egress control via a local proxy
227
+
228
+ Network is granted at two layers that must agree:
229
+
230
+ - The OS sandbox **blocks all outbound network except the exact loopback address+port** of a local
231
+ proxy the runtime owns. With network "off", even that exception is omitted. "Allow loopback" is
232
+ *not* good enough — a broad loopback allowance lets commands reach the Docker socket, kubelet,
233
+ local databases, a browser remote-debug port, or other local agent APIs. Pin the single proxy
234
+ `host:port`; deny all other loopback and all non-loopback egress.
235
+ - The **local proxy enforces a per-destination allowlist** (host/port, protocol), so "network on"
236
+ still means "only approved domains". Inject the proxy's address into the child via the standard
237
+ proxy environment variables and require proxy-only networking when a managed network policy is
238
+ active.
239
+
240
+ This makes deny-by-default egress real, but **the enforcement must be at the kernel/network layer,
241
+ not env vars** — a child can unset proxy env vars and open a raw socket. The proxy env vars are a
242
+ convenience for proxy-aware clients; the *boundary* is a per-platform network confinement:
243
+ - **Linux** — network namespace with no route except the proxy, or nftables/iptables owner-scoped
244
+ egress rules, or an eBPF/cgroup egress filter.
245
+ - **Windows** — Windows Filtering Platform (WFP) rules scoped to the sandboxed token/AppContainer.
246
+ - **macOS** — Seatbelt network rules are coarse; if you cannot constrain egress to the single proxy
247
+ endpoint, route through a network namespace-equivalent (e.g. a per-task proxy with a hardened
248
+ client config) or **fail closed** rather than claiming egress is contained.
249
+ If no platform mechanism can enforce the block, treat network as unavailable, not open.
250
+
251
+ ## 9. Helper-process hardening
252
+
253
+ The process that applies the sandbox and the sandboxed child both need hardening. The child inherits
254
+ the parent's open resources unless you stop it, and an inherited resource is an exfil channel that
255
+ *bypasses both the filesystem and network sandbox* — an open authenticated socket, an SSH-agent fd,
256
+ a proxy fd, or a credential-bearing env var lets a "network off" command still reach the network or
257
+ read secrets. Before sandboxed exec:
258
+
259
+ - **Default-close every non-stdio file descriptor** (close-on-exec by default; pass only the fds the
260
+ child genuinely needs). Never let the child inherit the agent's API sockets or auth fds.
261
+ - **Start from a strict environment allowlist**, not the parent's full env. Strip credential-bearing
262
+ variables (cloud tokens, `SSH_AUTH_SOCK`, API keys) unless a specific task explicitly needs a
263
+ scoped, short-lived one.
264
+ - Drop ambient privileges before exec, and disable core dumps (a dump leaks the memory of a process
265
+ that handled secrets).
266
+ - Give helper processes bounded lifetime with orphan self-healing after a hard parent death. A
267
+ sandbox helper that outlives its parent or keeps the agent process alive is its own footgun.
268
+
269
+ ## 10. Persistent interactive process sessions (not just one-shot exec)
270
+
271
+ Sections 1–9 model a command as one shot: run, capture, exit. Agents also need **long-lived interactive
272
+ processes** — a REPL, a dev server, a debugger, a shell the model drives across several turns. That is a
273
+ different lifecycle, and the difference is where the bugs are.
274
+
275
+ - **Identify and reuse the process across tool calls — with an unforgeable, generation-bound handle.**
276
+ Allocate a handle on open; subsequent calls target that handle to write stdin and read new output,
277
+ instead of re-spawning. The handle must be **unguessable and bound to its generation + owner**, not a
278
+ small reused integer: when session 7 closes and the id is recycled, a delayed `write_stdin(7, "rm …")`
279
+ from an earlier turn must hit *nothing*, not whatever live process now holds id 7. Reject stale or
280
+ wrong-owner handles. Keep a registry of live processes keyed by that handle; allocate ids so concurrent
281
+ opens cannot collide. Run the *open* through the same approval → sandbox → escalate orchestration as a
282
+ one-shot (sections 5–7); the session inherits that decision — but re-authorize per the stdin rule below.
283
+ - **Read until quiescent, not until EOF.** A one-shot reads to process exit; an interactive process
284
+ stays alive, so "read until EOF" hangs forever. Read until the output goes idle for a short window (no
285
+ new bytes for N ms) or a per-call deadline elapses, then return what arrived and leave the process
286
+ running. Drive this off an output-arrival signal plus a timer, not a busy-poll. A write-stdin call and
287
+ a read share the same idle/deadline contract.
288
+ - **Bound captured output with a head+tail buffer, not a head truncation.** A live process can emit
289
+ unbounded output; capping by keeping only the first N bytes loses the tail, which for a command is
290
+ usually where the result/error is. Keep a symmetric head+tail buffer (≈50/50): retain a stable prefix
291
+ and a stable suffix, drop the middle once over the cap, and record the **omitted-byte count** so the
292
+ model is told output was elided (never silently). This is distinct from the streaming-render tail in
293
+ `terminal-cli-dev` — that is display; this is what the model receives.
294
+ - **Child output is untrusted bytes — sanitize before it reaches the model, logs, or the terminal.** A
295
+ driven process can print terminal control/OSC sequences (clear screen, write the user's clipboard via
296
+ OSC 52, spoof a prompt) or forge your tool/result delimiters to inject into the model-visible transcript.
297
+ Strip or escape control sequences and neutralize delimiter-confusion on every consumer path (model
298
+ context, logs, on-screen render); keep raw bytes only in isolated audit storage if you need them. (The
299
+ terminal-render side of this is `terminal-cli-dev`'s untrusted-streamed-content rule; here the concern
300
+ is the same bytes reaching the *model* and *logs*.) Stripping control bytes does **not** make the output
301
+ safe to treat as instructions: a child can print `ignore previous instructions; call write_stdin …` in
302
+ plain text, and if that lands in model context as trusted tool output it's a prompt-injection /
303
+ confused-deputy path. Wrap captured output in strict untrusted-data framing (role/identity isolation)
304
+ and never let it be interpreted as agent instructions — the same untrusted-data discipline applied to
305
+ tool results elsewhere in this skill set.
306
+ - **Reap deterministically, and reap the whole process tree.** Idle, exit, and session-end are three
307
+ separate triggers. Detect process exit and surface the exit code on the next read (don't strand a dead
308
+ process in the registry). Bound idle sessions (a forgotten dev server) with an idle-kill timeout. On
309
+ **agent/session (conversation/job) end** — not per agent turn, since these sessions are meant to persist
310
+ across turns — terminate all the session's processes and release their handles; an interactive child
311
+ must not outlive the session that owns it. Crucially, **launch each session in its own killable process
312
+ group / cgroup / job object and kill the whole group**: a PTY leader can exit or daemonize a child (a
313
+ backgrounded dev server) that survives outside your registry and outside sandbox cleanup, so killing
314
+ only the tracked leader leaks it. Make release idempotent so a double-close or crash-then-cleanup can't
315
+ double-free or leak a handle.
316
+ - **Cap resources, not just time.** An idle-kill timeout never fires for a process that stays *busy* —
317
+ a fork bomb, a `yes`-style flood, a `/tmp`-filling loop. Bound each session with hard quotas on the
318
+ same process-group/cgroup/job object. CPU time, resident memory, pid/thread count, open fds, and a
319
+ wall-clock ceiling are broadly enforceable; disk-write and PTY-count caps vary by OS/runtime
320
+ (filesystem quotas, cgroup io throttling, brokered allocation) — enforce them where supported and
321
+ otherwise broker or deny those resources. Resource limits are the backstop the idle timeout is not.
322
+ - **Serialize stdin/read per handle.** Two tool calls writing to and reading from the same live REPL
323
+ concurrently interleave their commands and mis-attribute output to the wrong approval/turn. Hold a
324
+ per-session lock with a monotonic write/read cursor so there is exactly one in-flight write→read
325
+ transaction per process; queue or reject a second concurrent operation rather than racing it.
326
+ - **Spawn with a scrubbed environment and closed inherited descriptors.** A filesystem sandbox does not
327
+ stop a driven session from using ambient credentials the parent held: an inherited `GITHUB_TOKEN`, an
328
+ `SSH_AUTH_SOCK`, or a leaked host file descriptor lets the child act with the agent's own authority.
329
+ Launch each session with an allowlisted minimal env (no secrets unless the task requires that exact
330
+ one) and close non-allowlisted inherited fds/sockets — the same least-privilege discipline as a hook
331
+ or auto-reviewer subprocess elsewhere in this skill set.
332
+ - **stdin is an authorization surface, and command-boundary classification is weak inside a REPL/editor.**
333
+ Writing stdin to a live process drives it somewhere the open-time approval never covered: an approved
334
+ `python` REPL runs `os.system("…")`, an approved editor runs `:!sh`, an approved shell runs anything.
335
+ A command classifier that parses an argv cannot reliably see these embedded escapes. So: **never expose
336
+ a persistent *unsandboxed* interactive session** (the session always keeps the sandbox it opened under —
337
+ an in-sandbox escape is contained, an unsandboxed one is not), and treat each stdin write as a fresh
338
+ authorization event, defaulting to **deny/ask on ambiguity** rather than trusting that a REPL/editor
339
+ input is benign. The OS sandbox, not the input parser, is the real boundary for what a driven session
340
+ can do; classification of stdin is best-effort on top of it, never a substitute.
341
+ - **Secret stdin must not echo, persist, or land in the transcript.** Writing a password/token into a
342
+ live `psql`/`ssh`/shell/REPL prompt is different from passing it as an env var: the child often echoes
343
+ it back, the shell saves it to history, and the read path captures it into the model-visible output and
344
+ logs — env-scrubbing (above) doesn't help because the secret arrives via stdin, not the environment.
345
+ Classify secret-bearing stdin and deliver it non-echoed (a no-echo pipe / askpass-style channel),
346
+ redact any matching echo from every transcript/log surface (the redaction non-negotiable below applies
347
+ to *input* echoes too, not just command output), and disable or purge interactive history for sessions
348
+ that receive secrets.
349
+ - **A PTY lets the child inject its own input — close that path.** With a controlling terminal a child can
350
+ push bytes straight into its own input queue (`TIOCSTI` and equivalents), running commands with **no**
351
+ `write_stdin` authorization event at all — the authorization surface above is bypassed entirely. Block
352
+ terminal input-injection at the kernel/sandbox layer (seccomp-filter the ioctl, or run without a
353
+ controlling TTY unless the task genuinely needs one). Reliably *detecting* all non-write-path input is
354
+ not portable, so don't promise universal detection — block the known injection primitives, and where
355
+ unexpected/out-of-band input is observable, treat it as a session compromise and kill the session. This is why a PTY session is strictly more
356
+ dangerous than a plain stdin pipe and must stay sandboxed.
357
+ - **A live session can grow its own command channel — bind it under the egress controls.** Even with
358
+ stdin and TTY-injection closed, a persistent child can open a socket or debug/IPC server (bind a
359
+ localhost or network port, a debugger listener, a control FIFO) and take commands through *that*,
360
+ bypassing `write_stdin` authorization and the session handle entirely. Deny inbound listeners by
361
+ default and route any allowed bind through the same per-session network policy as §8 — here the listen/bind
362
+ (ingress) side, controlled separately from egress (allowlist specific ports with sandbox/firewall
363
+ enforcement, kill on an unapproved bind). A persistent session is
364
+ not just longer-lived than a one-shot — it has more time and more surface to open a side channel, so
365
+ its network posture must be at least as locked down as a one-shot's, not relaxed for convenience.
366
+ - **Bind the session to an authorization/policy generation; a long-lived session must not act under stale
367
+ authority.** A one-shot is authorized once and gone; a persistent session outlives the policy that
368
+ opened it. If the user revokes a scope, the sandbox profile tightens, a credential is rotated, or
369
+ approval mode changes, an already-open session otherwise keeps its old capabilities/fds/sandbox and
370
+ keeps acting under the *old* authority on every later stdin write. Stamp each session with the
371
+ authorization/policy generation it opened under; on any policy/credential/sandbox change, suspend or
372
+ kill sessions whose generation is now stale unless they are explicitly re-approved under the new
373
+ generation. (Same generation-binding discipline as approval single-use and the retry/re-render tuple
374
+ elsewhere in this skill set — a persistent process is just a long-lived holder of an authorization that
375
+ can go stale.) The OS-isolation strength of that sandbox is §1–§4's job, and it matters more for a
376
+ persistent session than a one-shot: a long-lived same-UID child has time to use `ptrace`/`/proc`/
377
+ same-UID IPC to inspect or drive the agent or a sibling session. Isolate sessions from each other and
378
+ from the agent (per-session UID or user/PID namespace, deny cross-tree ptrace/procfs) under §1–§4 —
379
+ don't rely on the session-lifecycle rules here to provide that containment.
380
+
381
+ ## Non-negotiables
382
+
383
+ - The kernel sandbox and a closed process surface are the only real boundaries; path/basename/string
384
+ checks are advisory and must never be the sole gate for an irreversible or exfil-capable action.
385
+ - Auto-approve only when a sandbox is actually enforceable on this platform; otherwise ask or
386
+ reject. Unavailable/disabled/bypassed/excluded-command sandbox states never imply allow.
387
+ - Never resolve the OS sandbox launcher (`sandbox-exec`, the helper binary) through `PATH`.
388
+ - Never allowlist an interpreter, shell, or wrapper prefix; every auto-`allow` rule must bind to a
389
+ trusted absolute executable path, and must deny exec-escape flags (`find -exec`, `git -c`,
390
+ `tar --checkpoint-action`, `ssh -o ProxyCommand`, …) — basename match alone is a bypass.
391
+ - Filesystem write and network access are separate grants; default network off in write profiles.
392
+ - Reads are a confidentiality boundary too: deny-by-default the sensitive credential/key/browser/
393
+ agent paths and validate auto-approved read targets against a read allowlist — broad read + any
394
+ exfil channel (stdout, artifacts, model context) leaks secrets.
395
+ - Egress is enforced at the kernel/network layer scoped to the single proxy `host:port`, never by
396
+ proxy env vars alone and never as a broad "allow loopback"; fail closed if the platform cannot
397
+ enforce it.
398
+ - Close all non-stdio FDs and start from an env allowlist before sandboxed exec; an inherited
399
+ socket, agent fd, or credential env var bypasses both sandboxes.
400
+ - Authenticate helper/sandbox-launcher invocations so a child cannot re-enter helper mode with
401
+ looser attacker-chosen policy.
402
+ - Protect VCS hooks/config, agent config, and on-disk policy as read-only even inside writable
403
+ roots; account for hard-link/symlink escape and the check-vs-write (TOCTOU) race — prefer kernel
404
+ enforcement or race-safe `openat2`/`O_NOFOLLOW` over validate-then-write.
405
+ - `external-sandbox` pass-through requires attesting the outer boundary; unattested → inner sandbox
406
+ or fail closed.
407
+ - Refresh sandbox/policy configuration synchronously after any permission, settings, or
408
+ writable-root change so a pending command cannot slip through stale policy.
409
+ - A policy DSL that fails its own inline `match`/`not_match` examples must fail to load.
410
+ - Apply secret/path redaction to *all* model- and user-visible surfaces (stdout/stderr, generated
411
+ artifacts, test snapshots, approval prompts, logs), not only structured diagnostics. Diagnostics
412
+ themselves may expose sandbox type, decision category, and policy layer, but never raw command
413
+ strings, local paths, env values, proxy targets, or credentials.
414
+
415
+ ## Routing
416
+
417
+ - The authorization *decision trace*, deny/ask/allow precedence, and "sandbox is defense-in-depth
418
+ not permission" rule live in `SKILL.md` Core Workflow — this reference is the enforcement layer
419
+ beneath them.
420
+ - Network path/egress transport identity and mTLS for the proxy hop → `platform-service-connectivity`.
421
+ - Rollout of a behavior-changing default approval mode or sandbox profile → `platform-release-engineering`.
422
+ - Decision-trace signal schema and egress-block telemetry → `platform-observability`.
423
+ - Reproducing a sandbox escape, stale-policy slip, or escalation bug → `defect-diagnosis`.
424
+ - Terminal approval prompts / escalation UX rendering → `terminal-cli-dev`; the terminal UI that *displays* an interactive process's stream is also `terminal-cli-dev` (§10 here owns the agent-side process-session lifecycle, not its on-screen rendering).
425
+ - Session-end cleanup that terminates all live processes is invoked by the turn/session terminator in `agent-turn-lifecycle.md`; §10 owns the per-process lifecycle it calls.
426
+
427
+ ## Shell execution authorization
428
+
429
+ Shell execution needs command-aware authorization, not string-prefix trust. Parse compound commands, operators, wrappers, environment assignments, redirections, heredocs, substitutions, and platform-specific expansion forms with a fail-closed path when parsing is unavailable, too complex, or divergent. Deny rules take precedence over ask/allow, dangerous or destructive operations require explicit approval, reusable allow suggestions must avoid bare shell or broad wrapper prefixes, and command fanout must be bounded. Read-only classification must validate flags and subcommands that can execute code, write files, perform network access, or change the effective binary/resource target.
430
+
431
+ ## Filesystem write authorization
432
+
433
+ Filesystem writes must be authorized at the resource boundary and checked again immediately before mutation. Normalize observable paths for matching, but preserve user-visible input only after authorization; validate containment for absolute/relative paths, traversal, encoded or Unicode-normalized traversal, null bytes, platform path forms, glob and end-of-options behavior, symlink/hardlink and time-of-check/time-of-use swaps, and output redirections. Require prior full reads for overwrite/edit tools, reject stale or partially read files, re-check modification time/content in the no-await critical section before write, block denied settings or policy files, guard secret-bearing stores, and record undo/history or diff evidence when the surface supports it.
434
+
435
+ ## Sandbox enforcement as defense-in-depth
436
+
437
+ Sandbox enforcement is defense-in-depth, not permission. Sandbox enabled, disabled, unavailable, bypassed, excluded-command, managed-lock, dependency-missing, network-proxy, or platform-unsupported states must be explicit in the decision trace. Auto-allow for sandboxed execution is valid only after deny/ask rules, path/resource validation, and sandbox configuration freshness are checked; unsandboxed fallback, unavailable sandbox dependencies, excluded commands, weaker isolation, or user-requested bypass must not imply permission allow. Refresh sandbox configuration synchronously after permission or settings changes so pending commands cannot slip through stale policy. For the enforcement layer beneath this decision — OS-sandbox composition (Seatbelt/Landlock+seccomp/bubblewrap/Windows restricted-token), named sandbox profiles, writable-root privilege-escalation carve-outs, hard-link escape, the loopback-only egress proxy, the command-policy DSL, and the run-then-escalate state machine — see `references/agent-command-sandbox.md`.
438
+
439
+ ## Model-driven host OS, desktop, or GUI control
440
+
441
+ Treat model-driven host OS, desktop, or GUI control as a high-risk local action control plane, not an ordinary tool surface. Bind every control session to principal, workspace, host identity where available, session/incarnation, platform and capability generation, permission/access grant generation, tool-schema generation, display/screenshot generation, coordinate mode, native bridge generation, abort-signal generation, and cleanup generation. Separate permission discovery or access-request tools from action tools: discovery may check and explain access without acquiring exclusive control, hiding applications, installing global hotkeys, reading clipboard, sending input, or changing focus. Real control requires a single-owner lock or equivalent lease with atomic acquire, re-entrant same-session behavior, live-owner detection, stale-lock recovery, and owner-bound release; blocked sessions must surface visible uncertainty rather than running concurrently. Screenshot, display, target-app, and coordinate state must be captured under one stable generation; coordinate mode and image-resize policy cannot drift after tool descriptions or model-visible hints are rendered. Any host state mutation needs paired finality: hidden or defocused apps restored, modifier keys and mouse buttons released even on partial failure, clipboard writes read-back verified before paste and restored afterward where possible, global abort hotkeys unregistered, native event-loop pumps stopped, and locks released on normal turn end, abort during streaming, abort during tool execution, shutdown, and cleanup failure paths. Native or OS calls need platform/support checks, bounded timeouts, late-result suppression, and best-effort cleanup that cannot mask the primary failure or leave a broader active control session. Diagnostics may expose bounded categories, counts, capability states, and non-reversible digests, but not screen contents, app names, window titles, clipboard text, local paths, raw coordinates tied to private displays, credentials, command lines, bundle ids, environment values, or free-form native errors.
@@ -0,0 +1,47 @@
1
+ # Agent Ambient Context Freshness
2
+
3
+ How an agent keeps ambient "world state" — working directory, environment, project-contract files (e.g. `AGENTS.md`/`CLAUDE.md`), available tools/skills/plugins, network/filesystem posture — fresh in the model's context across a long multi-turn session, without re-injecting everything every turn and without leaving stale state the model still believes. This is a distinct concern from the durable event log (`agent-session-persistence.md`) and from instruction precedence/trust (`agent-instruction-composition.md`); it owns the *staleness-detection and refresh* layer that sits between them, and defers precedence, authority, and untrusted-data decisions to that instruction-composition owner rather than re-deciding them.
4
+
5
+ ## Model context in three classes, not one
6
+
7
+ Split model-input context by *how it changes*, and treat each class differently:
8
+ - **One-shot fragments** — injected once and not tracked for change (a skills-usage preamble, a one-time notification). Push these into the initial context.
9
+ - **Diffable ambient sections** — cwd/environment, project-contract files, tool/skill/plugin availability. This is the only class with a persisted baseline and a change-detection lifecycle (below).
10
+ - **Volatile per-step signals** — values that change almost every turn (remaining-token count, a deadline, transient status). These are NOT one-shot (they go stale after one turn) and usually not worth diffing; emit them fresh each turn (or on a TTL/generation) and mark them ephemeral — in a prompt-reassembly runtime, drop the prior turn's volatile line when assembling; in an append-only transcript, emit the newest value as superseding — but older copies remain model-visible and potentially influential until compaction removes them, so make the fragment type self-recognizing (below) so compaction can drop them. The *static* budget contract can be one-shot; the *remaining* count is a per-step signal.
11
+
12
+ Rebuild the diffable ambient state **fresh from live runtime state every step**, reading as coherently as the sources allow — there is no truly atomic snapshot across process state, externally-edited files, plugin registries, and network posture, so use a generation/seqlock for runtime-owned state and a version-before/version-after check with bounded retry for external sources; render `unknown` when a coherent read can't be obtained rather than mixing values from different instants. Then reduce to a delta against the last model-visible baseline. Distinguish `unknown`/read-error from `absent`: a transient failure to read a contract file is not "the file was removed," and must not render a removal notice. Inject full state at window initialization and whenever the baseline is missing, invalid, or reset; steady-state turns with a valid baseline emit only what changed.
13
+
14
+ ## Detect staleness by a comparison-snapshot, not by re-reading the rendered text
15
+
16
+ Give each ambient section two halves: a compact serializable **snapshot** for equality comparison, and a separate **render-diff** that produces model-visible text when the snapshot differs. Persist and compare the snapshot; never diff rendered prose. Change detection is then cheap, deterministic, and small enough to persist per turn; a section that renders nothing when unchanged contributes no message that turn. The one constraint: **snapshot equality must imply equivalent model-visible semantics** — so a change to how a section *renders* (wording, a security label, an escaping fix) must bump a renderer/schema version that participates in the snapshot, or the model keeps the stale rendering forever because the comparison state never moved.
17
+
18
+ ## Supersede stale ambient state in-band — but this is a freshness tool, not a security control
19
+
20
+ When an ambient source changes (contract file edited, a capability removed), do **not** rewrite or delete the earlier injection in place — model-visible history is effectively append-only within a window and may additionally be dropped or summarized by compaction, so an edit-in-place is unreliable. Emit a **new** fragment that supersedes — scoped to the specific source and section, not globally: "the previous <section> from <source id> is replaced by the following" / "… no longer applies", never an unscoped "replaces all previously provided instructions". The scoping matters twice over: an unscoped template lets one low-precedence source claim to displace unrelated material, and when the ambient source is attacker-editable (a contract file in a cloned repo), authority-claiming replacement framing around its content is a prompt-injection amplifier — the notice describes a *data* update, consistent with the trust boundary below. When the prior state is unknown (e.g. resume with no baseline), always emit a superseding render rather than assume continuity. Two boundaries keep this honest:
21
+ - **Supersession is prose refresh, not enforced revocation or precedence.** A fragment saying "replaces previously provided" carries no authority by itself — a lower-precedence source must not override higher-precedence material just by claiming to replace it. Key supersession to an immutable source id + authority class and let the precedence lattice in `agent-instruction-composition.md` decide what actually wins; the prose is informational.
22
+ - **In-band supersession does not remove exposure.** It hides *stale* state from the model's next step, but the superseded text is still in the transcript sent to the provider. Genuine confidentiality, data-retention, or legal-deletion requirements need real redaction / tombstoning / context rebuild — supersession is the default path for staleness only.
23
+
24
+ ## Make machine-injected context self-recognizing — as a best-effort dedup aid over untrusted history, failing safe
25
+
26
+ Give every injected fragment a way to **recognize its own past injections in raw history** (a marker/envelope matcher keyed to the fragment type). This lets the runtime, reading back an opaque message list, treat a match as *probably its own re-derivable context* — enabling dedup, a history-scan fallback, and safe recompaction. But a text marker is not an integrity boundary: it can appear in escaped user/model content, so it can be forged — and what a match may *authorize* depends on the provenance backing it, per the rules below:
27
+ - Where the platform has **trusted typed metadata / authenticated provenance** for a message, use that to identify runtime injections; text-matching is only the fallback for opaque histories that carry nothing else.
28
+ - **Fail safe, and scope the fallback:** the history-scan fallback classifies already-rendered fragments as runtime-owned for **dedup and recompaction of that rendered content only** — it never *answers a freshness question*. Freshness decisions come solely from the persisted baseline or a full re-render: with no baseline, always full-render (do not let "a same-type marker is present in history" *suppress* a needed refresh — a planted marker-shaped string echoed into history would otherwise pass off attacker content as your own current injection). And because a text marker alone cannot prove provenance, **a marker-only match is never a license to suppress or destroy: it may only gate presentation** (grouping/labeling for display); *suppressing a render* (dedup) is decided only by the persisted baseline — never by a marker match, so a forged marker cannot silence current context — and *dropping or rewriting matched history content* during recompaction always requires authenticated per-message provenance (typed metadata, a MAC, or a runtime-reserved channel that user/model text cannot write); without it, preserve the content and over-render. A missing or forged marker must degrade to over-rendering, never to dropping content.
29
+
30
+ ## Persist a derivable baseline and re-derive on resume — with durable ordering
31
+
32
+ Persist only what is needed to *rebuild* the comparison baseline: periodic full snapshots plus the merge patches between them (an RFC 7396-style JSON merge patch fits — a member set to `null` means delete, arrays are replaced wholesale rather than merged; see RFC 7396, which obsoletes RFC 7386). Because `null` is reserved for deletion, **snapshots must not carry literal `null` values — encode them** (a sentinel/wrapper that round-trips). Do not simply drop them: a dropped null is indistinguishable from absent, and a value→null transition would emit a *delete* patch — "set to empty/null" would render to the model as "removed", the same conflation the `unknown`-vs-`absent` rule above exists to prevent. The rendered fragment *text* rides along as ordinary history; the baseline is separate derived state. On resume, rebuild the baseline by replaying snapshot+patches **chronologically**, not by re-parsing rendered prose. Invariants:
33
+
34
+ - **Durability ordering under a single writer per session.** Context assembly for a session is single-writer (the same one-live-writer invariant `agent-session-persistence.md` establishes) — rely on that rather than reconciling concurrent baseline writers. Given it, the history item must be *durably committed* before the baseline advance is persisted (or both in one transaction / one derivable log event): rendering into memory first is not enough, because with an async writer a crash can ack the baseline while losing the history item, leaving a baseline that claims the model saw context it never did.
35
+ - **Bound the patch chain.** Force a fresh full snapshot on a count/byte budget so resume replay stays bounded (array-replacement patches can each re-persist a whole list); validate a sequence/checksum, and a patch with no preceding full snapshot is a corrupt/old record — drop it and full-render, never apply it to an empty baseline.
36
+ - **Key the baseline by context-window generation and reset it atomically on compaction.** Compaction / a new window forces a full re-inject; commit the compacted-history replacement, the generation bump, and the baseline reset as **one durable event** (or derive all three from a single compaction record) — a crash between "history replaced" and "baseline reset" otherwise leaves a valid-looking old baseline against replaced history, and the next turn emits nothing. Sessions persisted by older code with no baseline must full-render on resume rather than fail.
37
+
38
+ This is the ambient-context analogue of "restore derived accounting, not just messages" in `agent-session-persistence.md`; keep the durable-log ownership there and the staleness/merge-patch mechanics here.
39
+
40
+ ## Keep budget *signaling* in this layer and budget *enforcement* in the compaction layer — with an aggregate backstop
41
+
42
+ Emitting window ids, remaining-token counts, and guidance is **signaling** — telling the model its headroom. It is not the **enforcement** that reclaims space (compaction, a new-window reset), and the two must not be conflated: don't let the context-assembly layer silently truncate or re-prioritize whole ambient sections as its normal behavior. But signaling alone is not a bound — when the *mandatory* ambient state at full render already approaches the window (many individually-bounded values still exceed it in aggregate), there must be an **aggregate token/byte/count budget with an explicit required-vs-optional priority and a visible omission/failure signal**, or you get an unresolvable compaction loop or a failed model call. So: enforce a per-value elision (e.g. fixed middle-elision on an oversized single blob) *and* an aggregate cap that sheds optional sections first and surfaces what it dropped, reserving space for that omission/error envelope; delegate reclamation of *conversational* history to the compaction layer. Elision is never silent: surface what a per-value elision cut just as the aggregate cap surfaces shed sections, and **policy/permission/security-bearing content is never elided at all** — an adversary who can pad a contract file must not be able to push its deny-rules into the elided middle while the turn proceeds; such a section that cannot fit whole takes the error branch. Define the required-overflow branch explicitly: when the mandatory sections alone still exceed the budget after their allowed bounded representation, fail the turn with a typed error — never call the model having silently dropped required context.
43
+
44
+ ## Trust boundary: ambient content is data; markers and source labels are not authority
45
+
46
+ - Ambient sources — contract files, environment values, user-supplied context — are injected **as data**, not trusted instructions. The marker envelope is for self-recognition/supersession, **not** a trust boundary: escaping interpolated values prevents envelope forgery but does not grant the content authority. Route precedence and untrusted-data handling to `agent-instruction-composition.md`; do not re-decide it here.
47
+ - A **hidden/invisible model-steering channel** (context an extension injects with no user-facing surface) is an authority-escalation risk, and a validated source-label character set only makes abuse *auditable*, it does not *authenticate* the injector. Bind the label to an authenticated injector principal (a runtime-assigned label, not a self-declared string), scope the injection's content/destination/expiry, record it in durable auditable history ("hidden" must never mean "untracked"), and enforce "may not grant permissions or override policy" at the permission floor / precedence lattice — not as unenforced prose in the steering fragment itself.
@@ -0,0 +1,13 @@
1
+ # Agent Credentials And Local Authorization
2
+
3
+ ## Credential, token, and control-plane secret handling
4
+
5
+ Credential material, session tokens, and control-plane secrets must never enter model-visible context, transcripts, tool-call payloads, reconnect history, persisted session state, logs, telemetry, or crash reports. Redact at the emission boundary and route cross-service log/trace field policy to `platform-observability`.
6
+
7
+ ## Browser-launched local authorization flows
8
+
9
+ Browser-launched local authorization flows are runtime credential control planes, not login UI plumbing. Bind each authorization code to the exact flow attempt: provider or authorization-server identity, client or client-registration identity, audience/resource identity, auth source, auth-policy generation, storage backend or cache namespace, verifier/challenge, CSRF state, redirect URI, callback listener identity, callback path, manual versus automatic mode, requested scope set, principal/account/tenant/organization/workspace tuple with explicit none markers, callback attempt id, callback transport generation, credential generation, policy/capability generation, abort signal, and token-exchange attempt id. Reject missing, duplicate, late, stale, canceled, timed-out, failed, wrong-state, wrong-path, wrong-host, wrong-port, wrong-mode, wrong-tuple, or post-success callbacks; close the listener and resolve any pending browser response exactly once on success, failure, manual-code fallback, timeout, abort, or process shutdown. Token, refresh-token, account, scope, subscription/entitlement, profile, remote-config, telemetry-targeting, connector-header, prompt/context, tool-schema, runtime, and model-visible capability caches must be single-flight where needed, invalidated or generation-fenced after login, logout, account switch, re-enrollment, scope drift, token-file or secure-storage drift, token revocation, refresh failure, entitlement drift, profile correction, discovery change, auth-source drift, privacy/trust change, or storage-namespace drift, and updated without clobbering a known-good account or entitlement field with transient profile-fetch failure. Every token exchange, refresh, profile fetch, entitlement fetch, config rebuild, telemetry callback, and cache write must carry the current auth/session/cache generation and drop or fail closed if the tuple changed before commit. Refresh must use re-read-after-lock and newest-token behavior where possible, re-check storage before clearing credentials on invalid grants, retry only bounded transient failures, and never elevate scope when the required scope changed. A credentialed request that receives an unauthorized response must re-read and revalidate current storage before clearing credentials, prompting login, or retrying under a stale credential generation, because another process may already have refreshed or revoked the token set. Telemetry or analytics paths must degrade or fall back without using expired, unsupported, or tuple-mismatched credentials and without changing model-visible capability state. Preserve previous profile/account/entitlement cache only for explicitly non-authoritative transient failures, never to override newer deny, opt-out, logout, account switch, revocation, or trust downgrade. Any auth fact tuple change, including scope expansion during refresh, is a policy change: revalidate the account tuple, clear or generation-fence prompt/tool/runtime/model-visible auth caches that depend on auth facts, and require fresh execution-time authorization for model-visible capabilities. Diagnostics may expose bounded outcome categories, grant class, storage class, retry/lock counts, cache outcome, and sanitized error class, but not callback URLs, codes, state, verifier/challenge values, access or refresh tokens, headers, cookies, profile or entitlement payloads, account emails, stable user or organization identifiers, local ports for live listeners, endpoint details, credentials, or free-form provider responses.
10
+
11
+ ## Remote-session refresh and reconnect
12
+
13
+ Remote-session refresh and reconnect paths must be single-flight per session when a refresh changes server-side session generation, worker epoch, lease, credential, or sequence state. Treat token refresh scheduling as a session control plane: bind every scheduled, immediate, follow-up, and auth-failure refresh to session id, session incarnation, credential generation, transport incarnation, refresh attempt id, expiry or TTL source, abort/teardown generation, and sequence high-watermark. A proactive refresh and an auth-failure recovery must not both mint credentials, rotate credentials, renew leases, replace transport credentials, or advance server-side generation; claim mutual exclusion before any remote fetch that can change credentials, lease, epoch, sequence, or transport incarnation. JWT expiry decode failure or opaque-token refresh must preserve an existing valid refresh chain rather than cancel it; explicit TTL scheduling needs floors/caps that prevent tight loops and buffer-vs-delay inversion. Missing access tokens, refresh errors, and credential-fetch failures need bounded retry, terminal degraded state, and metadata-only diagnostics, not unbounded timers or model-visible credential details. Late async refresh completions after reschedule, cancel, teardown, session/workspace/account/privacy drift, or generation mismatch must not deliver credentials, rebuild transport, re-arm timers, or mutate baselines. Any refresh that changes transport credentials or server epoch must rebuild the transport under a new incarnation, carry forward only a verified sequence high-watermark, gate queued writes and history flushes during the swap, drain only into the matching rebuilt transport, and fail with visible uncertainty if final delivery is unknown. Shutdown archive, terminal-result, and final-history flushes that hit expired credentials need at most a bounded, generation-fenced credential refresh/retry within the shutdown budget; if durable archive or delivery proof is not observed before cleanup closes the transport, report unknown finality rather than delivered success.
@@ -0,0 +1,13 @@
1
+ # Agent Dynamic Extensions And Skills
2
+
3
+ ## Dynamic extensions and locally loaded skills
4
+
5
+ Treat dynamic extensions, locally loaded skills, connector-discovered skills, and extension-provided commands/hooks/tool servers as a model-visible capability control plane. Classify every contribution by source type, principal/workspace scope, manifest/schema version, trust level, enabled or disabled state, policy owner, install path, session-only versus persisted lifetime, and whether it can inject instructions, run code, alter settings, or expose tools. Disabled, unavailable, policy-blocked, dependency-demoted, plugin-only-restricted, or cache-missing sources must not contribute model-visible descriptions, tools, hooks, settings, or prompt content.
6
+
7
+ ## Extension install, update, and reload
8
+
9
+ Extension install, update, and reload paths need explicit cache and trust semantics. Never let a cache-only startup path fetch or install fresh remote code; never let a full refresh satisfy a later cache-only caller with stale policy or settings state unless the refreshed result also cleared dependent prompt, tool, settings, and skill caches. Preserve a session snapshot for already-running agents when background updates write a new disk version; require an explicit reload, restart, or generation change before the model sees the new capability set. Path materialization must validate catalog/source-relative paths, reject traversal, sanitize cache path components, remove or ignore source-control metadata, and treat symlink, dangling symlink, hardlink, archive extraction, and preloaded-cache containment as security boundaries. Materialize updates in a staging location, validate containment and manifests before publication, publish by atomic generation swap, reject incomplete markers, keep the prior valid generation until the new one is proven loadable, and fail closed rather than booting from a damaged capability graph. User/session-supplied extension directories may override ordinary installed sources only within that session; managed or policy-locked sources win even when local paths collide.
10
+
11
+ ## Extension manifests and skill bodies as untrusted
12
+
13
+ Treat extension manifests, skill frontmatter, and skill bodies as untrusted routing and instruction metadata unless their source has been reviewed under the active trust policy. Validate JSON/YAML shape, names, duplicate capability identifiers, path filters, allowed-tool declarations, model or effort selectors, shell settings, hooks, settings overlays, bundled tool-server definitions, and prompt-like instruction content before they enter routing or execution. Remote, connector-supplied, workspace-local, session-supplied, or otherwise unreviewed skills must not execute inline shell, hook commands, shell-capable command blocks, or bundled code unless they have an explicit reviewed execution policy; local bundled code still needs declared capabilities, short-lived credentials, sandboxing, and execution-time authorization. Skill/extension descriptions are routing inputs, not authority: they may affect model selection but must not grant permissions, widen tool scope, bypass human approval, or override system/developer/current-user policy.