agim-cli 1.2.147 → 1.2.149

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 (350) hide show
  1. package/CHANGELOG.md +158 -0
  2. package/dist/core/skills/builtin/ECC_LICENSE +21 -0
  3. package/dist/core/skills/builtin/ECC_NOTICE.md +28 -0
  4. package/dist/core/skills/builtin/accessibility/SKILL.md +146 -0
  5. package/dist/core/skills/builtin/agent-eval/SKILL.md +145 -0
  6. package/dist/core/skills/builtin/agent-harness-construction/SKILL.md +73 -0
  7. package/dist/core/skills/builtin/agent-introspection-debugging/SKILL.md +153 -0
  8. package/dist/core/skills/builtin/agentic-engineering/SKILL.md +63 -0
  9. package/dist/core/skills/builtin/ai-first-engineering/SKILL.md +51 -0
  10. package/dist/core/skills/builtin/ai-regression-testing/SKILL.md +385 -0
  11. package/dist/core/skills/builtin/android-clean-architecture/SKILL.md +339 -0
  12. package/dist/core/skills/builtin/angular-developer/SKILL.md +154 -0
  13. package/dist/core/skills/builtin/angular-developer/references/angular-animations.md +160 -0
  14. package/dist/core/skills/builtin/angular-developer/references/angular-aria.md +410 -0
  15. package/dist/core/skills/builtin/angular-developer/references/cli.md +86 -0
  16. package/dist/core/skills/builtin/angular-developer/references/component-harnesses.md +59 -0
  17. package/dist/core/skills/builtin/angular-developer/references/component-styling.md +91 -0
  18. package/dist/core/skills/builtin/angular-developer/references/components.md +117 -0
  19. package/dist/core/skills/builtin/angular-developer/references/creating-services.md +97 -0
  20. package/dist/core/skills/builtin/angular-developer/references/data-resolvers.md +69 -0
  21. package/dist/core/skills/builtin/angular-developer/references/define-routes.md +67 -0
  22. package/dist/core/skills/builtin/angular-developer/references/defining-providers.md +72 -0
  23. package/dist/core/skills/builtin/angular-developer/references/di-fundamentals.md +120 -0
  24. package/dist/core/skills/builtin/angular-developer/references/e2e-testing.md +56 -0
  25. package/dist/core/skills/builtin/angular-developer/references/effects.md +83 -0
  26. package/dist/core/skills/builtin/angular-developer/references/hierarchical-injectors.md +43 -0
  27. package/dist/core/skills/builtin/angular-developer/references/host-elements.md +80 -0
  28. package/dist/core/skills/builtin/angular-developer/references/injection-context.md +63 -0
  29. package/dist/core/skills/builtin/angular-developer/references/inputs.md +101 -0
  30. package/dist/core/skills/builtin/angular-developer/references/linked-signal.md +59 -0
  31. package/dist/core/skills/builtin/angular-developer/references/loading-strategies.md +61 -0
  32. package/dist/core/skills/builtin/angular-developer/references/mcp.md +108 -0
  33. package/dist/core/skills/builtin/angular-developer/references/navigate-to-routes.md +69 -0
  34. package/dist/core/skills/builtin/angular-developer/references/outputs.md +86 -0
  35. package/dist/core/skills/builtin/angular-developer/references/reactive-forms.md +122 -0
  36. package/dist/core/skills/builtin/angular-developer/references/rendering-strategies.md +44 -0
  37. package/dist/core/skills/builtin/angular-developer/references/resource.md +77 -0
  38. package/dist/core/skills/builtin/angular-developer/references/route-animations.md +56 -0
  39. package/dist/core/skills/builtin/angular-developer/references/route-guards.md +52 -0
  40. package/dist/core/skills/builtin/angular-developer/references/router-lifecycle.md +45 -0
  41. package/dist/core/skills/builtin/angular-developer/references/router-testing.md +87 -0
  42. package/dist/core/skills/builtin/angular-developer/references/show-routes-with-outlets.md +68 -0
  43. package/dist/core/skills/builtin/angular-developer/references/signal-forms.md +795 -0
  44. package/dist/core/skills/builtin/angular-developer/references/signals-overview.md +94 -0
  45. package/dist/core/skills/builtin/angular-developer/references/tailwind-css.md +69 -0
  46. package/dist/core/skills/builtin/angular-developer/references/template-driven-forms.md +114 -0
  47. package/dist/core/skills/builtin/angular-developer/references/testing-fundamentals.md +65 -0
  48. package/dist/core/skills/builtin/api-connector-builder/SKILL.md +120 -0
  49. package/dist/core/skills/builtin/api-design/SKILL.md +523 -0
  50. package/dist/core/skills/builtin/architecture-decision-records/SKILL.md +179 -0
  51. package/dist/core/skills/builtin/article-writing/SKILL.md +79 -0
  52. package/dist/core/skills/builtin/automation-audit-ops/SKILL.md +142 -0
  53. package/dist/core/skills/builtin/autonomous-agent-harness/SKILL.md +273 -0
  54. package/dist/core/skills/builtin/autonomous-loops/SKILL.md +610 -0
  55. package/dist/core/skills/builtin/backend-patterns/SKILL.md +561 -0
  56. package/dist/core/skills/builtin/benchmark/SKILL.md +93 -0
  57. package/dist/core/skills/builtin/benchmark-optimization-loop/SKILL.md +69 -0
  58. package/dist/core/skills/builtin/blueprint/SKILL.md +105 -0
  59. package/dist/core/skills/builtin/browser-qa/SKILL.md +87 -0
  60. package/dist/core/skills/builtin/bun-runtime/SKILL.md +84 -0
  61. package/dist/core/skills/builtin/cisco-ios-patterns/SKILL.md +163 -0
  62. package/dist/core/skills/builtin/claude-devfleet/SKILL.md +111 -0
  63. package/dist/core/skills/builtin/click-path-audit/SKILL.md +244 -0
  64. package/dist/core/skills/builtin/clickhouse-io/SKILL.md +439 -0
  65. package/dist/core/skills/builtin/code-tour/SKILL.md +236 -0
  66. package/dist/core/skills/builtin/codebase-onboarding/SKILL.md +233 -0
  67. package/dist/core/skills/builtin/codehealth-mcp/SKILL.md +166 -0
  68. package/dist/core/skills/builtin/coding-standards/SKILL.md +550 -0
  69. package/dist/core/skills/builtin/compose-multiplatform-patterns/SKILL.md +299 -0
  70. package/dist/core/skills/builtin/config-gc/SKILL.md +119 -0
  71. package/dist/core/skills/builtin/content-engine/SKILL.md +131 -0
  72. package/dist/core/skills/builtin/content-hash-cache-pattern/SKILL.md +161 -0
  73. package/dist/core/skills/builtin/context-budget/SKILL.md +135 -0
  74. package/dist/core/skills/builtin/continuous-agent-loop/SKILL.md +45 -0
  75. package/dist/core/skills/builtin/continuous-learning/SKILL.md +131 -0
  76. package/dist/core/skills/builtin/continuous-learning/config.json +18 -0
  77. package/dist/core/skills/builtin/continuous-learning/evaluate-session.sh +69 -0
  78. package/dist/core/skills/builtin/continuous-learning-v2/SKILL.md +360 -0
  79. package/dist/core/skills/builtin/continuous-learning-v2/agents/observer-loop.sh +335 -0
  80. package/dist/core/skills/builtin/continuous-learning-v2/agents/observer.md +198 -0
  81. package/dist/core/skills/builtin/continuous-learning-v2/agents/session-guardian.sh +150 -0
  82. package/dist/core/skills/builtin/continuous-learning-v2/agents/start-observer.sh +248 -0
  83. package/dist/core/skills/builtin/continuous-learning-v2/config.json +8 -0
  84. package/dist/core/skills/builtin/continuous-learning-v2/hooks/observe.sh +498 -0
  85. package/dist/core/skills/builtin/continuous-learning-v2/scripts/detect-project.sh +322 -0
  86. package/dist/core/skills/builtin/continuous-learning-v2/scripts/instinct-cli.py +1914 -0
  87. package/dist/core/skills/builtin/continuous-learning-v2/scripts/lib/homunculus-dir.sh +31 -0
  88. package/dist/core/skills/builtin/continuous-learning-v2/scripts/migrate-homunculus.sh +62 -0
  89. package/dist/core/skills/builtin/continuous-learning-v2/scripts/test_parse_instinct.py +1045 -0
  90. package/dist/core/skills/builtin/cost-aware-llm-pipeline/SKILL.md +183 -0
  91. package/dist/core/skills/builtin/cost-tracking/SKILL.md +147 -0
  92. package/dist/core/skills/builtin/council/SKILL.md +203 -0
  93. package/dist/core/skills/builtin/cpp-coding-standards/SKILL.md +723 -0
  94. package/dist/core/skills/builtin/cpp-testing/SKILL.md +324 -0
  95. package/dist/core/skills/builtin/crosspost/SKILL.md +111 -0
  96. package/dist/core/skills/builtin/csharp-testing/SKILL.md +321 -0
  97. package/dist/core/skills/builtin/customs-trade-compliance/SKILL.md +263 -0
  98. package/dist/core/skills/builtin/dart-flutter-patterns/SKILL.md +563 -0
  99. package/dist/core/skills/builtin/dashboard-builder/SKILL.md +108 -0
  100. package/dist/core/skills/builtin/data-scraper-agent/SKILL.md +764 -0
  101. package/dist/core/skills/builtin/data-throughput-accelerator/SKILL.md +72 -0
  102. package/dist/core/skills/builtin/database-migrations/SKILL.md +429 -0
  103. package/dist/core/skills/builtin/deep-research/SKILL.md +159 -0
  104. package/dist/core/skills/builtin/defi-amm-security/SKILL.md +166 -0
  105. package/dist/core/skills/builtin/deployment-patterns/SKILL.md +427 -0
  106. package/dist/core/skills/builtin/design-system/SKILL.md +82 -0
  107. package/dist/core/skills/builtin/django-celery/SKILL.md +457 -0
  108. package/dist/core/skills/builtin/django-patterns/SKILL.md +734 -0
  109. package/dist/core/skills/builtin/django-security/SKILL.md +593 -0
  110. package/dist/core/skills/builtin/django-tdd/SKILL.md +729 -0
  111. package/dist/core/skills/builtin/django-verification/SKILL.md +469 -0
  112. package/dist/core/skills/builtin/dmux-workflows/SKILL.md +191 -0
  113. package/dist/core/skills/builtin/docker-patterns/SKILL.md +364 -0
  114. package/dist/core/skills/builtin/documentation-lookup/SKILL.md +90 -0
  115. package/dist/core/skills/builtin/dotnet-patterns/SKILL.md +321 -0
  116. package/dist/core/skills/builtin/dynamic-workflow-mode/SKILL.md +123 -0
  117. package/dist/core/skills/builtin/e2e-testing/SKILL.md +326 -0
  118. package/dist/core/skills/builtin/email-ops/SKILL.md +121 -0
  119. package/dist/core/skills/builtin/energy-procurement/SKILL.md +228 -0
  120. package/dist/core/skills/builtin/enterprise-agent-ops/SKILL.md +50 -0
  121. package/dist/core/skills/builtin/error-handling/SKILL.md +376 -0
  122. package/dist/core/skills/builtin/eval-harness/SKILL.md +270 -0
  123. package/dist/core/skills/builtin/evm-token-decimals/SKILL.md +130 -0
  124. package/dist/core/skills/builtin/exa-search/SKILL.md +107 -0
  125. package/dist/core/skills/builtin/fal-ai-media/SKILL.md +288 -0
  126. package/dist/core/skills/builtin/fastapi-patterns/SKILL.md +513 -0
  127. package/dist/core/skills/builtin/finance-billing-ops/SKILL.md +127 -0
  128. package/dist/core/skills/builtin/flox-environments/SKILL.md +496 -0
  129. package/dist/core/skills/builtin/flutter-dart-code-review/SKILL.md +435 -0
  130. package/dist/core/skills/builtin/foundation-models-on-device/SKILL.md +243 -0
  131. package/dist/core/skills/builtin/frontend-a11y/SKILL.md +445 -0
  132. package/dist/core/skills/builtin/frontend-design-direction/SKILL.md +92 -0
  133. package/dist/core/skills/builtin/frontend-patterns/SKILL.md +656 -0
  134. package/dist/core/skills/builtin/frontend-slides/SKILL.md +184 -0
  135. package/dist/core/skills/builtin/frontend-slides/STYLE_PRESETS.md +330 -0
  136. package/dist/core/skills/builtin/frontend-slides/animation-patterns.md +122 -0
  137. package/dist/core/skills/builtin/frontend-slides/html-template.md +419 -0
  138. package/dist/core/skills/builtin/frontend-slides/scripts/export-pdf.sh +418 -0
  139. package/dist/core/skills/builtin/frontend-slides/scripts/extract-pptx.py +96 -0
  140. package/dist/core/skills/builtin/frontend-slides/viewport-base.css +153 -0
  141. package/dist/core/skills/builtin/fsharp-testing/SKILL.md +280 -0
  142. package/dist/core/skills/builtin/gan-style-harness/SKILL.md +278 -0
  143. package/dist/core/skills/builtin/gateguard/SKILL.md +132 -0
  144. package/dist/core/skills/builtin/git-workflow/SKILL.md +715 -0
  145. package/dist/core/skills/builtin/github-ops/SKILL.md +144 -0
  146. package/dist/core/skills/builtin/golang-patterns/SKILL.md +674 -0
  147. package/dist/core/skills/builtin/golang-testing/SKILL.md +720 -0
  148. package/dist/core/skills/builtin/healthcare-cdss-patterns/SKILL.md +245 -0
  149. package/dist/core/skills/builtin/healthcare-emr-patterns/SKILL.md +159 -0
  150. package/dist/core/skills/builtin/healthcare-eval-harness/SKILL.md +207 -0
  151. package/dist/core/skills/builtin/healthcare-phi-compliance/SKILL.md +145 -0
  152. package/dist/core/skills/builtin/hermes-imports/SKILL.md +88 -0
  153. package/dist/core/skills/builtin/hexagonal-architecture/SKILL.md +276 -0
  154. package/dist/core/skills/builtin/hipaa-compliance/SKILL.md +78 -0
  155. package/dist/core/skills/builtin/hookify-rules/SKILL.md +128 -0
  156. package/dist/core/skills/builtin/inherit-legacy-style/SKILL.md +156 -0
  157. package/dist/core/skills/builtin/intent-driven-development/SKILL.md +360 -0
  158. package/dist/core/skills/builtin/inventory-demand-planning/SKILL.md +247 -0
  159. package/dist/core/skills/builtin/ios-icon-gen/SKILL.md +157 -0
  160. package/dist/core/skills/builtin/ios-icon-gen/scripts/generate_icons.swift +258 -0
  161. package/dist/core/skills/builtin/ios-icon-gen/scripts/iconify_gen.sh +235 -0
  162. package/dist/core/skills/builtin/iterative-retrieval/SKILL.md +211 -0
  163. package/dist/core/skills/builtin/java-coding-standards/SKILL.md +383 -0
  164. package/dist/core/skills/builtin/jira-integration/SKILL.md +302 -0
  165. package/dist/core/skills/builtin/jpa-patterns/SKILL.md +151 -0
  166. package/dist/core/skills/builtin/knowledge-ops/SKILL.md +154 -0
  167. package/dist/core/skills/builtin/kotlin-coroutines-flows/SKILL.md +284 -0
  168. package/dist/core/skills/builtin/kotlin-exposed-patterns/SKILL.md +719 -0
  169. package/dist/core/skills/builtin/kotlin-ktor-patterns/SKILL.md +689 -0
  170. package/dist/core/skills/builtin/kotlin-patterns/SKILL.md +711 -0
  171. package/dist/core/skills/builtin/kotlin-testing/SKILL.md +824 -0
  172. package/dist/core/skills/builtin/kubernetes-patterns/SKILL.md +755 -0
  173. package/dist/core/skills/builtin/laravel-patterns/SKILL.md +415 -0
  174. package/dist/core/skills/builtin/laravel-plugin-discovery/SKILL.md +229 -0
  175. package/dist/core/skills/builtin/laravel-security/SKILL.md +947 -0
  176. package/dist/core/skills/builtin/laravel-tdd/SKILL.md +674 -0
  177. package/dist/core/skills/builtin/laravel-verification/SKILL.md +179 -0
  178. package/dist/core/skills/builtin/latency-critical-systems/SKILL.md +73 -0
  179. package/dist/core/skills/builtin/lead-intelligence/SKILL.md +321 -0
  180. package/dist/core/skills/builtin/lead-intelligence/agents/enrichment-agent.md +85 -0
  181. package/dist/core/skills/builtin/lead-intelligence/agents/mutual-mapper.md +75 -0
  182. package/dist/core/skills/builtin/lead-intelligence/agents/outreach-drafter.md +98 -0
  183. package/dist/core/skills/builtin/lead-intelligence/agents/signal-scorer.md +60 -0
  184. package/dist/core/skills/builtin/liquid-glass-design/SKILL.md +279 -0
  185. package/dist/core/skills/builtin/llm-trading-agent-security/SKILL.md +146 -0
  186. package/dist/core/skills/builtin/logistics-exception-management/SKILL.md +222 -0
  187. package/dist/core/skills/builtin/make-interfaces-feel-better/SKILL.md +151 -0
  188. package/dist/core/skills/builtin/market-research/SKILL.md +75 -0
  189. package/dist/core/skills/builtin/marketing-campaign/SKILL.md +113 -0
  190. package/dist/core/skills/builtin/mcp-server-patterns/SKILL.md +69 -0
  191. package/dist/core/skills/builtin/messages-ops/SKILL.md +104 -0
  192. package/dist/core/skills/builtin/mle-workflow/SKILL.md +346 -0
  193. package/dist/core/skills/builtin/motion-advanced/SKILL.md +596 -0
  194. package/dist/core/skills/builtin/motion-foundations/SKILL.md +299 -0
  195. package/dist/core/skills/builtin/motion-patterns/SKILL.md +434 -0
  196. package/dist/core/skills/builtin/motion-ui/SKILL.md +575 -0
  197. package/dist/core/skills/builtin/mysql-patterns/SKILL.md +412 -0
  198. package/dist/core/skills/builtin/nanoclaw-repl/SKILL.md +33 -0
  199. package/dist/core/skills/builtin/nestjs-patterns/SKILL.md +230 -0
  200. package/dist/core/skills/builtin/netmiko-ssh-automation/SKILL.md +173 -0
  201. package/dist/core/skills/builtin/network-bgp-diagnostics/SKILL.md +167 -0
  202. package/dist/core/skills/builtin/network-config-validation/SKILL.md +210 -0
  203. package/dist/core/skills/builtin/network-interface-health/SKILL.md +152 -0
  204. package/dist/core/skills/builtin/nextjs-turbopack/SKILL.md +57 -0
  205. package/dist/core/skills/builtin/nodejs-keccak256/SKILL.md +102 -0
  206. package/dist/core/skills/builtin/nutrient-document-processing/SKILL.md +167 -0
  207. package/dist/core/skills/builtin/nuxt4-patterns/SKILL.md +100 -0
  208. package/dist/core/skills/builtin/openclaw-persona-forge/SKILL.md +288 -0
  209. package/dist/core/skills/builtin/openclaw-persona-forge/gacha.py +224 -0
  210. package/dist/core/skills/builtin/openclaw-persona-forge/gacha.sh +5 -0
  211. package/dist/core/skills/builtin/openclaw-persona-forge/references/avatar-style.md +124 -0
  212. package/dist/core/skills/builtin/openclaw-persona-forge/references/boundary-rules.md +53 -0
  213. package/dist/core/skills/builtin/openclaw-persona-forge/references/error-handling.md +53 -0
  214. package/dist/core/skills/builtin/openclaw-persona-forge/references/identity-tension.md +48 -0
  215. package/dist/core/skills/builtin/openclaw-persona-forge/references/naming-system.md +39 -0
  216. package/dist/core/skills/builtin/openclaw-persona-forge/references/output-template.md +166 -0
  217. package/dist/core/skills/builtin/opensource-pipeline/SKILL.md +255 -0
  218. package/dist/core/skills/builtin/orch-add-feature/SKILL.md +44 -0
  219. package/dist/core/skills/builtin/orch-build-mvp/SKILL.md +48 -0
  220. package/dist/core/skills/builtin/orch-change-feature/SKILL.md +42 -0
  221. package/dist/core/skills/builtin/orch-fix-defect/SKILL.md +42 -0
  222. package/dist/core/skills/builtin/orch-pipeline/SKILL.md +120 -0
  223. package/dist/core/skills/builtin/orch-refine-code/SKILL.md +43 -0
  224. package/dist/core/skills/builtin/parallel-execution-optimizer/SKILL.md +72 -0
  225. package/dist/core/skills/builtin/perl-patterns/SKILL.md +504 -0
  226. package/dist/core/skills/builtin/perl-security/SKILL.md +503 -0
  227. package/dist/core/skills/builtin/perl-testing/SKILL.md +475 -0
  228. package/dist/core/skills/builtin/plan-orchestrate/SKILL.md +262 -0
  229. package/dist/core/skills/builtin/plankton-code-quality/SKILL.md +236 -0
  230. package/dist/core/skills/builtin/postgres-patterns/SKILL.md +147 -0
  231. package/dist/core/skills/builtin/prediction-market-oracle-research/SKILL.md +63 -0
  232. package/dist/core/skills/builtin/prediction-market-risk-review/SKILL.md +60 -0
  233. package/dist/core/skills/builtin/prisma-patterns/SKILL.md +371 -0
  234. package/dist/core/skills/builtin/product-capability/SKILL.md +141 -0
  235. package/dist/core/skills/builtin/product-lens/SKILL.md +92 -0
  236. package/dist/core/skills/builtin/production-audit/SKILL.md +206 -0
  237. package/dist/core/skills/builtin/production-scheduling/SKILL.md +238 -0
  238. package/dist/core/skills/builtin/prompt-optimizer/SKILL.md +398 -0
  239. package/dist/core/skills/builtin/python-patterns/SKILL.md +750 -0
  240. package/dist/core/skills/builtin/python-testing/SKILL.md +816 -0
  241. package/dist/core/skills/builtin/pytorch-patterns/SKILL.md +396 -0
  242. package/dist/core/skills/builtin/quality-nonconformance/SKILL.md +260 -0
  243. package/dist/core/skills/builtin/quarkus-patterns/SKILL.md +722 -0
  244. package/dist/core/skills/builtin/quarkus-security/SKILL.md +467 -0
  245. package/dist/core/skills/builtin/quarkus-tdd/SKILL.md +811 -0
  246. package/dist/core/skills/builtin/quarkus-verification/SKILL.md +479 -0
  247. package/dist/core/skills/builtin/ralphinho-rfc-pipeline/SKILL.md +67 -0
  248. package/dist/core/skills/builtin/react-patterns/SKILL.md +341 -0
  249. package/dist/core/skills/builtin/react-performance/SKILL.md +574 -0
  250. package/dist/core/skills/builtin/react-testing/SKILL.md +423 -0
  251. package/dist/core/skills/builtin/recsys-pipeline-architect/SKILL.md +114 -0
  252. package/dist/core/skills/builtin/recursive-decision-ledger/SKILL.md +79 -0
  253. package/dist/core/skills/builtin/redis-patterns/SKILL.md +403 -0
  254. package/dist/core/skills/builtin/regex-vs-llm-structured-text/SKILL.md +220 -0
  255. package/dist/core/skills/builtin/repo-scan/SKILL.md +78 -0
  256. package/dist/core/skills/builtin/research-ops/SKILL.md +112 -0
  257. package/dist/core/skills/builtin/returns-reverse-logistics/SKILL.md +240 -0
  258. package/dist/core/skills/builtin/rules-distill/SKILL.md +264 -0
  259. package/dist/core/skills/builtin/rules-distill/scripts/scan-rules.sh +58 -0
  260. package/dist/core/skills/builtin/rules-distill/scripts/scan-skills.sh +129 -0
  261. package/dist/core/skills/builtin/rust-patterns/SKILL.md +499 -0
  262. package/dist/core/skills/builtin/rust-testing/SKILL.md +500 -0
  263. package/dist/core/skills/builtin/safety-guard/SKILL.md +75 -0
  264. package/dist/core/skills/builtin/santa-method/SKILL.md +306 -0
  265. package/dist/core/skills/builtin/scientific-db-pubmed-database/SKILL.md +175 -0
  266. package/dist/core/skills/builtin/scientific-db-uspto-database/SKILL.md +177 -0
  267. package/dist/core/skills/builtin/scientific-pkg-gget/SKILL.md +166 -0
  268. package/dist/core/skills/builtin/scientific-thinking-literature-review/SKILL.md +192 -0
  269. package/dist/core/skills/builtin/scientific-thinking-scholar-evaluation/SKILL.md +160 -0
  270. package/dist/core/skills/builtin/search-first/SKILL.md +182 -0
  271. package/dist/core/skills/builtin/security-bounty-hunter/SKILL.md +99 -0
  272. package/dist/core/skills/builtin/security-review/SKILL.md +503 -0
  273. package/dist/core/skills/builtin/security-review/cloud-infrastructure-security.md +361 -0
  274. package/dist/core/skills/builtin/security-scan/SKILL.md +165 -0
  275. package/dist/core/skills/builtin/seo/SKILL.md +154 -0
  276. package/dist/core/skills/builtin/skill-comply/SKILL.md +58 -0
  277. package/dist/core/skills/builtin/skill-comply/fixtures/compliant_trace.jsonl +5 -0
  278. package/dist/core/skills/builtin/skill-comply/fixtures/noncompliant_trace.jsonl +3 -0
  279. package/dist/core/skills/builtin/skill-comply/fixtures/tdd_spec.yaml +44 -0
  280. package/dist/core/skills/builtin/skill-comply/prompts/classifier.md +24 -0
  281. package/dist/core/skills/builtin/skill-comply/prompts/scenario_generator.md +62 -0
  282. package/dist/core/skills/builtin/skill-comply/prompts/spec_generator.md +42 -0
  283. package/dist/core/skills/builtin/skill-comply/pyproject.toml +15 -0
  284. package/dist/core/skills/builtin/skill-comply/scripts/__init__.py +0 -0
  285. package/dist/core/skills/builtin/skill-comply/scripts/classifier.py +85 -0
  286. package/dist/core/skills/builtin/skill-comply/scripts/grader.py +124 -0
  287. package/dist/core/skills/builtin/skill-comply/scripts/parser.py +107 -0
  288. package/dist/core/skills/builtin/skill-comply/scripts/report.py +170 -0
  289. package/dist/core/skills/builtin/skill-comply/scripts/run.py +127 -0
  290. package/dist/core/skills/builtin/skill-comply/scripts/runner.py +186 -0
  291. package/dist/core/skills/builtin/skill-comply/scripts/scenario_generator.py +70 -0
  292. package/dist/core/skills/builtin/skill-comply/scripts/spec_generator.py +72 -0
  293. package/dist/core/skills/builtin/skill-comply/scripts/utils.py +13 -0
  294. package/dist/core/skills/builtin/skill-comply/tests/test_grader.py +197 -0
  295. package/dist/core/skills/builtin/skill-comply/tests/test_parser.py +90 -0
  296. package/dist/core/skills/builtin/skill-comply/tests/test_runner.py +172 -0
  297. package/dist/core/skills/builtin/skill-scout/SKILL.md +140 -0
  298. package/dist/core/skills/builtin/skill-stocktake/SKILL.md +194 -0
  299. package/dist/core/skills/builtin/skill-stocktake/scripts/quick-diff.sh +87 -0
  300. package/dist/core/skills/builtin/skill-stocktake/scripts/save-results.sh +56 -0
  301. package/dist/core/skills/builtin/skill-stocktake/scripts/scan.sh +170 -0
  302. package/dist/core/skills/builtin/springboot-patterns/SKILL.md +314 -0
  303. package/dist/core/skills/builtin/springboot-security/SKILL.md +272 -0
  304. package/dist/core/skills/builtin/springboot-tdd/SKILL.md +158 -0
  305. package/dist/core/skills/builtin/springboot-verification/SKILL.md +231 -0
  306. package/dist/core/skills/builtin/strategic-compact/SKILL.md +135 -0
  307. package/dist/core/skills/builtin/swift-actor-persistence/SKILL.md +143 -0
  308. package/dist/core/skills/builtin/swift-concurrency-6-2/SKILL.md +216 -0
  309. package/dist/core/skills/builtin/swift-protocol-di-testing/SKILL.md +190 -0
  310. package/dist/core/skills/builtin/swiftui-patterns/SKILL.md +259 -0
  311. package/dist/core/skills/builtin/tdd-workflow/SKILL.md +463 -0
  312. package/dist/core/skills/builtin/team-agent-orchestration/SKILL.md +110 -0
  313. package/dist/core/skills/builtin/team-builder/SKILL.md +168 -0
  314. package/dist/core/skills/builtin/terminal-ops/SKILL.md +109 -0
  315. package/dist/core/skills/builtin/tinystruct-patterns/SKILL.md +203 -0
  316. package/dist/core/skills/builtin/tinystruct-patterns/references/architecture.md +90 -0
  317. package/dist/core/skills/builtin/tinystruct-patterns/references/data-handling.md +60 -0
  318. package/dist/core/skills/builtin/tinystruct-patterns/references/database.md +99 -0
  319. package/dist/core/skills/builtin/tinystruct-patterns/references/routing.md +64 -0
  320. package/dist/core/skills/builtin/tinystruct-patterns/references/system-usage.md +97 -0
  321. package/dist/core/skills/builtin/tinystruct-patterns/references/testing.md +72 -0
  322. package/dist/core/skills/builtin/token-budget-advisor/SKILL.md +133 -0
  323. package/dist/core/skills/builtin/ui-demo/SKILL.md +465 -0
  324. package/dist/core/skills/builtin/ui-to-vue/SKILL.md +134 -0
  325. package/dist/core/skills/builtin/uncloud/SKILL.md +343 -0
  326. package/dist/core/skills/builtin/unified-notifications-ops/SKILL.md +187 -0
  327. package/dist/core/skills/builtin/verification-loop/SKILL.md +126 -0
  328. package/dist/core/skills/builtin/video-editing/SKILL.md +310 -0
  329. package/dist/core/skills/builtin/videodb/SKILL.md +374 -0
  330. package/dist/core/skills/builtin/videodb/reference/api-reference.md +550 -0
  331. package/dist/core/skills/builtin/videodb/reference/capture-reference.md +407 -0
  332. package/dist/core/skills/builtin/videodb/reference/capture.md +101 -0
  333. package/dist/core/skills/builtin/videodb/reference/editor.md +443 -0
  334. package/dist/core/skills/builtin/videodb/reference/generative.md +331 -0
  335. package/dist/core/skills/builtin/videodb/reference/rtstream-reference.md +564 -0
  336. package/dist/core/skills/builtin/videodb/reference/rtstream.md +65 -0
  337. package/dist/core/skills/builtin/videodb/reference/search.md +230 -0
  338. package/dist/core/skills/builtin/videodb/reference/streaming.md +406 -0
  339. package/dist/core/skills/builtin/videodb/reference/use-cases.md +118 -0
  340. package/dist/core/skills/builtin/videodb/scripts/ws_listener.py +282 -0
  341. package/dist/core/skills/builtin/visa-doc-translate/README.md +86 -0
  342. package/dist/core/skills/builtin/visa-doc-translate/SKILL.md +117 -0
  343. package/dist/core/skills/builtin/vite-patterns/SKILL.md +449 -0
  344. package/dist/core/skills/builtin/windows-desktop-e2e/SKILL.md +887 -0
  345. package/dist/core/skills/builtin/x-api/SKILL.md +234 -0
  346. package/dist/core/skills/loader.d.ts +23 -12
  347. package/dist/core/skills/loader.d.ts.map +1 -1
  348. package/dist/core/skills/loader.js +105 -2
  349. package/dist/core/skills/loader.js.map +1 -1
  350. package/package.json +1 -1
@@ -0,0 +1,299 @@
1
+ ---
2
+ name: compose-multiplatform-patterns
3
+ description: [ECC] Compose Multiplatform and Jetpack Compose patterns for KMP projects — state management, navigation, theming, performance, and platform-specific UI.
4
+ origin: ECC
5
+ ---
6
+
7
+ # Compose Multiplatform Patterns
8
+
9
+ Patterns for building shared UI across Android, iOS, Desktop, and Web using Compose Multiplatform and Jetpack Compose. Covers state management, navigation, theming, and performance.
10
+
11
+ ## When to Activate
12
+
13
+ - Building Compose UI (Jetpack Compose or Compose Multiplatform)
14
+ - Managing UI state with ViewModels and Compose state
15
+ - Implementing navigation in KMP or Android projects
16
+ - Designing reusable composables and design systems
17
+ - Optimizing recomposition and rendering performance
18
+
19
+ ## State Management
20
+
21
+ ### ViewModel + Single State Object
22
+
23
+ Use a single data class for screen state. Expose it as `StateFlow` and collect in Compose:
24
+
25
+ ```kotlin
26
+ data class ItemListState(
27
+ val items: List<Item> = emptyList(),
28
+ val isLoading: Boolean = false,
29
+ val error: String? = null,
30
+ val searchQuery: String = ""
31
+ )
32
+
33
+ class ItemListViewModel(
34
+ private val getItems: GetItemsUseCase
35
+ ) : ViewModel() {
36
+ private val _state = MutableStateFlow(ItemListState())
37
+ val state: StateFlow<ItemListState> = _state.asStateFlow()
38
+
39
+ fun onSearch(query: String) {
40
+ _state.update { it.copy(searchQuery = query) }
41
+ loadItems(query)
42
+ }
43
+
44
+ private fun loadItems(query: String) {
45
+ viewModelScope.launch {
46
+ _state.update { it.copy(isLoading = true) }
47
+ getItems(query).fold(
48
+ onSuccess = { items -> _state.update { it.copy(items = items, isLoading = false) } },
49
+ onFailure = { e -> _state.update { it.copy(error = e.message, isLoading = false) } }
50
+ )
51
+ }
52
+ }
53
+ }
54
+ ```
55
+
56
+ ### Collecting State in Compose
57
+
58
+ ```kotlin
59
+ @Composable
60
+ fun ItemListScreen(viewModel: ItemListViewModel = koinViewModel()) {
61
+ val state by viewModel.state.collectAsStateWithLifecycle()
62
+
63
+ ItemListContent(
64
+ state = state,
65
+ onSearch = viewModel::onSearch
66
+ )
67
+ }
68
+
69
+ @Composable
70
+ private fun ItemListContent(
71
+ state: ItemListState,
72
+ onSearch: (String) -> Unit
73
+ ) {
74
+ // Stateless composable — easy to preview and test
75
+ }
76
+ ```
77
+
78
+ ### Event Sink Pattern
79
+
80
+ For complex screens, use a sealed interface for events instead of multiple callback lambdas:
81
+
82
+ ```kotlin
83
+ sealed interface ItemListEvent {
84
+ data class Search(val query: String) : ItemListEvent
85
+ data class Delete(val itemId: String) : ItemListEvent
86
+ data object Refresh : ItemListEvent
87
+ }
88
+
89
+ // In ViewModel
90
+ fun onEvent(event: ItemListEvent) {
91
+ when (event) {
92
+ is ItemListEvent.Search -> onSearch(event.query)
93
+ is ItemListEvent.Delete -> deleteItem(event.itemId)
94
+ is ItemListEvent.Refresh -> loadItems(_state.value.searchQuery)
95
+ }
96
+ }
97
+
98
+ // In Composable — single lambda instead of many
99
+ ItemListContent(
100
+ state = state,
101
+ onEvent = viewModel::onEvent
102
+ )
103
+ ```
104
+
105
+ ## Navigation
106
+
107
+ ### Type-Safe Navigation (Compose Navigation 2.8+)
108
+
109
+ Define routes as `@Serializable` objects:
110
+
111
+ ```kotlin
112
+ @Serializable data object HomeRoute
113
+ @Serializable data class DetailRoute(val id: String)
114
+ @Serializable data object SettingsRoute
115
+
116
+ @Composable
117
+ fun AppNavHost(navController: NavHostController = rememberNavController()) {
118
+ NavHost(navController, startDestination = HomeRoute) {
119
+ composable<HomeRoute> {
120
+ HomeScreen(onNavigateToDetail = { id -> navController.navigate(DetailRoute(id)) })
121
+ }
122
+ composable<DetailRoute> { backStackEntry ->
123
+ val route = backStackEntry.toRoute<DetailRoute>()
124
+ DetailScreen(id = route.id)
125
+ }
126
+ composable<SettingsRoute> { SettingsScreen() }
127
+ }
128
+ }
129
+ ```
130
+
131
+ ### Dialog and Bottom Sheet Navigation
132
+
133
+ Use `dialog()` and overlay patterns instead of imperative show/hide:
134
+
135
+ ```kotlin
136
+ NavHost(navController, startDestination = HomeRoute) {
137
+ composable<HomeRoute> { /* ... */ }
138
+ dialog<ConfirmDeleteRoute> { backStackEntry ->
139
+ val route = backStackEntry.toRoute<ConfirmDeleteRoute>()
140
+ ConfirmDeleteDialog(
141
+ itemId = route.itemId,
142
+ onConfirm = { navController.popBackStack() },
143
+ onDismiss = { navController.popBackStack() }
144
+ )
145
+ }
146
+ }
147
+ ```
148
+
149
+ ## Composable Design
150
+
151
+ ### Slot-Based APIs
152
+
153
+ Design composables with slot parameters for flexibility:
154
+
155
+ ```kotlin
156
+ @Composable
157
+ fun AppCard(
158
+ modifier: Modifier = Modifier,
159
+ header: @Composable () -> Unit = {},
160
+ content: @Composable ColumnScope.() -> Unit,
161
+ actions: @Composable RowScope.() -> Unit = {}
162
+ ) {
163
+ Card(modifier = modifier) {
164
+ Column {
165
+ header()
166
+ Column(content = content)
167
+ Row(horizontalArrangement = Arrangement.End, content = actions)
168
+ }
169
+ }
170
+ }
171
+ ```
172
+
173
+ ### Modifier Ordering
174
+
175
+ Modifier order matters — apply in this sequence:
176
+
177
+ ```kotlin
178
+ Text(
179
+ text = "Hello",
180
+ modifier = Modifier
181
+ .padding(16.dp) // 1. Layout (padding, size)
182
+ .clip(RoundedCornerShape(8.dp)) // 2. Shape
183
+ .background(Color.White) // 3. Drawing (background, border)
184
+ .clickable { } // 4. Interaction
185
+ )
186
+ ```
187
+
188
+ ## KMP Platform-Specific UI
189
+
190
+ ### expect/actual for Platform Composables
191
+
192
+ ```kotlin
193
+ // commonMain
194
+ @Composable
195
+ expect fun PlatformStatusBar(darkIcons: Boolean)
196
+
197
+ // androidMain
198
+ @Composable
199
+ actual fun PlatformStatusBar(darkIcons: Boolean) {
200
+ val systemUiController = rememberSystemUiController()
201
+ SideEffect { systemUiController.setStatusBarColor(Color.Transparent, darkIcons) }
202
+ }
203
+
204
+ // iosMain
205
+ @Composable
206
+ actual fun PlatformStatusBar(darkIcons: Boolean) {
207
+ // iOS handles this via UIKit interop or Info.plist
208
+ }
209
+ ```
210
+
211
+ ## Performance
212
+
213
+ ### Stable Types for Skippable Recomposition
214
+
215
+ Mark classes as `@Stable` or `@Immutable` when all properties are stable:
216
+
217
+ ```kotlin
218
+ @Immutable
219
+ data class ItemUiModel(
220
+ val id: String,
221
+ val title: String,
222
+ val description: String,
223
+ val progress: Float
224
+ )
225
+ ```
226
+
227
+ ### Use `key()` and Lazy Lists Correctly
228
+
229
+ ```kotlin
230
+ LazyColumn {
231
+ items(
232
+ items = items,
233
+ key = { it.id } // Stable keys enable item reuse and animations
234
+ ) { item ->
235
+ ItemRow(item = item)
236
+ }
237
+ }
238
+ ```
239
+
240
+ ### Defer Reads with `derivedStateOf`
241
+
242
+ ```kotlin
243
+ val listState = rememberLazyListState()
244
+ val showScrollToTop by remember {
245
+ derivedStateOf { listState.firstVisibleItemIndex > 5 }
246
+ }
247
+ ```
248
+
249
+ ### Avoid Allocations in Recomposition
250
+
251
+ ```kotlin
252
+ // BAD — new lambda and list every recomposition
253
+ items.filter { it.isActive }.forEach { ActiveItem(it, onClick = { handle(it) }) }
254
+
255
+ // GOOD — key each item so callbacks stay attached to the right row
256
+ val activeItems = remember(items) { items.filter { it.isActive } }
257
+ activeItems.forEach { item ->
258
+ key(item.id) {
259
+ ActiveItem(item, onClick = { handle(item) })
260
+ }
261
+ }
262
+ ```
263
+
264
+ ## Theming
265
+
266
+ ### Material 3 Dynamic Theming
267
+
268
+ ```kotlin
269
+ @Composable
270
+ fun AppTheme(
271
+ darkTheme: Boolean = isSystemInDarkTheme(),
272
+ dynamicColor: Boolean = true,
273
+ content: @Composable () -> Unit
274
+ ) {
275
+ val colorScheme = when {
276
+ dynamicColor && Build.VERSION.SDK_INT >= Build.VERSION_CODES.S -> {
277
+ if (darkTheme) dynamicDarkColorScheme(LocalContext.current)
278
+ else dynamicLightColorScheme(LocalContext.current)
279
+ }
280
+ darkTheme -> darkColorScheme()
281
+ else -> lightColorScheme()
282
+ }
283
+
284
+ MaterialTheme(colorScheme = colorScheme, content = content)
285
+ }
286
+ ```
287
+
288
+ ## Anti-Patterns to Avoid
289
+
290
+ - Using `mutableStateOf` in ViewModels when `MutableStateFlow` with `collectAsStateWithLifecycle` is safer for lifecycle
291
+ - Passing `NavController` deep into composables — pass lambda callbacks instead
292
+ - Heavy computation inside `@Composable` functions — move to ViewModel or `remember {}`
293
+ - Using `LaunchedEffect(Unit)` as a substitute for ViewModel init — it re-runs on configuration change in some setups
294
+ - Creating new object instances in composable parameters — causes unnecessary recomposition
295
+
296
+ ## References
297
+
298
+ See skill: `android-clean-architecture` for module structure and layering.
299
+ See skill: `kotlin-coroutines-flows` for coroutine and Flow patterns.
@@ -0,0 +1,119 @@
1
+ ---
2
+ name: config-gc
3
+ description: [ECC] Garbage collection for your Claude Code configuration. Periodically scans ~/.claude (skills, memory, hooks, permissions, MCP servers, caches) for redundant, stale, orphaned, or low-value items, then walks the user through a confirm-each-deletion cleanup. Use when the user says "clean up my config", "config GC", "too many skills", "audit my setup", "my .claude is bloated", or asks for a periodic config review.
4
+ origin: ECC
5
+ ---
6
+
7
+ # Config GC — Garbage Collection for Claude Code Setups
8
+
9
+ Borrowed from runtime garbage collection: periodically scan for objects that are no longer referenced, redundant, expired, or low-value, and reclaim the space. The critical difference: **here, collection requires a human in the loop. Never delete autonomously.**
10
+
11
+ ## When to Activate
12
+
13
+ - The user asks to clean up, audit, or slim down their Claude Code configuration
14
+ - The user complains about too many skills, noisy hooks, or slow session startup
15
+ - A monthly/periodic config review is due
16
+ - After installing a large skill pack (e.g. this repo), to reconcile overlaps with existing setup
17
+
18
+ Do NOT activate for: cleaning project source code (that's refactoring), clearing chat history, or uninstalling Claude Code itself.
19
+
20
+ ## Design Philosophy
21
+
22
+ 1. **Append-only configs leak.** Skills, memory files, hooks, and permission entries only ever get added. Without periodic review they rot silently.
23
+ 2. **Regular audits beat one-time purges.** Scan every ~30 days, propose a small batch of candidates each time.
24
+ 3. **Per-channel strategies.** Each accumulation type (skills, hooks, permissions, ...) has its own staleness signals — don't apply one rule everywhere.
25
+ 4. **Soft-delete first.** Rename to `.disabled` > move to `~/.claude/_gc_trash/` > real deletion. Always keep an undo path.
26
+ 5. **Forced human-in-the-loop.** Every candidate gets its own `[y/n/skip]` confirmation. No "yes to all" shortcut.
27
+ 6. **Keep a log.** Every GC run appends to `~/.claude/gc_log.md`: what was touched, why, and how to undo it.
28
+
29
+ ## Scan Channels
30
+
31
+ | # | Channel | Path | Staleness / redundancy signals |
32
+ |---|---------|------|--------------------------------|
33
+ | 1 | Skills | `~/.claude/skills/*/` | Heavily overlapping names; never triggered in recent transcripts; domain mismatch with the user's actual work; broken or empty SKILL.md |
34
+ | 2 | Memory | `~/.claude/**/memory/*.md` + its index | Multiple index entries for one topic; contents contradicting newer entries; dates that have passed; orphan files missing from the index; sub-100-word fragments that should merge |
35
+ | 3 | Hooks | `~/.claude/hooks/` + settings | Scripts present on disk but referenced by no hook config; old versions superseded by rewrites |
36
+ | 4 | Permissions | `permissions.allow` in `settings.json` / `settings.local.json` | Duplicate entries; specific entries already covered by a wildcard (e.g. `Bash(git push)` when `Bash(*)` is allowed); one-off grants from past experiments |
37
+ | 5 | MCP servers | `~/.claude.json` or project `.mcp.json` | Servers that fail to connect; functional duplicates; long-unused |
38
+ | 6 | Scheduled reminders / jobs | wherever the user keeps them | Fired one-shots older than 30 days; jobs whose target scripts no longer exist |
39
+ | 7 | Project history | `~/.claude/projects/*/` | Stale handoff snapshots; session records superseded by newer state |
40
+ | 8 | Runtime caches | `cache/`, `file-history/`, `logs/`, `shell-snapshots/` | Sort by size and mtime; propose items >30 days old and large |
41
+
42
+ ## Workflow
43
+
44
+ 1. **Scan** all channels (or the subset the user names). Collect candidates with: path, channel, signal that flagged it, size, last-modified.
45
+ 2. **Rank** by confidence (broken/orphaned = high; merely old = low) and present as a numbered table. Cap each run at ~20 candidates — GC is periodic, not exhaustive.
46
+ 3. **Confirm one by one.** For each candidate show the evidence, then ask `[y/n/skip]`. The user can stop at any point.
47
+ 4. **Soft-delete confirmed items**: prefer `.disabled` rename for skills/hooks and `_gc_trash/<date>/` move for files. Permission entries live in JSON (no comments possible): back up the settings file, record each removed entry verbatim in `gc_log.md`, then remove it from the `allow` array with `jq`. Only hard-delete when the user explicitly asks.
48
+ 5. **Log** the run to `~/.claude/gc_log.md`: timestamp, items actioned, undo instructions.
49
+ 6. **Report**: reclaimed size, channels still healthy, suggested next review date.
50
+
51
+ ## Example Scan Commands
52
+
53
+ Orphaned hook scripts (channel 3) — scripts on disk that no hook config references:
54
+
55
+ ```bash
56
+ for f in ~/.claude/hooks/*; do
57
+ name=$(basename "$f")
58
+ grep -rq "$name" ~/.claude/settings.json ~/.claude/settings.local.json 2>/dev/null \
59
+ || echo "ORPHAN: $f"
60
+ done
61
+ ```
62
+
63
+ Redundant permission entries (channel 4) — duplicates, and specific grants shadowed by a wildcard:
64
+
65
+ ```bash
66
+ jq -r '.permissions.allow[]' ~/.claude/settings.local.json | sort | uniq -d
67
+ if jq -e '.permissions.allow | index("Bash(*)")' ~/.claude/settings.local.json >/dev/null; then
68
+ jq -r '.permissions.allow[]' ~/.claude/settings.local.json \
69
+ | grep '^Bash(' | grep -vF 'Bash(*)'
70
+ fi
71
+ ```
72
+
73
+ Largest stale caches (channel 8) — `du -k` instead of GNU-only `find -printf`, so it works on macOS/BSD too:
74
+
75
+ ```bash
76
+ find ~/.claude/file-history ~/.claude/shell-snapshots -type f -mtime +30 \
77
+ -exec du -k {} + 2>/dev/null | sort -rn | head -20
78
+ ```
79
+
80
+ Soft-delete with undo path (capture the date once so the log can't disagree with the directory):
81
+
82
+ ```bash
83
+ gc_date=$(date +%Y-%m-%d)
84
+ mkdir -p ~/.claude/_gc_trash/$gc_date
85
+ mv ~/.claude/skills/dead-skill ~/.claude/_gc_trash/$gc_date/
86
+ echo "$(date -Iseconds) moved skills/dead-skill -> _gc_trash/$gc_date/ (undo: mv back)" >> ~/.claude/gc_log.md
87
+ ```
88
+
89
+ Removing a confirmed-redundant permission entry (JSON has no comments — back up, log, then edit):
90
+
91
+ ```bash
92
+ cp ~/.claude/settings.local.json ~/.claude/settings.local.json.bak
93
+ echo "$(date -Iseconds) removed permission entry: Bash(git push) (undo: restore from .bak or re-add)" >> ~/.claude/gc_log.md
94
+ jq '.permissions.allow -= ["Bash(git push)"]' ~/.claude/settings.local.json.bak \
95
+ > ~/.claude/settings.local.json
96
+ ```
97
+
98
+ ## Anti-Patterns
99
+
100
+ - **Bulk approval.** Asking "delete all 15? [y/n]" defeats the design. One item, one decision.
101
+ - **Hard-deleting on first pass.** If there's no `_gc_trash/` copy or `.disabled` rename, you did it wrong.
102
+ - **Treating "old" as "dead".** A skill untouched for 60 days may be seasonal (tax season, quarterly reviews). Age is a signal, not a verdict — that's why a human confirms.
103
+ - **Cleaning memory by truncation.** Merging two contradicting memory files requires reading both and keeping the newer truth, not deleting the longer one.
104
+ - **Touching anything outside `~/.claude`** (or the project's `.claude/`). Config GC never wanders into source trees.
105
+
106
+ ## Best Practices
107
+
108
+ - Run after big additions, not just on a calendar: installing a 50-skill pack is exactly when overlap with existing skills appears.
109
+ - When two skills overlap, prefer disabling the one with the weaker trigger description — it's the one that was probably never firing anyway.
110
+ - Permission cleanup is the highest-value channel per minute spent: redundant allow-entries make security review harder.
111
+ - Keep `gc_log.md` forever. It's tiny, and "when did I disable that hook and why" comes up more often than you'd think.
112
+
113
+ ## Related Skills
114
+
115
+ - `skill-stocktake` — audits skill *quality*; config-gc audits skill *existence*. Run stocktake on what survives GC.
116
+ - `workspace-surface-audit` — the additive counterpart: recommends what to install. config-gc is the subtractive half of the same lifecycle.
117
+ - `configure-ecc` — after installing skills with it, run config-gc to reconcile overlaps with your pre-existing setup.
118
+ - `continuous-learning` — produces the memory files this skill later audits.
119
+ - `security-review` — pairs well with the permissions channel.
@@ -0,0 +1,131 @@
1
+ ---
2
+ name: content-engine
3
+ description: [ECC] Create platform-native content systems for X, LinkedIn, TikTok, YouTube, newsletters, and repurposed multi-platform campaigns. Use when the user wants social posts, threads, scripts, content calendars, or one source asset adapted cleanly across platforms.
4
+ origin: ECC
5
+ ---
6
+
7
+ # Content Engine
8
+
9
+ Build platform-native content without flattening the author's real voice into platform slop.
10
+
11
+ ## When to Activate
12
+
13
+ - writing X posts or threads
14
+ - drafting LinkedIn posts or launch updates
15
+ - scripting short-form video or YouTube explainers
16
+ - repurposing articles, podcasts, demos, docs, or internal notes into public content
17
+ - building a launch sequence or ongoing content system around a product, insight, or narrative
18
+
19
+ ## Non-Negotiables
20
+
21
+ 1. Start from source material, not generic post formulas.
22
+ 2. Adapt the format for the platform, not the persona.
23
+ 3. One post should carry one actual claim.
24
+ 4. Specificity beats adjectives.
25
+ 5. No engagement bait unless the user explicitly asks for it.
26
+
27
+ ## Source-First Workflow
28
+
29
+ Before drafting, identify the source set:
30
+ - published articles
31
+ - notes or internal memos
32
+ - product demos
33
+ - docs or changelogs
34
+ - transcripts
35
+ - screenshots
36
+ - prior posts from the same author
37
+
38
+ If the user wants a specific voice, build a voice profile from real examples before writing.
39
+ Use `brand-voice` as the canonical workflow when voice consistency matters across more than one output.
40
+
41
+ ## Voice Handling
42
+
43
+ `brand-voice` is the canonical voice layer.
44
+
45
+ Run it first when:
46
+
47
+ - there are multiple downstream outputs
48
+ - the user explicitly cares about writing style
49
+ - the content is launch, outreach, or reputation-sensitive
50
+
51
+ Reuse the resulting `VOICE PROFILE` here instead of rebuilding a second voice model.
52
+ If the user wants Affaan / ECC voice specifically, still treat `brand-voice` as the source of truth and feed it the best live or source-derived material available.
53
+
54
+ ## Hard Bans
55
+
56
+ Delete and rewrite any of these:
57
+ - "In today's rapidly evolving landscape"
58
+ - "game-changer", "revolutionary", "cutting-edge"
59
+ - "here's why this matters" unless it is followed immediately by something concrete
60
+ - ending with a LinkedIn-style question just to farm replies
61
+ - forced casualness on LinkedIn
62
+ - fake engagement padding that was not present in the source material
63
+
64
+ ## Platform Adaptation Rules
65
+
66
+ ### X
67
+
68
+ - open with the strongest claim, artifact, or tension
69
+ - keep the compression if the source voice is compressed
70
+ - if writing a thread, each post must advance the argument
71
+ - do not pad with context the audience does not need
72
+
73
+ ### LinkedIn
74
+
75
+ - expand only enough for people outside the immediate niche to follow
76
+ - do not turn it into a fake lesson post unless the source material actually is reflective
77
+ - no corporate inspiration cadence
78
+ - no praise-stacking, no "journey" filler
79
+
80
+ ### Short Video
81
+
82
+ - script around the visual sequence and proof points
83
+ - first seconds should show the result, problem, or punch
84
+ - do not write narration that sounds better on paper than on screen
85
+
86
+ ### YouTube
87
+
88
+ - show the result or tension early
89
+ - organize by argument or progression, not filler sections
90
+ - use chaptering only when it helps clarity
91
+
92
+ ### Newsletter
93
+
94
+ - open with the point, conflict, or artifact
95
+ - do not spend the first paragraph warming up
96
+ - every section needs to add something new
97
+
98
+ ## Repurposing Flow
99
+
100
+ 1. Pick the anchor asset.
101
+ 2. Extract 3 to 7 atomic claims or scenes.
102
+ 3. Rank them by sharpness, novelty, and proof.
103
+ 4. Assign one strong idea per output.
104
+ 5. Adapt structure for each platform.
105
+ 6. Strip platform-shaped filler.
106
+ 7. Run the quality gate.
107
+
108
+ ## Deliverables
109
+
110
+ When asked for a campaign, return:
111
+ - a short voice profile if voice matching matters
112
+ - the core angle
113
+ - platform-native drafts
114
+ - posting order only if it helps execution
115
+ - gaps that must be filled before publishing
116
+
117
+ ## Quality Gate
118
+
119
+ Before delivering:
120
+ - every draft sounds like the intended author, not the platform stereotype
121
+ - every draft contains a real claim, proof point, or concrete observation
122
+ - no generic hype language remains
123
+ - no fake engagement bait remains
124
+ - no duplicated copy across platforms unless requested
125
+ - any CTA is earned and user-approved
126
+
127
+ ## Related Skills
128
+
129
+ - `brand-voice` for source-derived voice profiles
130
+ - `crosspost` for platform-specific distribution
131
+ - `x-api` for sourcing recent posts and publishing approved X output