claudecode-omc 5.11.0 → 5.13.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 (448) hide show
  1. package/.local/skills/prompt-pilot/SKILL.md +258 -0
  2. package/bundled/manifest.json +3 -3
  3. package/bundled/upstream/anthropic-skills/.omc-source/bundle.json +2 -2
  4. package/bundled/upstream/anthropic-skills/.omc-source/provenance.json +394 -390
  5. package/bundled/upstream/anthropic-skills/skills/claude-api/SKILL.md +60 -29
  6. package/bundled/upstream/anthropic-skills/skills/claude-api/csharp/claude-api.md +46 -1
  7. package/bundled/upstream/anthropic-skills/skills/claude-api/curl/examples.md +2 -2
  8. package/bundled/upstream/anthropic-skills/skills/claude-api/curl/managed-agents.md +3 -1
  9. package/bundled/upstream/anthropic-skills/skills/claude-api/go/claude-api.md +23 -4
  10. package/bundled/upstream/anthropic-skills/skills/claude-api/java/claude-api.md +32 -3
  11. package/bundled/upstream/anthropic-skills/skills/claude-api/php/claude-api.md +27 -0
  12. package/bundled/upstream/anthropic-skills/skills/claude-api/python/claude-api/README.md +123 -7
  13. package/bundled/upstream/anthropic-skills/skills/claude-api/python/claude-api/batches.md +13 -0
  14. package/bundled/upstream/anthropic-skills/skills/claude-api/python/claude-api/files-api.md +7 -2
  15. package/bundled/upstream/anthropic-skills/skills/claude-api/python/claude-api/streaming.md +18 -1
  16. package/bundled/upstream/anthropic-skills/skills/claude-api/python/managed-agents/README.md +9 -7
  17. package/bundled/upstream/anthropic-skills/skills/claude-api/ruby/claude-api.md +27 -0
  18. package/bundled/upstream/anthropic-skills/skills/claude-api/shared/agent-design.md +1 -1
  19. package/bundled/upstream/anthropic-skills/skills/claude-api/shared/anthropic-cli.md +246 -0
  20. package/bundled/upstream/anthropic-skills/skills/claude-api/shared/claude-platform-on-aws.md +59 -0
  21. package/bundled/upstream/anthropic-skills/skills/claude-api/shared/error-codes.md +24 -4
  22. package/bundled/upstream/anthropic-skills/skills/claude-api/shared/live-sources.md +8 -0
  23. package/bundled/upstream/anthropic-skills/skills/claude-api/shared/managed-agents-api-reference.md +48 -4
  24. package/bundled/upstream/anthropic-skills/skills/claude-api/shared/managed-agents-client-patterns.md +3 -1
  25. package/bundled/upstream/anthropic-skills/skills/claude-api/shared/managed-agents-core.md +15 -1
  26. package/bundled/upstream/anthropic-skills/skills/claude-api/shared/managed-agents-environments.md +10 -6
  27. package/bundled/upstream/anthropic-skills/skills/claude-api/shared/managed-agents-events.md +25 -0
  28. package/bundled/upstream/anthropic-skills/skills/claude-api/shared/managed-agents-onboarding.md +48 -18
  29. package/bundled/upstream/anthropic-skills/skills/claude-api/shared/managed-agents-overview.md +8 -5
  30. package/bundled/upstream/anthropic-skills/skills/claude-api/shared/managed-agents-scheduled-deployments.md +144 -0
  31. package/bundled/upstream/anthropic-skills/skills/claude-api/shared/managed-agents-self-hosted-sandboxes.md +2 -1
  32. package/bundled/upstream/anthropic-skills/skills/claude-api/shared/managed-agents-tools.md +46 -9
  33. package/bundled/upstream/anthropic-skills/skills/claude-api/shared/model-migration.md +259 -3
  34. package/bundled/upstream/anthropic-skills/skills/claude-api/shared/models.md +17 -9
  35. package/bundled/upstream/anthropic-skills/skills/claude-api/shared/prompt-caching.md +55 -3
  36. package/bundled/upstream/anthropic-skills/skills/claude-api/shared/token-counting.md +56 -0
  37. package/bundled/upstream/anthropic-skills/skills/claude-api/shared/tool-use-concepts.md +22 -2
  38. package/bundled/upstream/anthropic-skills/skills/claude-api/typescript/claude-api/README.md +45 -6
  39. package/bundled/upstream/anthropic-skills/skills/claude-api/typescript/claude-api/streaming.md +1 -1
  40. package/bundled/upstream/anthropic-skills/skills/claude-api/typescript/managed-agents/README.md +10 -12
  41. package/bundled/upstream/anthropic-skills/skills/frontend-design/SKILL.md +39 -26
  42. package/bundled/upstream/ecc/.omc-source/bundle.json +2 -2
  43. package/bundled/upstream/ecc/.omc-source/manifests/.claude-plugin/marketplace.json +2 -2
  44. package/bundled/upstream/ecc/.omc-source/provenance.json +602 -550
  45. package/bundled/upstream/ecc/agents/agent-evaluator.md +206 -0
  46. package/bundled/upstream/ecc/agents/performance-optimizer.md +9 -9
  47. package/bundled/upstream/ecc/agents/php-reviewer.md +109 -0
  48. package/bundled/upstream/ecc/agents/spec-miner.md +217 -0
  49. package/bundled/upstream/ecc/agents/vue-reviewer.md +206 -0
  50. package/bundled/upstream/ecc/commands/cost-report.md +58 -84
  51. package/bundled/upstream/ecc/commands/epic-claim.md +26 -0
  52. package/bundled/upstream/ecc/commands/epic-decompose.md +23 -0
  53. package/bundled/upstream/ecc/commands/epic-publish.md +23 -0
  54. package/bundled/upstream/ecc/commands/epic-review.md +23 -0
  55. package/bundled/upstream/ecc/commands/epic-sync.md +23 -0
  56. package/bundled/upstream/ecc/commands/epic-unblock.md +22 -0
  57. package/bundled/upstream/ecc/commands/epic-validate.md +22 -0
  58. package/bundled/upstream/ecc/commands/instinct-status.md +8 -8
  59. package/bundled/upstream/ecc/commands/multi-backend.md +2 -0
  60. package/bundled/upstream/ecc/commands/multi-execute.md +2 -0
  61. package/bundled/upstream/ecc/commands/multi-frontend.md +2 -0
  62. package/bundled/upstream/ecc/commands/multi-plan.md +2 -0
  63. package/bundled/upstream/ecc/commands/multi-workflow.md +2 -0
  64. package/bundled/upstream/ecc/commands/orch-add-feature.md +36 -0
  65. package/bundled/upstream/ecc/commands/orch-build-mvp.md +36 -0
  66. package/bundled/upstream/ecc/commands/orch-change-feature.md +38 -0
  67. package/bundled/upstream/ecc/commands/orch-fix-defect.md +38 -0
  68. package/bundled/upstream/ecc/commands/orch-refine-code.md +39 -0
  69. package/bundled/upstream/ecc/commands/quality-gate.md +34 -16
  70. package/bundled/upstream/ecc/commands/vue-review.md +174 -0
  71. package/bundled/upstream/ecc/skills/accessibility/SKILL.md +2 -1
  72. package/bundled/upstream/ecc/skills/agent-architecture-audit/SKILL.md +2 -1
  73. package/bundled/upstream/ecc/skills/agent-eval/SKILL.md +2 -1
  74. package/bundled/upstream/ecc/skills/agent-harness-construction/SKILL.md +2 -1
  75. package/bundled/upstream/ecc/skills/agent-introspection-debugging/SKILL.md +2 -1
  76. package/bundled/upstream/ecc/skills/agent-payment-x402/SKILL.md +2 -1
  77. package/bundled/upstream/ecc/skills/agent-self-evaluation/SKILL.md +182 -0
  78. package/bundled/upstream/ecc/skills/agent-self-evaluation/examples/high-score-example.md +87 -0
  79. package/bundled/upstream/ecc/skills/agent-self-evaluation/examples/low-score-example.md +86 -0
  80. package/bundled/upstream/ecc/skills/agent-self-evaluation/references/evaluation-criteria.md +71 -0
  81. package/bundled/upstream/ecc/skills/agent-self-evaluation/references/hook-integration.md +64 -0
  82. package/bundled/upstream/ecc/skills/agent-self-evaluation/scripts/evaluate.py +408 -0
  83. package/bundled/upstream/ecc/skills/agent-self-evaluation/templates/evaluation-report.md +86 -0
  84. package/bundled/upstream/ecc/skills/agent-sort/SKILL.md +2 -1
  85. package/bundled/upstream/ecc/skills/agentic-engineering/SKILL.md +2 -1
  86. package/bundled/upstream/ecc/skills/agentic-os/SKILL.md +2 -1
  87. package/bundled/upstream/ecc/skills/ai-first-engineering/SKILL.md +2 -1
  88. package/bundled/upstream/ecc/skills/ai-regression-testing/SKILL.md +2 -1
  89. package/bundled/upstream/ecc/skills/android-clean-architecture/SKILL.md +2 -1
  90. package/bundled/upstream/ecc/skills/angular-developer/SKILL.md +2 -1
  91. package/bundled/upstream/ecc/skills/api-connector-builder/SKILL.md +2 -1
  92. package/bundled/upstream/ecc/skills/api-design/SKILL.md +2 -1
  93. package/bundled/upstream/ecc/skills/architecture-decision-records/SKILL.md +2 -1
  94. package/bundled/upstream/ecc/skills/article-writing/SKILL.md +2 -1
  95. package/bundled/upstream/ecc/skills/automation-audit-ops/SKILL.md +2 -1
  96. package/bundled/upstream/ecc/skills/autonomous-agent-harness/SKILL.md +2 -1
  97. package/bundled/upstream/ecc/skills/autonomous-loops/SKILL.md +2 -1
  98. package/bundled/upstream/ecc/skills/backend-patterns/SKILL.md +2 -1
  99. package/bundled/upstream/ecc/skills/benchmark/SKILL.md +2 -1
  100. package/bundled/upstream/ecc/skills/benchmark-methodology/SKILL.md +190 -0
  101. package/bundled/upstream/ecc/skills/benchmark-optimization-loop/SKILL.md +2 -1
  102. package/bundled/upstream/ecc/skills/blender-motion-state-inspection/SKILL.md +2 -1
  103. package/bundled/upstream/ecc/skills/blueprint/SKILL.md +2 -1
  104. package/bundled/upstream/ecc/skills/brand-discovery/SKILL.md +145 -0
  105. package/bundled/upstream/ecc/skills/brand-discovery/references/10_purpose-why.md +40 -0
  106. package/bundled/upstream/ecc/skills/brand-discovery/references/20_positioning.md +44 -0
  107. package/bundled/upstream/ecc/skills/brand-discovery/references/30_audience-niche.md +52 -0
  108. package/bundled/upstream/ecc/skills/brand-discovery/references/40_personality-archetype.md +57 -0
  109. package/bundled/upstream/ecc/skills/brand-discovery/references/50_voice-tone.md +59 -0
  110. package/bundled/upstream/ecc/skills/brand-discovery/references/60_narrative-story.md +50 -0
  111. package/bundled/upstream/ecc/skills/brand-discovery/references/70_founder-tension.md +49 -0
  112. package/bundled/upstream/ecc/skills/brand-discovery/references/90_SYNTHESIS.md +133 -0
  113. package/bundled/upstream/ecc/skills/brand-voice/SKILL.md +2 -1
  114. package/bundled/upstream/ecc/skills/browser-qa/SKILL.md +22 -4
  115. package/bundled/upstream/ecc/skills/bun-runtime/SKILL.md +2 -1
  116. package/bundled/upstream/ecc/skills/canary-watch/SKILL.md +2 -1
  117. package/bundled/upstream/ecc/skills/carrier-relationship-management/SKILL.md +1 -1
  118. package/bundled/upstream/ecc/skills/cisco-ios-patterns/SKILL.md +2 -1
  119. package/bundled/upstream/ecc/skills/ck/SKILL.md +2 -1
  120. package/bundled/upstream/ecc/skills/claude-devfleet/SKILL.md +11 -2
  121. package/bundled/upstream/ecc/skills/click-path-audit/SKILL.md +2 -1
  122. package/bundled/upstream/ecc/skills/clickhouse-io/SKILL.md +2 -1
  123. package/bundled/upstream/ecc/skills/code-tour/SKILL.md +2 -1
  124. package/bundled/upstream/ecc/skills/codebase-onboarding/SKILL.md +2 -1
  125. package/bundled/upstream/ecc/skills/codehealth-mcp/SKILL.md +167 -0
  126. package/bundled/upstream/ecc/skills/coding-standards/SKILL.md +4 -2
  127. package/bundled/upstream/ecc/skills/competitive-platform-analysis/SKILL.md +214 -0
  128. package/bundled/upstream/ecc/skills/competitive-report-structure/SKILL.md +162 -0
  129. package/bundled/upstream/ecc/skills/compose-multiplatform-patterns/SKILL.md +2 -1
  130. package/bundled/upstream/ecc/skills/config-gc/SKILL.md +120 -0
  131. package/bundled/upstream/ecc/skills/configure-ecc/SKILL.md +2 -1
  132. package/bundled/upstream/ecc/skills/connections-optimizer/SKILL.md +2 -1
  133. package/bundled/upstream/ecc/skills/content-engine/SKILL.md +2 -1
  134. package/bundled/upstream/ecc/skills/content-hash-cache-pattern/SKILL.md +2 -1
  135. package/bundled/upstream/ecc/skills/context-budget/SKILL.md +2 -1
  136. package/bundled/upstream/ecc/skills/continuous-agent-loop/SKILL.md +2 -1
  137. package/bundled/upstream/ecc/skills/continuous-learning/SKILL.md +2 -1
  138. package/bundled/upstream/ecc/skills/continuous-learning-v2/SKILL.md +2 -1
  139. package/bundled/upstream/ecc/skills/continuous-learning-v2/agents/observer-loop.sh +14 -1
  140. package/bundled/upstream/ecc/skills/continuous-learning-v2/hooks/observe.sh +31 -7
  141. package/bundled/upstream/ecc/skills/continuous-learning-v2/scripts/instinct-cli.py +90 -2
  142. package/bundled/upstream/ecc/skills/continuous-learning-v2/scripts/test_parse_instinct.py +27 -0
  143. package/bundled/upstream/ecc/skills/cost-aware-llm-pipeline/SKILL.md +2 -1
  144. package/bundled/upstream/ecc/skills/cost-tracking/SKILL.md +58 -108
  145. package/bundled/upstream/ecc/skills/council/SKILL.md +2 -1
  146. package/bundled/upstream/ecc/skills/cpp-coding-standards/SKILL.md +2 -1
  147. package/bundled/upstream/ecc/skills/cpp-testing/SKILL.md +2 -1
  148. package/bundled/upstream/ecc/skills/crosspost/SKILL.md +2 -1
  149. package/bundled/upstream/ecc/skills/csharp-testing/SKILL.md +2 -1
  150. package/bundled/upstream/ecc/skills/customer-billing-ops/SKILL.md +2 -1
  151. package/bundled/upstream/ecc/skills/customs-trade-compliance/SKILL.md +1 -1
  152. package/bundled/upstream/ecc/skills/dart-flutter-patterns/SKILL.md +2 -1
  153. package/bundled/upstream/ecc/skills/dashboard-builder/SKILL.md +2 -1
  154. package/bundled/upstream/ecc/skills/data-scraper-agent/SKILL.md +2 -1
  155. package/bundled/upstream/ecc/skills/data-throughput-accelerator/SKILL.md +2 -1
  156. package/bundled/upstream/ecc/skills/database-migrations/SKILL.md +2 -1
  157. package/bundled/upstream/ecc/skills/deep-research/SKILL.md +2 -1
  158. package/bundled/upstream/ecc/skills/defi-amm-security/SKILL.md +2 -1
  159. package/bundled/upstream/ecc/skills/deployment-patterns/SKILL.md +2 -1
  160. package/bundled/upstream/ecc/skills/design-system/SKILL.md +2 -1
  161. package/bundled/upstream/ecc/skills/django-celery/SKILL.md +3 -2
  162. package/bundled/upstream/ecc/skills/django-patterns/SKILL.md +2 -1
  163. package/bundled/upstream/ecc/skills/django-security/SKILL.md +2 -1
  164. package/bundled/upstream/ecc/skills/django-tdd/SKILL.md +2 -1
  165. package/bundled/upstream/ecc/skills/django-verification/SKILL.md +2 -1
  166. package/bundled/upstream/ecc/skills/dmux-workflows/SKILL.md +2 -1
  167. package/bundled/upstream/ecc/skills/docker-patterns/SKILL.md +2 -1
  168. package/bundled/upstream/ecc/skills/documentation-lookup/SKILL.md +2 -1
  169. package/bundled/upstream/ecc/skills/dotnet-patterns/SKILL.md +2 -1
  170. package/bundled/upstream/ecc/skills/dynamic-workflow-mode/SKILL.md +2 -1
  171. package/bundled/upstream/ecc/skills/e2e-testing/SKILL.md +2 -1
  172. package/bundled/upstream/ecc/skills/ecc-guide/SKILL.md +2 -1
  173. package/bundled/upstream/ecc/skills/ecc-tools-cost-audit/SKILL.md +2 -1
  174. package/bundled/upstream/ecc/skills/email-ops/SKILL.md +2 -1
  175. package/bundled/upstream/ecc/skills/energy-procurement/SKILL.md +1 -1
  176. package/bundled/upstream/ecc/skills/enterprise-agent-ops/SKILL.md +2 -1
  177. package/bundled/upstream/ecc/skills/error-handling/SKILL.md +2 -1
  178. package/bundled/upstream/ecc/skills/eval-harness/SKILL.md +2 -1
  179. package/bundled/upstream/ecc/skills/evm-token-decimals/SKILL.md +2 -1
  180. package/bundled/upstream/ecc/skills/exa-search/SKILL.md +2 -1
  181. package/bundled/upstream/ecc/skills/fal-ai-media/SKILL.md +2 -1
  182. package/bundled/upstream/ecc/skills/fastapi-patterns/SKILL.md +375 -188
  183. package/bundled/upstream/ecc/skills/finance-billing-ops/SKILL.md +2 -1
  184. package/bundled/upstream/ecc/skills/flox-environments/SKILL.md +3 -2
  185. package/bundled/upstream/ecc/skills/flutter-dart-code-review/SKILL.md +2 -1
  186. package/bundled/upstream/ecc/skills/frontend-a11y/SKILL.md +3 -3
  187. package/bundled/upstream/ecc/skills/frontend-design-direction/SKILL.md +2 -1
  188. package/bundled/upstream/ecc/skills/frontend-patterns/SKILL.md +23 -8
  189. package/bundled/upstream/ecc/skills/frontend-slides/SKILL.md +2 -1
  190. package/bundled/upstream/ecc/skills/frontend-slides/scripts/export-pdf.sh +1 -1
  191. package/bundled/upstream/ecc/skills/fsharp-testing/SKILL.md +2 -1
  192. package/bundled/upstream/ecc/skills/gan-style-harness/SKILL.md +2 -1
  193. package/bundled/upstream/ecc/skills/gateguard/SKILL.md +9 -1
  194. package/bundled/upstream/ecc/skills/generating-python-installer/SKILL.md +820 -0
  195. package/bundled/upstream/ecc/skills/git-workflow/SKILL.md +2 -1
  196. package/bundled/upstream/ecc/skills/github-ops/SKILL.md +2 -1
  197. package/bundled/upstream/ecc/skills/golang-patterns/SKILL.md +2 -1
  198. package/bundled/upstream/ecc/skills/golang-testing/SKILL.md +2 -1
  199. package/bundled/upstream/ecc/skills/google-workspace-ops/SKILL.md +2 -1
  200. package/bundled/upstream/ecc/skills/healthcare-cdss-patterns/SKILL.md +2 -1
  201. package/bundled/upstream/ecc/skills/healthcare-emr-patterns/SKILL.md +2 -1
  202. package/bundled/upstream/ecc/skills/healthcare-eval-harness/SKILL.md +2 -1
  203. package/bundled/upstream/ecc/skills/healthcare-phi-compliance/SKILL.md +2 -1
  204. package/bundled/upstream/ecc/skills/hermes-imports/SKILL.md +2 -1
  205. package/bundled/upstream/ecc/skills/hexagonal-architecture/SKILL.md +2 -1
  206. package/bundled/upstream/ecc/skills/hipaa-compliance/SKILL.md +2 -1
  207. package/bundled/upstream/ecc/skills/homelab-network-readiness/SKILL.md +2 -1
  208. package/bundled/upstream/ecc/skills/homelab-network-setup/SKILL.md +2 -1
  209. package/bundled/upstream/ecc/skills/homelab-pihole-dns/SKILL.md +10 -9
  210. package/bundled/upstream/ecc/skills/homelab-vlan-segmentation/SKILL.md +2 -1
  211. package/bundled/upstream/ecc/skills/homelab-wireguard-vpn/SKILL.md +4 -3
  212. package/bundled/upstream/ecc/skills/inherit-legacy-style/SKILL.md +157 -0
  213. package/bundled/upstream/ecc/skills/intent-driven-development/SKILL.md +360 -0
  214. package/bundled/upstream/ecc/skills/inventory-demand-planning/SKILL.md +1 -1
  215. package/bundled/upstream/ecc/skills/investor-materials/SKILL.md +2 -1
  216. package/bundled/upstream/ecc/skills/investor-outreach/SKILL.md +2 -1
  217. package/bundled/upstream/ecc/skills/ios-icon-gen/SKILL.md +2 -1
  218. package/bundled/upstream/ecc/skills/iterative-retrieval/SKILL.md +2 -1
  219. package/bundled/upstream/ecc/skills/ito-basket-compare/SKILL.md +2 -1
  220. package/bundled/upstream/ecc/skills/ito-data-atlas-agent/SKILL.md +2 -1
  221. package/bundled/upstream/ecc/skills/ito-market-intelligence/SKILL.md +2 -1
  222. package/bundled/upstream/ecc/skills/ito-trade-planner/SKILL.md +2 -1
  223. package/bundled/upstream/ecc/skills/java-coding-standards/SKILL.md +2 -1
  224. package/bundled/upstream/ecc/skills/jira-integration/SKILL.md +17 -7
  225. package/bundled/upstream/ecc/skills/jpa-patterns/SKILL.md +2 -1
  226. package/bundled/upstream/ecc/skills/knowledge-ops/SKILL.md +2 -1
  227. package/bundled/upstream/ecc/skills/kotlin-coroutines-flows/SKILL.md +2 -1
  228. package/bundled/upstream/ecc/skills/kotlin-exposed-patterns/SKILL.md +2 -1
  229. package/bundled/upstream/ecc/skills/kotlin-ktor-patterns/SKILL.md +2 -1
  230. package/bundled/upstream/ecc/skills/kotlin-patterns/SKILL.md +2 -1
  231. package/bundled/upstream/ecc/skills/kotlin-testing/SKILL.md +2 -1
  232. package/bundled/upstream/ecc/skills/kubernetes-patterns/SKILL.md +756 -0
  233. package/bundled/upstream/ecc/skills/laravel-patterns/SKILL.md +2 -1
  234. package/bundled/upstream/ecc/skills/laravel-plugin-discovery/SKILL.md +2 -1
  235. package/bundled/upstream/ecc/skills/laravel-security/SKILL.md +826 -163
  236. package/bundled/upstream/ecc/skills/laravel-tdd/SKILL.md +541 -149
  237. package/bundled/upstream/ecc/skills/laravel-verification/SKILL.md +2 -1
  238. package/bundled/upstream/ecc/skills/latency-critical-systems/SKILL.md +2 -1
  239. package/bundled/upstream/ecc/skills/lead-intelligence/SKILL.md +2 -1
  240. package/bundled/upstream/ecc/skills/llm-trading-agent-security/SKILL.md +2 -1
  241. package/bundled/upstream/ecc/skills/logistics-exception-management/SKILL.md +1 -1
  242. package/bundled/upstream/ecc/skills/make-interfaces-feel-better/SKILL.md +2 -1
  243. package/bundled/upstream/ecc/skills/manim-video/SKILL.md +2 -1
  244. package/bundled/upstream/ecc/skills/market-research/SKILL.md +2 -1
  245. package/bundled/upstream/ecc/skills/marketing-campaign/SKILL.md +2 -1
  246. package/bundled/upstream/ecc/skills/mcp-server-patterns/SKILL.md +2 -1
  247. package/bundled/upstream/ecc/skills/messages-ops/SKILL.md +2 -1
  248. package/bundled/upstream/ecc/skills/ml-adoption-playbook/SKILL.md +57 -0
  249. package/bundled/upstream/ecc/skills/mle-workflow/SKILL.md +2 -1
  250. package/bundled/upstream/ecc/skills/motion-patterns/SKILL.md +1 -2
  251. package/bundled/upstream/ecc/skills/motion-ui/SKILL.md +2 -1
  252. package/bundled/upstream/ecc/skills/mysql-patterns/SKILL.md +2 -1
  253. package/bundled/upstream/ecc/skills/nanoclaw-repl/SKILL.md +2 -1
  254. package/bundled/upstream/ecc/skills/nestjs-patterns/SKILL.md +2 -1
  255. package/bundled/upstream/ecc/skills/netmiko-ssh-automation/SKILL.md +2 -1
  256. package/bundled/upstream/ecc/skills/network-bgp-diagnostics/SKILL.md +2 -1
  257. package/bundled/upstream/ecc/skills/network-config-validation/SKILL.md +2 -1
  258. package/bundled/upstream/ecc/skills/network-interface-health/SKILL.md +2 -1
  259. package/bundled/upstream/ecc/skills/nextjs-turbopack/SKILL.md +2 -1
  260. package/bundled/upstream/ecc/skills/nodejs-keccak256/SKILL.md +2 -1
  261. package/bundled/upstream/ecc/skills/nutrient-document-processing/SKILL.md +2 -1
  262. package/bundled/upstream/ecc/skills/nuxt4-patterns/SKILL.md +2 -1
  263. package/bundled/upstream/ecc/skills/openclaw-persona-forge/SKILL.md +2 -1
  264. package/bundled/upstream/ecc/skills/opensource-pipeline/SKILL.md +2 -1
  265. package/bundled/upstream/ecc/skills/orch-add-feature/SKILL.md +45 -0
  266. package/bundled/upstream/ecc/skills/orch-build-mvp/SKILL.md +49 -0
  267. package/bundled/upstream/ecc/skills/orch-change-feature/SKILL.md +43 -0
  268. package/bundled/upstream/ecc/skills/orch-fix-defect/SKILL.md +43 -0
  269. package/bundled/upstream/ecc/skills/orch-pipeline/SKILL.md +121 -0
  270. package/bundled/upstream/ecc/skills/orch-refine-code/SKILL.md +44 -0
  271. package/bundled/upstream/ecc/skills/parallel-execution-optimizer/SKILL.md +2 -1
  272. package/bundled/upstream/ecc/skills/perl-patterns/SKILL.md +2 -1
  273. package/bundled/upstream/ecc/skills/perl-security/SKILL.md +2 -1
  274. package/bundled/upstream/ecc/skills/perl-testing/SKILL.md +2 -1
  275. package/bundled/upstream/ecc/skills/plan-orchestrate/SKILL.md +2 -1
  276. package/bundled/upstream/ecc/skills/plankton-code-quality/SKILL.md +2 -1
  277. package/bundled/upstream/ecc/skills/postgres-patterns/SKILL.md +2 -1
  278. package/bundled/upstream/ecc/skills/prediction-market-oracle-research/SKILL.md +2 -1
  279. package/bundled/upstream/ecc/skills/prediction-market-risk-review/SKILL.md +2 -1
  280. package/bundled/upstream/ecc/skills/prisma-patterns/SKILL.md +2 -1
  281. package/bundled/upstream/ecc/skills/product-capability/SKILL.md +2 -1
  282. package/bundled/upstream/ecc/skills/product-lens/SKILL.md +2 -1
  283. package/bundled/upstream/ecc/skills/production-audit/SKILL.md +2 -1
  284. package/bundled/upstream/ecc/skills/production-scheduling/SKILL.md +1 -1
  285. package/bundled/upstream/ecc/skills/project-flow-ops/SKILL.md +2 -1
  286. package/bundled/upstream/ecc/skills/prompt-optimizer/SKILL.md +1 -1
  287. package/bundled/upstream/ecc/skills/python-patterns/SKILL.md +4 -3
  288. package/bundled/upstream/ecc/skills/python-testing/SKILL.md +2 -1
  289. package/bundled/upstream/ecc/skills/pytorch-patterns/SKILL.md +2 -1
  290. package/bundled/upstream/ecc/skills/quality-nonconformance/SKILL.md +1 -1
  291. package/bundled/upstream/ecc/skills/quarkus-patterns/SKILL.md +51 -50
  292. package/bundled/upstream/ecc/skills/quarkus-security/SKILL.md +25 -24
  293. package/bundled/upstream/ecc/skills/quarkus-tdd/SKILL.md +73 -72
  294. package/bundled/upstream/ecc/skills/quarkus-verification/SKILL.md +8 -7
  295. package/bundled/upstream/ecc/skills/ralphinho-rfc-pipeline/SKILL.md +2 -1
  296. package/bundled/upstream/ecc/skills/react-patterns/SKILL.md +2 -1
  297. package/bundled/upstream/ecc/skills/react-performance/SKILL.md +2 -1
  298. package/bundled/upstream/ecc/skills/react-testing/SKILL.md +2 -1
  299. package/bundled/upstream/ecc/skills/recsys-pipeline-architect/SKILL.md +2 -1
  300. package/bundled/upstream/ecc/skills/recursive-decision-ledger/SKILL.md +2 -1
  301. package/bundled/upstream/ecc/skills/redis-patterns/SKILL.md +2 -1
  302. package/bundled/upstream/ecc/skills/regex-vs-llm-structured-text/SKILL.md +2 -1
  303. package/bundled/upstream/ecc/skills/repo-scan/SKILL.md +64 -63
  304. package/bundled/upstream/ecc/skills/research-ops/SKILL.md +2 -1
  305. package/bundled/upstream/ecc/skills/returns-reverse-logistics/SKILL.md +1 -1
  306. package/bundled/upstream/ecc/skills/rules-distill/SKILL.md +2 -1
  307. package/bundled/upstream/ecc/skills/rust-patterns/SKILL.md +2 -1
  308. package/bundled/upstream/ecc/skills/rust-testing/SKILL.md +2 -1
  309. package/bundled/upstream/ecc/skills/safety-guard/SKILL.md +2 -1
  310. package/bundled/upstream/ecc/skills/santa-method/SKILL.md +2 -1
  311. package/bundled/upstream/ecc/skills/scientific-db-pubmed-database/SKILL.md +2 -1
  312. package/bundled/upstream/ecc/skills/scientific-db-uspto-database/SKILL.md +2 -1
  313. package/bundled/upstream/ecc/skills/scientific-pkg-gget/SKILL.md +2 -1
  314. package/bundled/upstream/ecc/skills/scientific-thinking-literature-review/SKILL.md +2 -1
  315. package/bundled/upstream/ecc/skills/scientific-thinking-scholar-evaluation/SKILL.md +2 -1
  316. package/bundled/upstream/ecc/skills/search-first/SKILL.md +2 -1
  317. package/bundled/upstream/ecc/skills/security-bounty-hunter/SKILL.md +2 -1
  318. package/bundled/upstream/ecc/skills/security-review/SKILL.md +2 -1
  319. package/bundled/upstream/ecc/skills/security-scan/SKILL.md +2 -1
  320. package/bundled/upstream/ecc/skills/seo/SKILL.md +2 -1
  321. package/bundled/upstream/ecc/skills/skill-comply/SKILL.md +2 -1
  322. package/bundled/upstream/ecc/skills/skill-comply/scripts/runner.py +8 -0
  323. package/bundled/upstream/ecc/skills/skill-scout/SKILL.md +2 -1
  324. package/bundled/upstream/ecc/skills/skill-stocktake/SKILL.md +2 -1
  325. package/bundled/upstream/ecc/skills/social-graph-ranker/SKILL.md +2 -1
  326. package/bundled/upstream/ecc/skills/social-publisher/SKILL.md +17 -2
  327. package/bundled/upstream/ecc/skills/springboot-patterns/SKILL.md +2 -1
  328. package/bundled/upstream/ecc/skills/springboot-security/SKILL.md +2 -1
  329. package/bundled/upstream/ecc/skills/springboot-tdd/SKILL.md +2 -1
  330. package/bundled/upstream/ecc/skills/springboot-verification/SKILL.md +2 -1
  331. package/bundled/upstream/ecc/skills/strategic-compact/SKILL.md +10 -5
  332. package/bundled/upstream/ecc/skills/swift-actor-persistence/SKILL.md +2 -1
  333. package/bundled/upstream/ecc/skills/swift-protocol-di-testing/SKILL.md +2 -1
  334. package/bundled/upstream/ecc/skills/taste/SKILL.md +264 -0
  335. package/bundled/upstream/ecc/skills/taste/references/genre-taxonomy.md +87 -0
  336. package/bundled/upstream/ecc/skills/tdd-workflow/SKILL.md +64 -1
  337. package/bundled/upstream/ecc/skills/team-agent-orchestration/SKILL.md +2 -1
  338. package/bundled/upstream/ecc/skills/team-builder/SKILL.md +2 -1
  339. package/bundled/upstream/ecc/skills/terminal-ops/SKILL.md +2 -1
  340. package/bundled/upstream/ecc/skills/tinystruct-patterns/SKILL.md +77 -1
  341. package/bundled/upstream/ecc/skills/token-budget-advisor/SKILL.md +2 -1
  342. package/bundled/upstream/ecc/skills/ui-demo/SKILL.md +2 -1
  343. package/bundled/upstream/ecc/skills/ui-to-vue/SKILL.md +2 -1
  344. package/bundled/upstream/ecc/skills/uncloud/SKILL.md +2 -1
  345. package/bundled/upstream/ecc/skills/unified-notifications-ops/SKILL.md +2 -1
  346. package/bundled/upstream/ecc/skills/verification-loop/SKILL.md +2 -1
  347. package/bundled/upstream/ecc/skills/video-editing/SKILL.md +2 -1
  348. package/bundled/upstream/ecc/skills/videodb/SKILL.md +2 -1
  349. package/bundled/upstream/ecc/skills/vite-patterns/SKILL.md +2 -1
  350. package/bundled/upstream/ecc/skills/vue-patterns/SKILL.md +471 -0
  351. package/bundled/upstream/ecc/skills/windows-desktop-e2e/SKILL.md +9 -8
  352. package/bundled/upstream/ecc/skills/workspace-surface-audit/SKILL.md +2 -1
  353. package/bundled/upstream/ecc/skills/x-api/SKILL.md +2 -1
  354. package/bundled/upstream/impeccable/.omc-source/bundle.json +2 -2
  355. package/bundled/upstream/impeccable/.omc-source/provenance.json +30 -25
  356. package/bundled/upstream/impeccable/skills/impeccable/SKILL.md +2 -2
  357. package/bundled/upstream/impeccable/skills/impeccable/reference/hooks.md +10 -8
  358. package/bundled/upstream/impeccable/skills/impeccable/reference/live.md +1 -1
  359. package/bundled/upstream/impeccable/skills/impeccable/scripts/context.mjs +707 -26
  360. package/bundled/upstream/impeccable/skills/impeccable/scripts/detector/browser/injected/index.mjs +202 -0
  361. package/bundled/upstream/impeccable/skills/impeccable/scripts/detector/cli/main.mjs +57 -11
  362. package/bundled/upstream/impeccable/skills/impeccable/scripts/detector/design-system.mjs +750 -0
  363. package/bundled/upstream/impeccable/skills/impeccable/scripts/detector/detect-antipatterns-browser.js +231 -0
  364. package/bundled/upstream/impeccable/skills/impeccable/scripts/detector/detect-antipatterns.mjs +7 -0
  365. package/bundled/upstream/impeccable/skills/impeccable/scripts/detector/engines/browser/detect-url.mjs +29 -4
  366. package/bundled/upstream/impeccable/skills/impeccable/scripts/detector/engines/regex/detect-text.mjs +20 -4
  367. package/bundled/upstream/impeccable/skills/impeccable/scripts/detector/engines/static-html/css-cascade.mjs +2 -0
  368. package/bundled/upstream/impeccable/skills/impeccable/scripts/detector/engines/static-html/detect-html.mjs +27 -1
  369. package/bundled/upstream/impeccable/skills/impeccable/scripts/detector/registry/antipatterns.mjs +29 -0
  370. package/bundled/upstream/impeccable/skills/impeccable/scripts/detector/shared/inline-ignores.mjs +148 -0
  371. package/bundled/upstream/impeccable/skills/impeccable/scripts/hook-admin.mjs +135 -48
  372. package/bundled/upstream/impeccable/skills/impeccable/scripts/hook-before-edit.mjs +5 -2
  373. package/bundled/upstream/impeccable/skills/impeccable/scripts/hook-lib.mjs +375 -29
  374. package/bundled/upstream/impeccable/skills/impeccable/scripts/lib/design-parser.mjs +8 -1
  375. package/bundled/upstream/impeccable/skills/impeccable/scripts/lib/impeccable-config.mjs +638 -0
  376. package/bundled/upstream/impeccable/skills/impeccable/scripts/lib/impeccable-paths.mjs +37 -35
  377. package/bundled/upstream/impeccable/skills/impeccable/scripts/lib/target-args.mjs +42 -0
  378. package/bundled/upstream/impeccable/skills/impeccable/scripts/live-browser.js +159 -72
  379. package/bundled/upstream/impeccable/skills/impeccable/scripts/live-poll.mjs +16 -11
  380. package/bundled/upstream/impeccable/skills/impeccable/scripts/live-server.mjs +9 -8
  381. package/bundled/upstream/impeccable/skills/impeccable/scripts/live-target.mjs +30 -0
  382. package/bundled/upstream/impeccable/skills/impeccable/scripts/live-wrap.mjs +1 -1
  383. package/bundled/upstream/impeccable/skills/impeccable/scripts/live.mjs +72 -21
  384. package/bundled/upstream/oh-my-claudecode/.omc-source/bundle.json +2 -2
  385. package/bundled/upstream/oh-my-claudecode/.omc-source/provenance.json +103 -103
  386. package/bundled/upstream/oh-my-claudecode/agents/analyst.md +6 -0
  387. package/bundled/upstream/oh-my-claudecode/agents/architect.md +6 -0
  388. package/bundled/upstream/oh-my-claudecode/agents/code-reviewer.md +6 -0
  389. package/bundled/upstream/oh-my-claudecode/agents/critic.md +6 -0
  390. package/bundled/upstream/oh-my-claudecode/agents/debugger.md +6 -0
  391. package/bundled/upstream/oh-my-claudecode/agents/security-reviewer.md +6 -0
  392. package/bundled/upstream/oh-my-claudecode/agents/tracer.md +6 -0
  393. package/bundled/upstream/oh-my-claudecode/agents/verifier.md +7 -0
  394. package/bundled/upstream/oh-my-claudecode/hooks/hooks.json +9 -2
  395. package/bundled/upstream/oh-my-claudecode/skills/ask/SKILL.md +15 -4
  396. package/bundled/upstream/oh-my-claudecode/skills/autopilot/SKILL.md +30 -1
  397. package/bundled/upstream/oh-my-claudecode/skills/cancel/SKILL.md +29 -35
  398. package/bundled/upstream/oh-my-claudecode/skills/ccg/SKILL.md +20 -9
  399. package/bundled/upstream/oh-my-claudecode/skills/configure-notifications/SKILL.md +2 -2
  400. package/bundled/upstream/oh-my-claudecode/skills/omc-reference/SKILL.md +6 -4
  401. package/bundled/upstream/oh-my-claudecode/skills/omc-setup/phases/02-configure.md +1 -1
  402. package/bundled/upstream/oh-my-claudecode/skills/omc-setup/phases/03-integrations.md +2 -1
  403. package/bundled/upstream/oh-my-claudecode/skills/omc-setup/phases/04-welcome.md +2 -2
  404. package/bundled/upstream/oh-my-claudecode/skills/omc-teams/SKILL.md +29 -18
  405. package/bundled/upstream/oh-my-claudecode/skills/team/SKILL.md +127 -165
  406. package/bundled/upstream/superpowers/.omc-source/bundle.json +2 -2
  407. package/bundled/upstream/superpowers/.omc-source/provenance.json +59 -52
  408. package/bundled/upstream/superpowers/hooks/hooks-codex.json +16 -0
  409. package/bundled/upstream/superpowers/hooks/session-start +4 -12
  410. package/bundled/upstream/superpowers/hooks/session-start-codex +26 -0
  411. package/bundled/upstream/superpowers/skills/brainstorming/SKILL.md +5 -10
  412. package/bundled/upstream/superpowers/skills/brainstorming/scripts/frame-template.html +25 -26
  413. package/bundled/upstream/superpowers/skills/brainstorming/scripts/helper.js +101 -22
  414. package/bundled/upstream/superpowers/skills/brainstorming/scripts/server.cjs +399 -30
  415. package/bundled/upstream/superpowers/skills/brainstorming/scripts/start-server.sh +70 -9
  416. package/bundled/upstream/superpowers/skills/brainstorming/scripts/stop-server.sh +66 -2
  417. package/bundled/upstream/superpowers/skills/brainstorming/spec-document-reviewer-prompt.md +1 -1
  418. package/bundled/upstream/superpowers/skills/brainstorming/visual-companion.md +33 -22
  419. package/bundled/upstream/superpowers/skills/dispatching-parallel-agents/SKILL.md +9 -6
  420. package/bundled/upstream/superpowers/skills/executing-plans/SKILL.md +2 -2
  421. package/bundled/upstream/superpowers/skills/finishing-a-development-branch/SKILL.md +2 -12
  422. package/bundled/upstream/superpowers/skills/receiving-code-review/SKILL.md +2 -2
  423. package/bundled/upstream/superpowers/skills/requesting-code-review/SKILL.md +2 -2
  424. package/bundled/upstream/superpowers/skills/requesting-code-review/code-reviewer.md +15 -11
  425. package/bundled/upstream/superpowers/skills/subagent-driven-development/SKILL.md +206 -67
  426. package/bundled/upstream/superpowers/skills/subagent-driven-development/implementer-prompt.md +30 -4
  427. package/bundled/upstream/superpowers/skills/subagent-driven-development/scripts/review-package +44 -0
  428. package/bundled/upstream/superpowers/skills/subagent-driven-development/scripts/sdd-workspace +22 -0
  429. package/bundled/upstream/superpowers/skills/subagent-driven-development/scripts/task-brief +40 -0
  430. package/bundled/upstream/superpowers/skills/subagent-driven-development/task-reviewer-prompt.md +188 -0
  431. package/bundled/upstream/superpowers/skills/systematic-debugging/SKILL.md +1 -1
  432. package/bundled/upstream/superpowers/skills/test-driven-development/SKILL.md +1 -1
  433. package/bundled/upstream/superpowers/skills/using-git-worktrees/SKILL.md +9 -22
  434. package/bundled/upstream/superpowers/skills/using-superpowers/SKILL.md +19 -15
  435. package/bundled/upstream/superpowers/skills/using-superpowers/references/antigravity-tools.md +96 -0
  436. package/bundled/upstream/superpowers/skills/using-superpowers/references/claude-code-tools.md +50 -0
  437. package/bundled/upstream/superpowers/skills/using-superpowers/references/codex-tools.md +25 -12
  438. package/bundled/upstream/superpowers/skills/using-superpowers/references/copilot-tools.md +27 -20
  439. package/bundled/upstream/superpowers/skills/using-superpowers/references/gemini-tools.md +44 -32
  440. package/bundled/upstream/superpowers/skills/using-superpowers/references/pi-tools.md +28 -0
  441. package/bundled/upstream/superpowers/skills/writing-plans/SKILL.md +22 -0
  442. package/bundled/upstream/superpowers/skills/writing-plans/plan-document-reviewer-prompt.md +1 -1
  443. package/bundled/upstream/superpowers/skills/writing-skills/SKILL.md +52 -18
  444. package/bundled/upstream/superpowers/skills/writing-skills/anthropic-best-practices.md +88 -88
  445. package/bundled/upstream/superpowers/skills/writing-skills/persuasion-principles.md +3 -3
  446. package/package.json +1 -1
  447. package/bundled/upstream/superpowers/skills/subagent-driven-development/code-quality-reviewer-prompt.md +0 -25
  448. package/bundled/upstream/superpowers/skills/subagent-driven-development/spec-reviewer-prompt.md +0 -61
@@ -155,7 +155,7 @@ fi
155
155
  # Non-interactive SDK automation is still filtered by Layers 2-5 below
156
156
  # (ECC_HOOK_PROFILE=minimal, ECC_SKIP_OBSERVE=1, agent_id, path exclusions).
157
157
  case "${CLAUDE_CODE_ENTRYPOINT:-cli}" in
158
- cli|sdk-ts|claude-desktop) ;;
158
+ cli|sdk-ts|claude-desktop|claude-vscode) ;;
159
159
  *) exit 0 ;;
160
160
  esac
161
161
 
@@ -268,13 +268,25 @@ if [ "$PARSED_OK" != "True" ]; then
268
268
  echo "$INPUT_JSON" | "$PYTHON_CMD" -c '
269
269
  import json, sys, os, re
270
270
 
271
+ # Linear-time secret matcher. Bounded quantifiers and a fixed set of auth
272
+ # schemes (instead of a generic [A-Za-z]+\s+ that overlapped the value class)
273
+ # prevent the catastrophic backtracking that pegged python at 100% CPU (#2278).
271
274
  _SECRET_RE = re.compile(
272
275
  r"(?i)(api[_-]?key|token|secret|password|authorization|credentials?|auth)"
273
- r"""(["'"'"'\s:=]+)"""
274
- r"([A-Za-z]+\s+)?"
275
- r"([A-Za-z0-9_\-/.+=]{8,})"
276
+ r"""(["'"'"'\s:=]{1,8})"""
277
+ r"((?:bearer|basic|token|bot)\s+)?"
278
+ r"([A-Za-z0-9_\-/.+=]{8,256})"
276
279
  )
277
280
 
281
+ import signal
282
+ def _ecc_bail(*_):
283
+ sys.exit(0)
284
+ try:
285
+ signal.signal(signal.SIGALRM, _ecc_bail)
286
+ signal.alarm(8) # self-terminate before the async hook 10s timeout can orphan us (#2278)
287
+ except Exception:
288
+ pass
289
+
278
290
  raw = sys.stdin.read()[:2000]
279
291
  raw = _SECRET_RE.sub(lambda m: m.group(1) + m.group(2) + (m.group(3) or "") + "[REDACTED]", raw)
280
292
  print(json.dumps({"timestamp": os.environ["TIMESTAMP"], "event": "parse_error", "raw": raw}))
@@ -302,6 +314,15 @@ export TIMESTAMP="$timestamp"
302
314
 
303
315
  echo "$PARSED" | "$PYTHON_CMD" -c '
304
316
  import json, sys, os, re
317
+ import signal
318
+
319
+ def _ecc_bail(*_):
320
+ sys.exit(0)
321
+ try:
322
+ signal.signal(signal.SIGALRM, _ecc_bail)
323
+ signal.alarm(8) # self-terminate before the async hook 10s timeout can orphan us (#2278)
324
+ except Exception:
325
+ pass
305
326
 
306
327
  parsed = json.load(sys.stdin)
307
328
  observation = {
@@ -315,11 +336,14 @@ observation = {
315
336
 
316
337
  # Scrub secrets: match common key=value, key: value, and key"value patterns
317
338
  # Includes optional auth scheme (e.g., "Bearer", "Basic") before token
339
+ # Linear-time secret matcher. Bounded quantifiers and a fixed set of auth
340
+ # schemes (instead of a generic [A-Za-z]+\s+ that overlapped the value class)
341
+ # prevent the catastrophic backtracking that pegged python at 100% CPU (#2278).
318
342
  _SECRET_RE = re.compile(
319
343
  r"(?i)(api[_-]?key|token|secret|password|authorization|credentials?|auth)"
320
- r"""(["'"'"'\s:=]+)"""
321
- r"([A-Za-z]+\s+)?"
322
- r"([A-Za-z0-9_\-/.+=]{8,})"
344
+ r"""(["'"'"'\s:=]{1,8})"""
345
+ r"((?:bearer|basic|token|bot)\s+)?"
346
+ r"([A-Za-z0-9_\-/.+=]{8,256})"
323
347
  )
324
348
 
325
349
  def scrub(val):
@@ -23,6 +23,9 @@ import subprocess
23
23
  import sys
24
24
  import re
25
25
  import shutil
26
+ import ipaddress
27
+ import socket
28
+ import urllib.parse
26
29
  import urllib.request
27
30
  from pathlib import Path
28
31
  from datetime import datetime, timedelta, timezone
@@ -181,6 +184,55 @@ def _validate_instinct_id(instinct_id: str) -> bool:
181
184
  return bool(re.match(r"^[A-Za-z0-9][A-Za-z0-9._-]*$", instinct_id))
182
185
 
183
186
 
187
+ def _validate_import_url(source: str) -> str:
188
+ """Validate remote instinct imports before opening a network connection."""
189
+ parsed = urllib.parse.urlparse(source)
190
+ if parsed.scheme != "https":
191
+ raise ValueError("remote instinct imports require https URLs")
192
+ if not parsed.hostname:
193
+ raise ValueError("remote import URL is missing a hostname")
194
+
195
+ try:
196
+ addr_infos = socket.getaddrinfo(parsed.hostname, parsed.port or 443, type=socket.SOCK_STREAM)
197
+ except socket.gaierror as exc:
198
+ raise ValueError(f"remote import host could not be resolved: {parsed.hostname}") from exc
199
+
200
+ for family, _, _, _, sockaddr in addr_infos:
201
+ host = sockaddr[0]
202
+ try:
203
+ ip = ipaddress.ip_address(host)
204
+ except ValueError:
205
+ continue
206
+ if (
207
+ ip.is_private
208
+ or ip.is_loopback
209
+ or ip.is_link_local
210
+ or ip.is_multicast
211
+ or ip.is_reserved
212
+ or ip.is_unspecified
213
+ ):
214
+ raise ValueError(f"remote import host resolves to a non-public address: {host}")
215
+
216
+ return urllib.parse.urlunparse(parsed)
217
+
218
+
219
+ def _fetch_import_url(source: str, *, max_bytes: int = 2 * 1024 * 1024) -> str:
220
+ """Fetch a validated remote instinct file with bounded size and timeout."""
221
+ url = _validate_import_url(source)
222
+ req = urllib.request.Request(url, headers={"User-Agent": "ECC-instinct-import/2"})
223
+ with urllib.request.urlopen(req, timeout=15) as response:
224
+ content_type = response.headers.get("Content-Type", "")
225
+ if content_type and not any(
226
+ allowed in content_type.lower()
227
+ for allowed in ("text/", "markdown", "yaml", "json", "octet-stream")
228
+ ):
229
+ raise ValueError(f"unsupported remote content type: {content_type}")
230
+ data = response.read(max_bytes + 1)
231
+ if len(data) > max_bytes:
232
+ raise ValueError(f"remote import exceeds {max_bytes} bytes")
233
+ return data.decode("utf-8")
234
+
235
+
184
236
  def _yaml_quote(value: str) -> str:
185
237
  """Quote a string for safe YAML frontmatter serialization.
186
238
 
@@ -703,10 +755,47 @@ def cmd_status(args) -> int:
703
755
  days_left = max(0, PENDING_TTL_DAYS - item["age_days"])
704
756
  print(f" - {item['name']} ({days_left}d remaining)")
705
757
 
758
+ # Legacy data warning
759
+ _warn_legacy_data()
760
+
706
761
  print(f"\n{'='*60}\n")
707
762
  return 0
708
763
 
709
764
 
765
+ def _warn_legacy_data() -> None:
766
+ """Warn if legacy ~/.claude/homunculus/ contains data while the active
767
+ path has moved to the XDG directory."""
768
+ legacy_dir = Path.home() / ".claude" / "homunculus"
769
+ if legacy_dir == HOMUNCULUS_DIR:
770
+ return # CLV2_HOMUNCULUS_DIR explicitly points at the legacy path
771
+ if not legacy_dir.is_dir():
772
+ return
773
+
774
+ # Count substantive files (skip empty dirs and the directory itself)
775
+ try:
776
+ legacy_files = [f for f in legacy_dir.rglob("*") if f.is_file()]
777
+ except (PermissionError, OSError):
778
+ print(f"\n Note: legacy directory exists but cannot be read: {legacy_dir}", file=sys.stderr)
779
+ return
780
+ if not legacy_files:
781
+ return
782
+
783
+ migrate_script = Path(__file__).resolve().parent / "migrate-homunculus.sh"
784
+
785
+ print(f"\n{'!'*60}")
786
+ print(" LEGACY DATA DETECTED")
787
+ print(f"{'!'*60}")
788
+ print(f" Found {len(legacy_files)} file(s) in legacy path:")
789
+ print(f" {legacy_dir}")
790
+ print(" Active data directory:")
791
+ print(f" {HOMUNCULUS_DIR}")
792
+ print()
793
+ print(" Run the migration script to move your data:")
794
+ print(f' bash "{migrate_script}"')
795
+ print(f" Or set CLV2_HOMUNCULUS_DIR={legacy_dir} to use the legacy path.")
796
+ print(f"{'!'*60}\n")
797
+
798
+
710
799
  def _print_instincts_by_domain(instincts: list[dict]) -> None:
711
800
  """Helper to print instincts grouped by domain."""
712
801
  by_domain = defaultdict(list)
@@ -757,8 +846,7 @@ def cmd_import(args) -> int:
757
846
  if source.startswith('http://') or source.startswith('https://'):
758
847
  print(f"Fetching from URL: {source}")
759
848
  try:
760
- with urllib.request.urlopen(source) as response:
761
- content = response.read().decode('utf-8')
849
+ content = _fetch_import_url(source)
762
850
  except Exception as e:
763
851
  print(f"Error fetching URL: {e}", file=sys.stderr)
764
852
  return 1
@@ -44,6 +44,7 @@ _promote_auto = _mod._promote_auto
44
44
  _find_cross_project_instincts = _mod._find_cross_project_instincts
45
45
  load_registry = _mod.load_registry
46
46
  _validate_instinct_id = _mod._validate_instinct_id
47
+ _validate_import_url = _mod._validate_import_url
47
48
  _update_registry = _mod._update_registry
48
49
  _confidence_bar = _mod._confidence_bar
49
50
 
@@ -326,6 +327,32 @@ def test_validate_relative_path(tmp_path, monkeypatch):
326
327
  assert result == test_file.resolve()
327
328
 
328
329
 
330
+ def test_validate_import_url_rejects_http():
331
+ """Remote imports should not downgrade to plaintext HTTP."""
332
+ with pytest.raises(ValueError, match="require https"):
333
+ _validate_import_url("http://example.com/instincts.yaml")
334
+
335
+
336
+ def test_validate_import_url_rejects_private_hosts(monkeypatch):
337
+ """Remote imports should not resolve to private or loopback addresses."""
338
+ monkeypatch.setattr(
339
+ _mod.socket,
340
+ "getaddrinfo",
341
+ lambda *args, **kwargs: [(None, None, None, None, ("127.0.0.1", 443))],
342
+ )
343
+ with pytest.raises(ValueError, match="non-public address"):
344
+ _validate_import_url("https://example.com/instincts.yaml")
345
+
346
+
347
+ def test_validate_import_url_allows_public_https(monkeypatch):
348
+ monkeypatch.setattr(
349
+ _mod.socket,
350
+ "getaddrinfo",
351
+ lambda *args, **kwargs: [(None, None, None, None, ("93.184.216.34", 443))],
352
+ )
353
+ assert _validate_import_url("https://example.com/instincts.yaml") == "https://example.com/instincts.yaml"
354
+
355
+
329
356
  # ─────────────────────────────────────────────
330
357
  # detect_project tests
331
358
  # ─────────────────────────────────────────────
@@ -1,7 +1,8 @@
1
1
  ---
2
2
  name: cost-aware-llm-pipeline
3
3
  description: Cost optimization patterns for LLM API usage — model routing by task complexity, budget tracking, retry logic, and prompt caching.
4
- origin: ECC
4
+ metadata:
5
+ origin: ECC
5
6
  ---
6
7
 
7
8
  # Cost-Aware LLM Pipeline
@@ -1,147 +1,97 @@
1
1
  ---
2
2
  name: cost-tracking
3
- description: Track and report Claude Code token usage, spending, and budgets from a local cost-tracking database. Use when the user asks about costs, spending, usage, tokens, budgets, or cost breakdowns by project, tool, session, or date.
4
- origin: community
3
+ description: Track and report Claude Code token usage, spending, and budgets from the local ECC cost-tracker metrics log. Use when the user asks about costs, spending, usage, tokens, budgets, or cost breakdowns by model, session, or date.
4
+ metadata:
5
+ origin: community
5
6
  ---
6
7
 
7
8
  # Cost Tracking
8
9
 
9
- Use this skill to analyze Claude Code cost and usage history from a local SQLite
10
- database. It is intended for users who already have a cost-tracking hook or
11
- plugin writing usage rows to `~/.claude-cost-tracker/usage.db`.
10
+ Use this skill to analyze Claude Code cost and usage history from the metrics log
11
+ that ECC's `stop:cost-tracker` hook writes.
12
12
 
13
- Source: salvaged from stale community PR #1304 by `MayurBhavsar`.
13
+ ## Where the data lives
14
14
 
15
- ## When to Use
16
-
17
- - The user asks "how much have I spent?", "what did this session cost?", or
18
- "what is my token usage?"
19
- - The user mentions budgets, spending limits, overruns, or cost controls.
20
- - The user wants a cost breakdown by project, tool, session, model, or date.
21
- - The user wants to compare today against yesterday or inspect a recent trend.
22
- - The user asks for a CSV export of recent usage records.
23
-
24
- ## How It Works
15
+ The tracker appends one JSON object per session-stop to
16
+ `~/.claude/metrics/costs.jsonl`. Each row is a **cumulative snapshot for that
17
+ session**, so to total spend you take the **latest row per `session_id`** and
18
+ sum across sessions summing every row multiply-counts.
25
19
 
26
- First verify prerequisites:
20
+ Row schema:
27
21
 
28
- ```bash
29
- command -v sqlite3 >/dev/null && echo "sqlite3 available" || echo "sqlite3 missing"
30
- test -f ~/.claude-cost-tracker/usage.db && echo "Database found" || echo "Database not found"
31
- ```
32
-
33
- If the database is missing, do not fabricate usage data. Tell the user that cost
34
- tracking is not configured and suggest installing or enabling a trusted local
35
- cost-tracking hook/plugin.
36
-
37
- The expected `usage` table usually contains one row per tool call or model
38
- interaction. Column names vary by tracker, but the examples below assume:
39
-
40
- | Column | Meaning |
22
+ | Field | Meaning |
41
23
  | --- | --- |
42
- | `timestamp` | ISO timestamp for the usage event |
43
- | `project` | Project or repository name |
44
- | `tool_name` | Tool or event name |
45
- | `input_tokens` | Input token count, when recorded |
46
- | `output_tokens` | Output token count, when recorded |
47
- | `cost_usd` | Precomputed cost in USD |
24
+ | `timestamp` | ISO timestamp of the snapshot |
48
25
  | `session_id` | Claude Code session identifier |
49
- | `model` | Model used for the event |
26
+ | `transcript_path` | Path to the session transcript |
27
+ | `model` | Model used |
28
+ | `input_tokens` / `output_tokens` | Token counts |
29
+ | `cache_write_tokens` / `cache_read_tokens` | Prompt-cache token counts |
30
+ | `estimated_cost_usd` | Precomputed cumulative cost in USD for the session |
50
31
 
51
- Prefer `cost_usd` over hand-calculating pricing. Model prices and cache pricing
52
- change over time, and the tracker should be the source of truth for how each row
53
- was priced.
32
+ Prefer `estimated_cost_usd` over hand-calculating pricing model and cache
33
+ prices change, and the tracker is the source of truth.
54
34
 
55
- ## Examples
35
+ ## When to Use
56
36
 
57
- ### Quick Summary
37
+ - The user asks "how much have I spent?", "what did this session cost?", or
38
+ "what is my token usage?"
39
+ - The user mentions budgets, spending limits, overruns, or cost controls.
40
+ - The user wants a cost breakdown by model, session, or date, or a CSV export.
58
41
 
59
- ```bash
60
- sqlite3 ~/.claude-cost-tracker/usage.db "
61
- SELECT
62
- 'Today: $' || ROUND(COALESCE(SUM(CASE WHEN date(timestamp) = date('now') THEN cost_usd END), 0), 4) ||
63
- ' | Total: $' || ROUND(COALESCE(SUM(cost_usd), 0), 4) ||
64
- ' | Calls: ' || COUNT(*) ||
65
- ' | Sessions: ' || COUNT(DISTINCT session_id)
66
- FROM usage;
67
- "
68
- ```
42
+ ## How It Works
69
43
 
70
- ### Cost By Project
44
+ First verify the log exists (use `node`, not `sqlite3` — the tracker writes
45
+ JSONL, and `node` is cross-platform):
71
46
 
72
47
  ```bash
73
- sqlite3 -header -column ~/.claude-cost-tracker/usage.db "
74
- SELECT project, ROUND(SUM(cost_usd), 4) AS cost, COUNT(*) AS calls
75
- FROM usage
76
- GROUP BY project
77
- ORDER BY cost DESC;
78
- "
48
+ node -e 'const fs=require("fs"),os=require("os"),p=require("path");const f=p.join(os.homedir(),".claude","metrics","costs.jsonl");console.log(fs.existsSync(f)?"cost log found":"cost log not found: "+f)'
79
49
  ```
80
50
 
81
- ### Cost By Tool
51
+ If the log is missing, do not fabricate usage data. Tell the user that cost
52
+ tracking populates after the first session ends with the `stop:cost-tracker`
53
+ hook enabled.
82
54
 
83
- ```bash
84
- sqlite3 -header -column ~/.claude-cost-tracker/usage.db "
85
- SELECT tool_name, ROUND(SUM(cost_usd), 4) AS cost, COUNT(*) AS calls
86
- FROM usage
87
- GROUP BY tool_name
88
- ORDER BY cost DESC;
89
- "
90
- ```
91
-
92
- ### Last Seven Days
55
+ ## Example — summary, by model, last 7 days
93
56
 
94
57
  ```bash
95
- sqlite3 -header -column ~/.claude-cost-tracker/usage.db "
96
- SELECT date(timestamp) AS date, ROUND(SUM(cost_usd), 4) AS cost, COUNT(*) AS calls
97
- FROM usage
98
- GROUP BY date(timestamp)
99
- ORDER BY date DESC
100
- LIMIT 7;
101
- "
58
+ node -e '
59
+ const fs=require("fs"),os=require("os"),path=require("path");
60
+ const f=path.join(os.homedir(),".claude","metrics","costs.jsonl");
61
+ if(!fs.existsSync(f)){console.log("cost log not found: "+f);process.exit(0);}
62
+ const rows=fs.readFileSync(f,"utf8").split(/\r?\n/).filter(Boolean).map(l=>{try{return JSON.parse(l)}catch{return null}}).filter(Boolean);
63
+ const bySession=new Map();
64
+ for(const r of rows){const k=r.session_id||r.transcript_path||r.timestamp;const p=bySession.get(k);if(!p||String(r.timestamp)>String(p.timestamp))bySession.set(k,r);}
65
+ const latest=[...bySession.values()];
66
+ const cost=r=>Number(r.estimated_cost_usd)||0, day=r=>String(r.timestamp||"").slice(0,10), sum=a=>a.reduce((s,r)=>s+cost(r),0), f4=n=>"$"+n.toFixed(4);
67
+ const today=new Date().toISOString().slice(0,10), yest=new Date(Date.now()-864e5).toISOString().slice(0,10);
68
+ console.log("today: "+f4(sum(latest.filter(r=>day(r)===today)))+" | yesterday: "+f4(sum(latest.filter(r=>day(r)===yest)))+" | total: "+f4(sum(latest))+" ("+latest.length+" sessions)");
69
+ const m=new Map();for(const r of latest){const k=r.model||"(unknown)";m.set(k,(m.get(k)||0)+cost(r));}
70
+ console.log("by model:");[...m.entries()].sort((a,b)=>b[1]-a[1]).forEach(([k,v])=>console.log(" "+f4(v)+" "+k));
71
+ '
102
72
  ```
103
73
 
104
- ### Session Drilldown
105
-
106
- ```bash
107
- sqlite3 -header -column ~/.claude-cost-tracker/usage.db "
108
- SELECT session_id,
109
- MIN(timestamp) AS started,
110
- MAX(timestamp) AS ended,
111
- ROUND(SUM(cost_usd), 4) AS cost,
112
- COUNT(*) AS calls
113
- FROM usage
114
- GROUP BY session_id
115
- ORDER BY started DESC
116
- LIMIT 10;
117
- "
118
- ```
74
+ For a session drilldown or CSV export, iterate the same `latest` set (or the raw
75
+ rows for CSV) and print the fields you need.
119
76
 
120
77
  ## Reporting Guidance
121
78
 
122
- When presenting cost data, include:
123
-
124
- 1. Today's spend and yesterday comparison.
125
- 2. Total spend across the tracked database.
126
- 3. Top projects ranked by cost.
127
- 4. Top tools ranked by cost.
128
- 5. Session count and average cost per session when enough data exists.
129
-
130
- For small amounts, format currency with four decimal places. For larger amounts,
131
- two decimals are enough.
79
+ When presenting cost data, include today's spend vs yesterday, total across all
80
+ sessions, a by-model breakdown, and session count. Format sub-dollar amounts
81
+ with four decimals, larger amounts with two.
132
82
 
133
83
  ## Anti-Patterns
134
84
 
135
- - Do not estimate costs from raw token counts when `cost_usd` is present.
136
- - Do not assume the database exists without checking.
137
- - Do not run unbounded `SELECT *` exports on large databases.
85
+ - Do not sum every row they are cumulative per session; reduce to the latest
86
+ row per `session_id` first.
87
+ - Do not estimate costs from raw token counts when `estimated_cost_usd` is present.
88
+ - Do not assume the log exists without checking.
138
89
  - Do not hard-code current model pricing in user-facing answers.
139
- - Do not recommend installing unreviewed hooks or plugins that execute arbitrary
140
- code.
90
+ - Do not recommend installing unreviewed hooks or plugins that execute arbitrary code.
141
91
 
142
92
  ## Related
143
93
 
144
- - `/cost-report` - Command-form report using the same database.
94
+ - `/cost-report` - Command-form report over the same metrics log.
145
95
  - `cost-aware-llm-pipeline` - Model-routing and budget-design patterns.
146
96
  - `token-budget-advisor` - Context and token-budget planning.
147
97
  - `strategic-compact` - Context compaction to reduce repeated token spend.
@@ -1,7 +1,8 @@
1
1
  ---
2
2
  name: council
3
3
  description: Convene a four-voice council for ambiguous decisions, tradeoffs, and go/no-go calls. Use when multiple valid paths exist and you need structured disagreement before choosing.
4
- origin: ECC
4
+ metadata:
5
+ origin: ECC
5
6
  ---
6
7
 
7
8
  # Council
@@ -1,7 +1,8 @@
1
1
  ---
2
2
  name: cpp-coding-standards
3
3
  description: C++ coding standards based on the C++ Core Guidelines (isocpp.github.io). Use when writing, reviewing, or refactoring C++ code to enforce modern, safe, and idiomatic practices.
4
- origin: ECC
4
+ metadata:
5
+ origin: ECC
5
6
  ---
6
7
 
7
8
  # C++ Coding Standards (C++ Core Guidelines)
@@ -1,7 +1,8 @@
1
1
  ---
2
2
  name: cpp-testing
3
3
  description: Use only when writing/updating/fixing C++ tests, configuring GoogleTest/CTest, diagnosing failing or flaky tests, or adding coverage/sanitizers.
4
- origin: ECC
4
+ metadata:
5
+ origin: ECC
5
6
  ---
6
7
 
7
8
  # C++ Testing (Agent Skill)
@@ -1,7 +1,8 @@
1
1
  ---
2
2
  name: crosspost
3
3
  description: Multi-platform content distribution across X, LinkedIn, Threads, and Bluesky. Adapts content per platform using content-engine patterns. Never posts identical content cross-platform. Use when the user wants to distribute content across social platforms.
4
- origin: ECC
4
+ metadata:
5
+ origin: ECC
5
6
  ---
6
7
 
7
8
  # Crosspost
@@ -1,7 +1,8 @@
1
1
  ---
2
2
  name: csharp-testing
3
3
  description: C# and .NET testing patterns with xUnit, FluentAssertions, mocking, integration tests, and test organization best practices.
4
- origin: ECC
4
+ metadata:
5
+ origin: ECC
5
6
  ---
6
7
 
7
8
  # C# Testing Patterns
@@ -1,7 +1,8 @@
1
1
  ---
2
2
  name: customer-billing-ops
3
3
  description: Operate customer billing workflows such as subscriptions, refunds, churn triage, billing-portal recovery, and plan analysis using connected billing tools like Stripe. Use when the user needs to help a customer, inspect subscription state, or manage revenue-impacting billing operations.
4
- origin: ECC
4
+ metadata:
5
+ origin: ECC
5
6
  ---
6
7
 
7
8
  # Customer Billing Ops
@@ -11,8 +11,8 @@ description: >
11
11
  license: Apache-2.0
12
12
  version: 1.0.0
13
13
  homepage: https://github.com/affaan-m/everything-claude-code
14
- origin: ECC
15
14
  metadata:
15
+ origin: ECC
16
16
  author: evos
17
17
  clawdbot:
18
18
  emoji: ""
@@ -1,7 +1,8 @@
1
1
  ---
2
2
  name: dart-flutter-patterns
3
3
  description: Production-ready Dart and Flutter patterns covering null safety, immutable state, async composition, widget architecture, popular state management frameworks (BLoC, Riverpod, Provider), GoRouter navigation, Dio networking, Freezed code generation, and clean architecture.
4
- origin: ECC
4
+ metadata:
5
+ origin: ECC
5
6
  ---
6
7
 
7
8
  # Dart/Flutter Patterns
@@ -1,7 +1,8 @@
1
1
  ---
2
2
  name: dashboard-builder
3
3
  description: Build monitoring dashboards that answer real operator questions for Grafana, SigNoz, and similar platforms. Use when turning metrics into a working dashboard instead of a vanity board.
4
- origin: ECC direct-port adaptation
4
+ metadata:
5
+ origin: ECC direct-port adaptation
5
6
  version: "1.0.0"
6
7
  ---
7
8
 
@@ -1,7 +1,8 @@
1
1
  ---
2
2
  name: data-scraper-agent
3
3
  description: Build a fully automated AI-powered data collection agent for any public source — job boards, prices, news, GitHub, sports, anything. Scrapes on a schedule, enriches data with a free LLM (Gemini Flash), stores results in Notion/Sheets/Supabase, and learns from user feedback. Runs 100% free on GitHub Actions. Use when the user wants to monitor, collect, or track any public data automatically.
4
- origin: community
4
+ metadata:
5
+ origin: community
5
6
  ---
6
7
 
7
8
  # Data Scraper Agent
@@ -1,7 +1,8 @@
1
1
  ---
2
2
  name: data-throughput-accelerator
3
3
  description: Use when large data ingestion, backfill, export, ETL, warehouse loading, manifest catch-up, or table synchronization needs to become much faster while preserving data correctness.
4
- origin: ECC
4
+ metadata:
5
+ origin: ECC
5
6
  tools: Read, Write, Edit, Bash, Grep, Glob
6
7
  ---
7
8
 
@@ -1,7 +1,8 @@
1
1
  ---
2
2
  name: database-migrations
3
3
  description: Database migration best practices for schema changes, data migrations, rollbacks, and zero-downtime deployments across PostgreSQL, MySQL, and common ORMs (Prisma, Drizzle, Kysely, Django, TypeORM, golang-migrate).
4
- origin: ECC
4
+ metadata:
5
+ origin: ECC
5
6
  ---
6
7
 
7
8
  # Database Migration Patterns
@@ -1,7 +1,8 @@
1
1
  ---
2
2
  name: deep-research
3
3
  description: Multi-source deep research using firecrawl and exa MCPs. Searches the web, synthesizes findings, and delivers cited reports with source attribution. Use when the user wants thorough research on any topic with evidence and citations.
4
- origin: ECC
4
+ metadata:
5
+ origin: ECC
5
6
  ---
6
7
 
7
8
  # Deep Research
@@ -1,7 +1,8 @@
1
1
  ---
2
2
  name: defi-amm-security
3
3
  description: Security checklist for Solidity AMM contracts, liquidity pools, and swap flows. Covers reentrancy, CEI ordering, donation or inflation attacks, oracle manipulation, slippage, admin controls, and integer math.
4
- origin: ECC direct-port adaptation
4
+ metadata:
5
+ origin: ECC direct-port adaptation
5
6
  version: "1.0.0"
6
7
  ---
7
8
 
@@ -1,7 +1,8 @@
1
1
  ---
2
2
  name: deployment-patterns
3
3
  description: Deployment workflows, CI/CD pipeline patterns, Docker containerization, health checks, rollback strategies, and production readiness checklists for web applications.
4
- origin: ECC
4
+ metadata:
5
+ origin: ECC
5
6
  ---
6
7
 
7
8
  # Deployment Patterns
@@ -1,7 +1,8 @@
1
1
  ---
2
2
  name: design-system
3
3
  description: Use this skill to generate or audit design systems, check visual consistency, and review PRs that touch styling.
4
- origin: ECC
4
+ metadata:
5
+ origin: ECC
5
6
  ---
6
7
 
7
8
  # Design System — Generate & Audit Visual Systems
@@ -1,7 +1,8 @@
1
1
  ---
2
2
  name: django-celery
3
3
  description: Django + Celery async task patterns — configuration, task design, beat scheduling, retries, canvas workflows, monitoring, and testing. Use when adding background jobs, scheduled tasks, or async processing to a Django app.
4
- origin: ECC
4
+ metadata:
5
+ origin: ECC
5
6
  ---
6
7
 
7
8
  # Django + Celery Async Task Patterns
@@ -22,7 +23,7 @@ Production-grade patterns for background task processing in Django using Celery
22
23
  ### Installation
23
24
 
24
25
  ```bash
25
- pip install celery[redis] django-celery-results django-celery-beat
26
+ pip install 'celery[redis]' django-celery-results django-celery-beat
26
27
  ```
27
28
 
28
29
  ### `celery.py` — App Entrypoint