ctxora 6.2.2 → 6.4.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 (835) hide show
  1. package/.claude-plugin/plugin.json +11 -0
  2. package/README.md +104 -16
  3. package/README.vi.md +96 -7
  4. package/THIRD_PARTY_NOTICES.md +12 -0
  5. package/agents/ctxora-context-engineer.md +6 -0
  6. package/agents/ctxora-maintainer.md +6 -0
  7. package/agents/ctxora-reviewer.md +6 -0
  8. package/bin/ctxora.mjs +1 -1
  9. package/commands/context.md +15 -0
  10. package/commands/guide.md +8 -0
  11. package/commands/handoff.md +8 -0
  12. package/commands/health.md +14 -0
  13. package/commands/learn.md +8 -0
  14. package/commands/plan.md +15 -0
  15. package/commands/review.md +8 -0
  16. package/commands/route.md +6 -0
  17. package/docs/COMMAND-SKILL-MAP.md +25 -0
  18. package/docs/third-party/ECC-LICENSE +21 -0
  19. package/package.json +14 -1
  20. package/pyproject.toml +6 -1
  21. package/schemas/README.md +3 -0
  22. package/schemas/mcp-v2/context_stats.request.schema.json +10 -0
  23. package/schemas/mcp-v2/context_stats.response.schema.json +5 -0
  24. package/schemas/mcp-v2/delete_conversation_handoff.request.schema.json +17 -0
  25. package/schemas/mcp-v2/delete_conversation_handoff.response.schema.json +5 -0
  26. package/schemas/mcp-v2/ecc_search.request.schema.json +16 -0
  27. package/schemas/mcp-v2/ecc_search.response.schema.json +5 -0
  28. package/schemas/mcp-v2/ecc_status.request.schema.json +6 -0
  29. package/schemas/mcp-v2/ecc_status.response.schema.json +5 -0
  30. package/schemas/mcp-v2/error.response.schema.json +40 -0
  31. package/schemas/mcp-v2/handoff_conversation.request.schema.json +29 -0
  32. package/schemas/mcp-v2/handoff_conversation.response.schema.json +5 -0
  33. package/schemas/mcp-v2/invalidate_context.request.schema.json +17 -0
  34. package/schemas/mcp-v2/invalidate_context.response.schema.json +5 -0
  35. package/schemas/mcp-v2/list_conversation_handoffs.request.schema.json +16 -0
  36. package/schemas/mcp-v2/list_conversation_handoffs.response.schema.json +8 -0
  37. package/schemas/mcp-v2/memory_delete.request.schema.json +20 -0
  38. package/schemas/mcp-v2/memory_delete.response.schema.json +5 -0
  39. package/schemas/mcp-v2/memory_list.request.schema.json +19 -0
  40. package/schemas/mcp-v2/memory_list.response.schema.json +7 -0
  41. package/schemas/mcp-v2/memory_save.request.schema.json +42 -0
  42. package/schemas/mcp-v2/memory_save.response.schema.json +5 -0
  43. package/schemas/mcp-v2/memory_search.request.schema.json +26 -0
  44. package/schemas/mcp-v2/memory_search.response.schema.json +8 -0
  45. package/schemas/mcp-v2/plan_context.request.schema.json +24 -0
  46. package/schemas/mcp-v2/plan_context.response.schema.json +5 -0
  47. package/schemas/mcp-v2/prepare_context.request.schema.json +42 -0
  48. package/schemas/mcp-v2/prepare_context.response.schema.json +72 -0
  49. package/schemas/mcp-v2/purge_expired_handoffs.request.schema.json +6 -0
  50. package/schemas/mcp-v2/purge_expired_handoffs.response.schema.json +5 -0
  51. package/schemas/mcp-v2/refresh_workspace.request.schema.json +19 -0
  52. package/schemas/mcp-v2/refresh_workspace.response.schema.json +5 -0
  53. package/schemas/mcp-v2/register_workspace.request.schema.json +23 -0
  54. package/schemas/mcp-v2/register_workspace.response.schema.json +5 -0
  55. package/schemas/mcp-v2/restore_conversation_handoff.request.schema.json +17 -0
  56. package/schemas/mcp-v2/restore_conversation_handoff.response.schema.json +5 -0
  57. package/schemas/mcp-v2/retrieve_context.request.schema.json +26 -0
  58. package/schemas/mcp-v2/retrieve_context.response.schema.json +5 -0
  59. package/schemas/mcp-v2/route_skills.request.schema.json +29 -0
  60. package/schemas/mcp-v2/route_skills.response.schema.json +5 -0
  61. package/schemas/mcp-v2/skill_feedback.request.schema.json +33 -0
  62. package/schemas/mcp-v2/skill_feedback.response.schema.json +5 -0
  63. package/schemas/mcp-v2/skill_learning_status.request.schema.json +16 -0
  64. package/schemas/mcp-v2/skill_learning_status.response.schema.json +5 -0
  65. package/skills/ctxora-context-health/SKILL.md +29 -0
  66. package/skills/ctxora-continuous-learning/SKILL.md +26 -0
  67. package/skills/ctxora-navigation/SKILL.md +20 -0
  68. package/skills/ctxora-repository-context/SKILL.md +33 -0
  69. package/skills/ctxora-setup/SKILL.md +26 -0
  70. package/skills/ctxora-workflow-profiles/SKILL.md +30 -0
  71. package/src/harness_context/api/v2/contracts.py +9 -0
  72. package/src/harness_context/application/container.py +2 -0
  73. package/src/harness_context/application/context_service.py +11 -2
  74. package/src/harness_context/application/protocols.py +5 -0
  75. package/src/harness_context/bootstrap.py +4 -1
  76. package/src/harness_context/cli/app.py +130 -0
  77. package/src/harness_context/mcp/capabilities.py +1 -0
  78. package/src/harness_context/mcp/tool_handlers/__init__.py +5 -1
  79. package/src/harness_context/mcp/tool_handlers/skills.py +29 -0
  80. package/src/harness_context/mcp/tools.py +2 -0
  81. package/src/harness_context/skills/__init__.py +4 -0
  82. package/src/harness_context/skills/catalog.py +267 -0
  83. package/src/harness_context/skills/ecc/accessibility/LICENSE.ecc +21 -0
  84. package/src/harness_context/skills/ecc/accessibility/SKILL.md +147 -0
  85. package/src/harness_context/skills/ecc/agent-architecture-audit/LICENSE.ecc +21 -0
  86. package/src/harness_context/skills/ecc/agent-architecture-audit/SKILL.md +257 -0
  87. package/src/harness_context/skills/ecc/agent-eval/LICENSE.ecc +21 -0
  88. package/src/harness_context/skills/ecc/agent-eval/SKILL.md +147 -0
  89. package/src/harness_context/skills/ecc/agent-harness-construction/LICENSE.ecc +21 -0
  90. package/src/harness_context/skills/ecc/agent-harness-construction/SKILL.md +74 -0
  91. package/src/harness_context/skills/ecc/agent-introspection-debugging/LICENSE.ecc +21 -0
  92. package/src/harness_context/skills/ecc/agent-introspection-debugging/SKILL.md +154 -0
  93. package/src/harness_context/skills/ecc/agent-payment-x402/LICENSE.ecc +21 -0
  94. package/src/harness_context/skills/ecc/agent-payment-x402/SKILL.md +225 -0
  95. package/src/harness_context/skills/ecc/agent-self-evaluation/LICENSE.ecc +21 -0
  96. package/src/harness_context/skills/ecc/agent-self-evaluation/SKILL.md +182 -0
  97. package/src/harness_context/skills/ecc/agent-self-evaluation/examples/high-score-example.md +87 -0
  98. package/src/harness_context/skills/ecc/agent-self-evaluation/examples/low-score-example.md +86 -0
  99. package/src/harness_context/skills/ecc/agent-self-evaluation/references/evaluation-criteria.md +71 -0
  100. package/src/harness_context/skills/ecc/agent-self-evaluation/references/hook-integration.md +64 -0
  101. package/src/harness_context/skills/ecc/agent-self-evaluation/scripts/evaluate.py +408 -0
  102. package/src/harness_context/skills/ecc/agent-self-evaluation/templates/evaluation-report.md +86 -0
  103. package/src/harness_context/skills/ecc/agent-sort/LICENSE.ecc +21 -0
  104. package/src/harness_context/skills/ecc/agent-sort/SKILL.md +216 -0
  105. package/src/harness_context/skills/ecc/agentic-engineering/LICENSE.ecc +21 -0
  106. package/src/harness_context/skills/ecc/agentic-engineering/SKILL.md +64 -0
  107. package/src/harness_context/skills/ecc/agentic-os/LICENSE.ecc +21 -0
  108. package/src/harness_context/skills/ecc/agentic-os/SKILL.md +388 -0
  109. package/src/harness_context/skills/ecc/ai-first-engineering/LICENSE.ecc +21 -0
  110. package/src/harness_context/skills/ecc/ai-first-engineering/SKILL.md +52 -0
  111. package/src/harness_context/skills/ecc/ai-regression-testing/LICENSE.ecc +21 -0
  112. package/src/harness_context/skills/ecc/ai-regression-testing/SKILL.md +386 -0
  113. package/src/harness_context/skills/ecc/android-clean-architecture/LICENSE.ecc +21 -0
  114. package/src/harness_context/skills/ecc/android-clean-architecture/SKILL.md +340 -0
  115. package/src/harness_context/skills/ecc/angular-developer/LICENSE.ecc +21 -0
  116. package/src/harness_context/skills/ecc/angular-developer/SKILL.md +155 -0
  117. package/src/harness_context/skills/ecc/angular-developer/references/angular-animations.md +160 -0
  118. package/src/harness_context/skills/ecc/angular-developer/references/angular-aria.md +410 -0
  119. package/src/harness_context/skills/ecc/angular-developer/references/cli.md +86 -0
  120. package/src/harness_context/skills/ecc/angular-developer/references/component-harnesses.md +59 -0
  121. package/src/harness_context/skills/ecc/angular-developer/references/component-styling.md +91 -0
  122. package/src/harness_context/skills/ecc/angular-developer/references/components.md +117 -0
  123. package/src/harness_context/skills/ecc/angular-developer/references/creating-services.md +97 -0
  124. package/src/harness_context/skills/ecc/angular-developer/references/data-resolvers.md +69 -0
  125. package/src/harness_context/skills/ecc/angular-developer/references/define-routes.md +67 -0
  126. package/src/harness_context/skills/ecc/angular-developer/references/defining-providers.md +72 -0
  127. package/src/harness_context/skills/ecc/angular-developer/references/di-fundamentals.md +120 -0
  128. package/src/harness_context/skills/ecc/angular-developer/references/e2e-testing.md +56 -0
  129. package/src/harness_context/skills/ecc/angular-developer/references/effects.md +83 -0
  130. package/src/harness_context/skills/ecc/angular-developer/references/hierarchical-injectors.md +43 -0
  131. package/src/harness_context/skills/ecc/angular-developer/references/host-elements.md +80 -0
  132. package/src/harness_context/skills/ecc/angular-developer/references/injection-context.md +63 -0
  133. package/src/harness_context/skills/ecc/angular-developer/references/inputs.md +101 -0
  134. package/src/harness_context/skills/ecc/angular-developer/references/linked-signal.md +59 -0
  135. package/src/harness_context/skills/ecc/angular-developer/references/loading-strategies.md +61 -0
  136. package/src/harness_context/skills/ecc/angular-developer/references/mcp.md +108 -0
  137. package/src/harness_context/skills/ecc/angular-developer/references/navigate-to-routes.md +69 -0
  138. package/src/harness_context/skills/ecc/angular-developer/references/outputs.md +86 -0
  139. package/src/harness_context/skills/ecc/angular-developer/references/reactive-forms.md +122 -0
  140. package/src/harness_context/skills/ecc/angular-developer/references/rendering-strategies.md +44 -0
  141. package/src/harness_context/skills/ecc/angular-developer/references/resource.md +77 -0
  142. package/src/harness_context/skills/ecc/angular-developer/references/route-animations.md +56 -0
  143. package/src/harness_context/skills/ecc/angular-developer/references/route-guards.md +52 -0
  144. package/src/harness_context/skills/ecc/angular-developer/references/router-lifecycle.md +45 -0
  145. package/src/harness_context/skills/ecc/angular-developer/references/router-testing.md +87 -0
  146. package/src/harness_context/skills/ecc/angular-developer/references/show-routes-with-outlets.md +68 -0
  147. package/src/harness_context/skills/ecc/angular-developer/references/signal-forms.md +795 -0
  148. package/src/harness_context/skills/ecc/angular-developer/references/signals-overview.md +94 -0
  149. package/src/harness_context/skills/ecc/angular-developer/references/tailwind-css.md +69 -0
  150. package/src/harness_context/skills/ecc/angular-developer/references/template-driven-forms.md +114 -0
  151. package/src/harness_context/skills/ecc/angular-developer/references/testing-fundamentals.md +65 -0
  152. package/src/harness_context/skills/ecc/api-connector-builder/LICENSE.ecc +21 -0
  153. package/src/harness_context/skills/ecc/api-connector-builder/SKILL.md +121 -0
  154. package/src/harness_context/skills/ecc/api-design/LICENSE.ecc +21 -0
  155. package/src/harness_context/skills/ecc/api-design/SKILL.md +524 -0
  156. package/src/harness_context/skills/ecc/architecture-decision-records/LICENSE.ecc +21 -0
  157. package/src/harness_context/skills/ecc/architecture-decision-records/SKILL.md +180 -0
  158. package/src/harness_context/skills/ecc/article-writing/LICENSE.ecc +21 -0
  159. package/src/harness_context/skills/ecc/article-writing/SKILL.md +80 -0
  160. package/src/harness_context/skills/ecc/automation-audit-ops/LICENSE.ecc +21 -0
  161. package/src/harness_context/skills/ecc/automation-audit-ops/SKILL.md +143 -0
  162. package/src/harness_context/skills/ecc/autonomous-agent-harness/LICENSE.ecc +21 -0
  163. package/src/harness_context/skills/ecc/autonomous-agent-harness/SKILL.md +274 -0
  164. package/src/harness_context/skills/ecc/autonomous-loops/LICENSE.ecc +21 -0
  165. package/src/harness_context/skills/ecc/autonomous-loops/SKILL.md +611 -0
  166. package/src/harness_context/skills/ecc/backend-patterns/LICENSE.ecc +21 -0
  167. package/src/harness_context/skills/ecc/backend-patterns/SKILL.md +562 -0
  168. package/src/harness_context/skills/ecc/benchmark/LICENSE.ecc +21 -0
  169. package/src/harness_context/skills/ecc/benchmark/SKILL.md +95 -0
  170. package/src/harness_context/skills/ecc/benchmark-methodology/LICENSE.ecc +21 -0
  171. package/src/harness_context/skills/ecc/benchmark-methodology/SKILL.md +191 -0
  172. package/src/harness_context/skills/ecc/benchmark-optimization-loop/LICENSE.ecc +21 -0
  173. package/src/harness_context/skills/ecc/benchmark-optimization-loop/SKILL.md +71 -0
  174. package/src/harness_context/skills/ecc/blender-motion-state-inspection/LICENSE.ecc +21 -0
  175. package/src/harness_context/skills/ecc/blender-motion-state-inspection/SKILL.md +165 -0
  176. package/src/harness_context/skills/ecc/blueprint/LICENSE.ecc +21 -0
  177. package/src/harness_context/skills/ecc/blueprint/SKILL.md +106 -0
  178. package/src/harness_context/skills/ecc/brand-discovery/LICENSE.ecc +21 -0
  179. package/src/harness_context/skills/ecc/brand-discovery/SKILL.md +145 -0
  180. package/src/harness_context/skills/ecc/brand-discovery/references/10_purpose-why.md +40 -0
  181. package/src/harness_context/skills/ecc/brand-discovery/references/20_positioning.md +44 -0
  182. package/src/harness_context/skills/ecc/brand-discovery/references/30_audience-niche.md +52 -0
  183. package/src/harness_context/skills/ecc/brand-discovery/references/40_personality-archetype.md +57 -0
  184. package/src/harness_context/skills/ecc/brand-discovery/references/50_voice-tone.md +59 -0
  185. package/src/harness_context/skills/ecc/brand-discovery/references/60_narrative-story.md +50 -0
  186. package/src/harness_context/skills/ecc/brand-discovery/references/70_founder-tension.md +49 -0
  187. package/src/harness_context/skills/ecc/brand-discovery/references/90_SYNTHESIS.md +133 -0
  188. package/src/harness_context/skills/ecc/brand-voice/LICENSE.ecc +21 -0
  189. package/src/harness_context/skills/ecc/brand-voice/SKILL.md +98 -0
  190. package/src/harness_context/skills/ecc/brand-voice/references/voice-profile-schema.md +55 -0
  191. package/src/harness_context/skills/ecc/browser-qa/LICENSE.ecc +21 -0
  192. package/src/harness_context/skills/ecc/browser-qa/SKILL.md +105 -0
  193. package/src/harness_context/skills/ecc/bun-runtime/LICENSE.ecc +21 -0
  194. package/src/harness_context/skills/ecc/bun-runtime/SKILL.md +85 -0
  195. package/src/harness_context/skills/ecc/canary-watch/LICENSE.ecc +21 -0
  196. package/src/harness_context/skills/ecc/canary-watch/SKILL.md +108 -0
  197. package/src/harness_context/skills/ecc/carrier-relationship-management/LICENSE.ecc +21 -0
  198. package/src/harness_context/skills/ecc/carrier-relationship-management/SKILL.md +212 -0
  199. package/src/harness_context/skills/ecc/cisco-ios-patterns/LICENSE.ecc +21 -0
  200. package/src/harness_context/skills/ecc/cisco-ios-patterns/SKILL.md +164 -0
  201. package/src/harness_context/skills/ecc/ck/LICENSE.ecc +21 -0
  202. package/src/harness_context/skills/ecc/ck/SKILL.md +148 -0
  203. package/src/harness_context/skills/ecc/ck/commands/forget.mjs +44 -0
  204. package/src/harness_context/skills/ecc/ck/commands/info.mjs +24 -0
  205. package/src/harness_context/skills/ecc/ck/commands/init.mjs +143 -0
  206. package/src/harness_context/skills/ecc/ck/commands/list.mjs +40 -0
  207. package/src/harness_context/skills/ecc/ck/commands/migrate.mjs +202 -0
  208. package/src/harness_context/skills/ecc/ck/commands/resume.mjs +36 -0
  209. package/src/harness_context/skills/ecc/ck/commands/save.mjs +210 -0
  210. package/src/harness_context/skills/ecc/ck/commands/shared.mjs +387 -0
  211. package/src/harness_context/skills/ecc/ck/hooks/session-start.mjs +224 -0
  212. package/src/harness_context/skills/ecc/claude-devfleet/LICENSE.ecc +21 -0
  213. package/src/harness_context/skills/ecc/claude-devfleet/SKILL.md +112 -0
  214. package/src/harness_context/skills/ecc/click-path-audit/LICENSE.ecc +21 -0
  215. package/src/harness_context/skills/ecc/click-path-audit/SKILL.md +245 -0
  216. package/src/harness_context/skills/ecc/clickhouse-io/LICENSE.ecc +21 -0
  217. package/src/harness_context/skills/ecc/clickhouse-io/SKILL.md +445 -0
  218. package/src/harness_context/skills/ecc/code-tour/LICENSE.ecc +21 -0
  219. package/src/harness_context/skills/ecc/code-tour/SKILL.md +254 -0
  220. package/src/harness_context/skills/ecc/codebase-onboarding/LICENSE.ecc +21 -0
  221. package/src/harness_context/skills/ecc/codebase-onboarding/SKILL.md +234 -0
  222. package/src/harness_context/skills/ecc/codehealth-mcp/LICENSE.ecc +21 -0
  223. package/src/harness_context/skills/ecc/codehealth-mcp/SKILL.md +167 -0
  224. package/src/harness_context/skills/ecc/coding-standards/LICENSE.ecc +21 -0
  225. package/src/harness_context/skills/ecc/coding-standards/SKILL.md +551 -0
  226. package/src/harness_context/skills/ecc/competitive-platform-analysis/LICENSE.ecc +21 -0
  227. package/src/harness_context/skills/ecc/competitive-platform-analysis/SKILL.md +214 -0
  228. package/src/harness_context/skills/ecc/competitive-report-structure/LICENSE.ecc +21 -0
  229. package/src/harness_context/skills/ecc/competitive-report-structure/SKILL.md +162 -0
  230. package/src/harness_context/skills/ecc/compose-multiplatform-patterns/LICENSE.ecc +21 -0
  231. package/src/harness_context/skills/ecc/compose-multiplatform-patterns/SKILL.md +300 -0
  232. package/src/harness_context/skills/ecc/config-gc/LICENSE.ecc +21 -0
  233. package/src/harness_context/skills/ecc/config-gc/SKILL.md +120 -0
  234. package/src/harness_context/skills/ecc/configure-ecc/LICENSE.ecc +21 -0
  235. package/src/harness_context/skills/ecc/configure-ecc/SKILL.md +206 -0
  236. package/src/harness_context/skills/ecc/connections-optimizer/LICENSE.ecc +21 -0
  237. package/src/harness_context/skills/ecc/connections-optimizer/SKILL.md +190 -0
  238. package/src/harness_context/skills/ecc/content-engine/LICENSE.ecc +21 -0
  239. package/src/harness_context/skills/ecc/content-engine/SKILL.md +132 -0
  240. package/src/harness_context/skills/ecc/content-hash-cache-pattern/LICENSE.ecc +21 -0
  241. package/src/harness_context/skills/ecc/content-hash-cache-pattern/SKILL.md +162 -0
  242. package/src/harness_context/skills/ecc/context-budget/LICENSE.ecc +21 -0
  243. package/src/harness_context/skills/ecc/context-budget/SKILL.md +136 -0
  244. package/src/harness_context/skills/ecc/continuous-agent-loop/LICENSE.ecc +21 -0
  245. package/src/harness_context/skills/ecc/continuous-agent-loop/SKILL.md +46 -0
  246. package/src/harness_context/skills/ecc/continuous-learning/LICENSE.ecc +21 -0
  247. package/src/harness_context/skills/ecc/continuous-learning/SKILL.md +132 -0
  248. package/src/harness_context/skills/ecc/continuous-learning/config.json +18 -0
  249. package/src/harness_context/skills/ecc/continuous-learning/evaluate-session.sh +69 -0
  250. package/src/harness_context/skills/ecc/continuous-learning-v2/LICENSE.ecc +21 -0
  251. package/src/harness_context/skills/ecc/continuous-learning-v2/SKILL.md +377 -0
  252. package/src/harness_context/skills/ecc/continuous-learning-v2/agents/observer-loop.sh +372 -0
  253. package/src/harness_context/skills/ecc/continuous-learning-v2/agents/observer.md +189 -0
  254. package/src/harness_context/skills/ecc/continuous-learning-v2/agents/session-guardian.sh +150 -0
  255. package/src/harness_context/skills/ecc/continuous-learning-v2/agents/start-observer.sh +252 -0
  256. package/src/harness_context/skills/ecc/continuous-learning-v2/config.json +8 -0
  257. package/src/harness_context/skills/ecc/continuous-learning-v2/hooks/observe.sh +675 -0
  258. package/src/harness_context/skills/ecc/continuous-learning-v2/scripts/detect-project.sh +334 -0
  259. package/src/harness_context/skills/ecc/continuous-learning-v2/scripts/instinct-cli.py +2290 -0
  260. package/src/harness_context/skills/ecc/continuous-learning-v2/scripts/lib/homunculus-dir.sh +31 -0
  261. package/src/harness_context/skills/ecc/continuous-learning-v2/scripts/migrate-homunculus.sh +68 -0
  262. package/src/harness_context/skills/ecc/continuous-learning-v2/scripts/test_parse_instinct.py +1420 -0
  263. package/src/harness_context/skills/ecc/contract-first/LICENSE.ecc +21 -0
  264. package/src/harness_context/skills/ecc/contract-first/SKILL.md +287 -0
  265. package/src/harness_context/skills/ecc/cost-aware-llm-pipeline/LICENSE.ecc +21 -0
  266. package/src/harness_context/skills/ecc/cost-aware-llm-pipeline/SKILL.md +188 -0
  267. package/src/harness_context/skills/ecc/cost-tracking/LICENSE.ecc +21 -0
  268. package/src/harness_context/skills/ecc/cost-tracking/SKILL.md +97 -0
  269. package/src/harness_context/skills/ecc/council/LICENSE.ecc +21 -0
  270. package/src/harness_context/skills/ecc/council/SKILL.md +204 -0
  271. package/src/harness_context/skills/ecc/council-multi-model/LICENSE.ecc +21 -0
  272. package/src/harness_context/skills/ecc/council-multi-model/SKILL.md +167 -0
  273. package/src/harness_context/skills/ecc/council-multi-model/scripts/review-with-codex.js +305 -0
  274. package/src/harness_context/skills/ecc/cpp-coding-standards/LICENSE.ecc +21 -0
  275. package/src/harness_context/skills/ecc/cpp-coding-standards/SKILL.md +724 -0
  276. package/src/harness_context/skills/ecc/cpp-testing/LICENSE.ecc +21 -0
  277. package/src/harness_context/skills/ecc/cpp-testing/SKILL.md +325 -0
  278. package/src/harness_context/skills/ecc/crosspost/LICENSE.ecc +21 -0
  279. package/src/harness_context/skills/ecc/crosspost/SKILL.md +123 -0
  280. package/src/harness_context/skills/ecc/csharp-testing/LICENSE.ecc +21 -0
  281. package/src/harness_context/skills/ecc/csharp-testing/SKILL.md +322 -0
  282. package/src/harness_context/skills/ecc/customer-billing-ops/LICENSE.ecc +21 -0
  283. package/src/harness_context/skills/ecc/customer-billing-ops/SKILL.md +141 -0
  284. package/src/harness_context/skills/ecc/customs-trade-compliance/LICENSE.ecc +21 -0
  285. package/src/harness_context/skills/ecc/customs-trade-compliance/SKILL.md +263 -0
  286. package/src/harness_context/skills/ecc/dart-flutter-patterns/LICENSE.ecc +21 -0
  287. package/src/harness_context/skills/ecc/dart-flutter-patterns/SKILL.md +564 -0
  288. package/src/harness_context/skills/ecc/dashboard-builder/LICENSE.ecc +21 -0
  289. package/src/harness_context/skills/ecc/dashboard-builder/SKILL.md +109 -0
  290. package/src/harness_context/skills/ecc/data-scraper-agent/LICENSE.ecc +21 -0
  291. package/src/harness_context/skills/ecc/data-scraper-agent/SKILL.md +776 -0
  292. package/src/harness_context/skills/ecc/data-throughput-accelerator/LICENSE.ecc +21 -0
  293. package/src/harness_context/skills/ecc/data-throughput-accelerator/SKILL.md +74 -0
  294. package/src/harness_context/skills/ecc/database-migrations/LICENSE.ecc +21 -0
  295. package/src/harness_context/skills/ecc/database-migrations/SKILL.md +430 -0
  296. package/src/harness_context/skills/ecc/deep-research/LICENSE.ecc +21 -0
  297. package/src/harness_context/skills/ecc/deep-research/SKILL.md +170 -0
  298. package/src/harness_context/skills/ecc/defi-amm-security/LICENSE.ecc +21 -0
  299. package/src/harness_context/skills/ecc/defi-amm-security/SKILL.md +167 -0
  300. package/src/harness_context/skills/ecc/delivery-gate/LICENSE.ecc +21 -0
  301. package/src/harness_context/skills/ecc/delivery-gate/SKILL.md +126 -0
  302. package/src/harness_context/skills/ecc/delivery-gate/hooks/quality-gate.py +220 -0
  303. package/src/harness_context/skills/ecc/deployment-patterns/LICENSE.ecc +21 -0
  304. package/src/harness_context/skills/ecc/deployment-patterns/SKILL.md +428 -0
  305. package/src/harness_context/skills/ecc/design-system/LICENSE.ecc +21 -0
  306. package/src/harness_context/skills/ecc/design-system/SKILL.md +83 -0
  307. package/src/harness_context/skills/ecc/dev-team/LICENSE.ecc +21 -0
  308. package/src/harness_context/skills/ecc/dev-team/SKILL.md +203 -0
  309. package/src/harness_context/skills/ecc/django-celery/LICENSE.ecc +21 -0
  310. package/src/harness_context/skills/ecc/django-celery/SKILL.md +458 -0
  311. package/src/harness_context/skills/ecc/django-patterns/LICENSE.ecc +21 -0
  312. package/src/harness_context/skills/ecc/django-patterns/SKILL.md +735 -0
  313. package/src/harness_context/skills/ecc/django-security/LICENSE.ecc +21 -0
  314. package/src/harness_context/skills/ecc/django-security/SKILL.md +644 -0
  315. package/src/harness_context/skills/ecc/django-tdd/LICENSE.ecc +21 -0
  316. package/src/harness_context/skills/ecc/django-tdd/SKILL.md +730 -0
  317. package/src/harness_context/skills/ecc/django-verification/LICENSE.ecc +21 -0
  318. package/src/harness_context/skills/ecc/django-verification/SKILL.md +470 -0
  319. package/src/harness_context/skills/ecc/dmux-workflows/LICENSE.ecc +21 -0
  320. package/src/harness_context/skills/ecc/dmux-workflows/SKILL.md +192 -0
  321. package/src/harness_context/skills/ecc/docker-patterns/LICENSE.ecc +21 -0
  322. package/src/harness_context/skills/ecc/docker-patterns/SKILL.md +520 -0
  323. package/src/harness_context/skills/ecc/documentation-lookup/LICENSE.ecc +21 -0
  324. package/src/harness_context/skills/ecc/documentation-lookup/SKILL.md +91 -0
  325. package/src/harness_context/skills/ecc/dotnet-patterns/LICENSE.ecc +21 -0
  326. package/src/harness_context/skills/ecc/dotnet-patterns/SKILL.md +322 -0
  327. package/src/harness_context/skills/ecc/dynamic-workflow-mode/LICENSE.ecc +21 -0
  328. package/src/harness_context/skills/ecc/dynamic-workflow-mode/SKILL.md +124 -0
  329. package/src/harness_context/skills/ecc/e2e-testing/LICENSE.ecc +21 -0
  330. package/src/harness_context/skills/ecc/e2e-testing/SKILL.md +327 -0
  331. package/src/harness_context/skills/ecc/ecc-guide/LICENSE.ecc +21 -0
  332. package/src/harness_context/skills/ecc/ecc-guide/SKILL.md +190 -0
  333. package/src/harness_context/skills/ecc/ecc-recipes/LICENSE.ecc +21 -0
  334. package/src/harness_context/skills/ecc/ecc-recipes/SKILL.md +150 -0
  335. package/src/harness_context/skills/ecc/ecc-tools-cost-audit/LICENSE.ecc +21 -0
  336. package/src/harness_context/skills/ecc/ecc-tools-cost-audit/SKILL.md +161 -0
  337. package/src/harness_context/skills/ecc/email-ops/LICENSE.ecc +21 -0
  338. package/src/harness_context/skills/ecc/email-ops/SKILL.md +133 -0
  339. package/src/harness_context/skills/ecc/energy-procurement/LICENSE.ecc +21 -0
  340. package/src/harness_context/skills/ecc/energy-procurement/SKILL.md +228 -0
  341. package/src/harness_context/skills/ecc/enterprise-agent-ops/LICENSE.ecc +21 -0
  342. package/src/harness_context/skills/ecc/enterprise-agent-ops/SKILL.md +51 -0
  343. package/src/harness_context/skills/ecc/error-handling/LICENSE.ecc +21 -0
  344. package/src/harness_context/skills/ecc/error-handling/SKILL.md +377 -0
  345. package/src/harness_context/skills/ecc/eval-harness/LICENSE.ecc +21 -0
  346. package/src/harness_context/skills/ecc/eval-harness/SKILL.md +271 -0
  347. package/src/harness_context/skills/ecc/evm-token-decimals/LICENSE.ecc +21 -0
  348. package/src/harness_context/skills/ecc/evm-token-decimals/SKILL.md +131 -0
  349. package/src/harness_context/skills/ecc/exa-search/LICENSE.ecc +21 -0
  350. package/src/harness_context/skills/ecc/exa-search/SKILL.md +117 -0
  351. package/src/harness_context/skills/ecc/fal-ai-media/LICENSE.ecc +21 -0
  352. package/src/harness_context/skills/ecc/fal-ai-media/SKILL.md +289 -0
  353. package/src/harness_context/skills/ecc/fastapi-patterns/LICENSE.ecc +21 -0
  354. package/src/harness_context/skills/ecc/fastapi-patterns/SKILL.md +514 -0
  355. package/src/harness_context/skills/ecc/finance-billing-ops/LICENSE.ecc +21 -0
  356. package/src/harness_context/skills/ecc/finance-billing-ops/SKILL.md +128 -0
  357. package/src/harness_context/skills/ecc/flox-environments/LICENSE.ecc +21 -0
  358. package/src/harness_context/skills/ecc/flox-environments/SKILL.md +497 -0
  359. package/src/harness_context/skills/ecc/flutter-dart-code-review/LICENSE.ecc +21 -0
  360. package/src/harness_context/skills/ecc/flutter-dart-code-review/SKILL.md +436 -0
  361. package/src/harness_context/skills/ecc/foundation-models-on-device/LICENSE.ecc +21 -0
  362. package/src/harness_context/skills/ecc/foundation-models-on-device/SKILL.md +243 -0
  363. package/src/harness_context/skills/ecc/frontend-a11y/LICENSE.ecc +21 -0
  364. package/src/harness_context/skills/ecc/frontend-a11y/SKILL.md +446 -0
  365. package/src/harness_context/skills/ecc/frontend-design-direction/LICENSE.ecc +21 -0
  366. package/src/harness_context/skills/ecc/frontend-design-direction/SKILL.md +93 -0
  367. package/src/harness_context/skills/ecc/frontend-patterns/LICENSE.ecc +21 -0
  368. package/src/harness_context/skills/ecc/frontend-patterns/SKILL.md +657 -0
  369. package/src/harness_context/skills/ecc/frontend-slides/LICENSE.ecc +21 -0
  370. package/src/harness_context/skills/ecc/frontend-slides/SKILL.md +185 -0
  371. package/src/harness_context/skills/ecc/frontend-slides/STYLE_PRESETS.md +330 -0
  372. package/src/harness_context/skills/ecc/frontend-slides/animation-patterns.md +122 -0
  373. package/src/harness_context/skills/ecc/frontend-slides/html-template.md +419 -0
  374. package/src/harness_context/skills/ecc/frontend-slides/scripts/export-pdf.sh +418 -0
  375. package/src/harness_context/skills/ecc/frontend-slides/scripts/extract-pptx.py +96 -0
  376. package/src/harness_context/skills/ecc/frontend-slides/viewport-base.css +153 -0
  377. package/src/harness_context/skills/ecc/fsharp-testing/LICENSE.ecc +21 -0
  378. package/src/harness_context/skills/ecc/fsharp-testing/SKILL.md +281 -0
  379. package/src/harness_context/skills/ecc/gan-style-harness/LICENSE.ecc +21 -0
  380. package/src/harness_context/skills/ecc/gan-style-harness/SKILL.md +279 -0
  381. package/src/harness_context/skills/ecc/gateguard/LICENSE.ecc +21 -0
  382. package/src/harness_context/skills/ecc/gateguard/SKILL.md +182 -0
  383. package/src/harness_context/skills/ecc/generating-python-installer/LICENSE.ecc +21 -0
  384. package/src/harness_context/skills/ecc/generating-python-installer/SKILL.md +820 -0
  385. package/src/harness_context/skills/ecc/git-workflow/LICENSE.ecc +21 -0
  386. package/src/harness_context/skills/ecc/git-workflow/SKILL.md +716 -0
  387. package/src/harness_context/skills/ecc/github-ops/LICENSE.ecc +21 -0
  388. package/src/harness_context/skills/ecc/github-ops/SKILL.md +162 -0
  389. package/src/harness_context/skills/ecc/github-ops/references/ecc-release-checklist.md +211 -0
  390. package/src/harness_context/skills/ecc/golang-patterns/LICENSE.ecc +21 -0
  391. package/src/harness_context/skills/ecc/golang-patterns/SKILL.md +676 -0
  392. package/src/harness_context/skills/ecc/golang-testing/LICENSE.ecc +21 -0
  393. package/src/harness_context/skills/ecc/golang-testing/SKILL.md +721 -0
  394. package/src/harness_context/skills/ecc/google-workspace-ops/LICENSE.ecc +21 -0
  395. package/src/harness_context/skills/ecc/google-workspace-ops/SKILL.md +96 -0
  396. package/src/harness_context/skills/ecc/growth-log/LICENSE.ecc +21 -0
  397. package/src/harness_context/skills/ecc/growth-log/SKILL.md +128 -0
  398. package/src/harness_context/skills/ecc/healthcare-cdss-patterns/LICENSE.ecc +21 -0
  399. package/src/harness_context/skills/ecc/healthcare-cdss-patterns/SKILL.md +246 -0
  400. package/src/harness_context/skills/ecc/healthcare-emr-patterns/LICENSE.ecc +21 -0
  401. package/src/harness_context/skills/ecc/healthcare-emr-patterns/SKILL.md +160 -0
  402. package/src/harness_context/skills/ecc/healthcare-eval-harness/LICENSE.ecc +21 -0
  403. package/src/harness_context/skills/ecc/healthcare-eval-harness/SKILL.md +208 -0
  404. package/src/harness_context/skills/ecc/healthcare-phi-compliance/LICENSE.ecc +21 -0
  405. package/src/harness_context/skills/ecc/healthcare-phi-compliance/SKILL.md +146 -0
  406. package/src/harness_context/skills/ecc/hermes-imports/LICENSE.ecc +21 -0
  407. package/src/harness_context/skills/ecc/hermes-imports/SKILL.md +89 -0
  408. package/src/harness_context/skills/ecc/hexagonal-architecture/LICENSE.ecc +21 -0
  409. package/src/harness_context/skills/ecc/hexagonal-architecture/SKILL.md +277 -0
  410. package/src/harness_context/skills/ecc/hipaa-compliance/LICENSE.ecc +21 -0
  411. package/src/harness_context/skills/ecc/hipaa-compliance/SKILL.md +79 -0
  412. package/src/harness_context/skills/ecc/homelab-network-readiness/LICENSE.ecc +21 -0
  413. package/src/harness_context/skills/ecc/homelab-network-readiness/SKILL.md +170 -0
  414. package/src/harness_context/skills/ecc/homelab-network-setup/LICENSE.ecc +21 -0
  415. package/src/harness_context/skills/ecc/homelab-network-setup/SKILL.md +130 -0
  416. package/src/harness_context/skills/ecc/homelab-pihole-dns/LICENSE.ecc +21 -0
  417. package/src/harness_context/skills/ecc/homelab-pihole-dns/SKILL.md +275 -0
  418. package/src/harness_context/skills/ecc/homelab-vlan-segmentation/LICENSE.ecc +21 -0
  419. package/src/harness_context/skills/ecc/homelab-vlan-segmentation/SKILL.md +312 -0
  420. package/src/harness_context/skills/ecc/homelab-wireguard-vpn/LICENSE.ecc +21 -0
  421. package/src/harness_context/skills/ecc/homelab-wireguard-vpn/SKILL.md +306 -0
  422. package/src/harness_context/skills/ecc/hookify-rules/LICENSE.ecc +21 -0
  423. package/src/harness_context/skills/ecc/hookify-rules/SKILL.md +128 -0
  424. package/src/harness_context/skills/ecc/inherit-legacy-style/LICENSE.ecc +21 -0
  425. package/src/harness_context/skills/ecc/inherit-legacy-style/SKILL.md +157 -0
  426. package/src/harness_context/skills/ecc/intent-driven-development/LICENSE.ecc +21 -0
  427. package/src/harness_context/skills/ecc/intent-driven-development/SKILL.md +360 -0
  428. package/src/harness_context/skills/ecc/inventory-demand-planning/LICENSE.ecc +21 -0
  429. package/src/harness_context/skills/ecc/inventory-demand-planning/SKILL.md +247 -0
  430. package/src/harness_context/skills/ecc/investor-materials/LICENSE.ecc +21 -0
  431. package/src/harness_context/skills/ecc/investor-materials/SKILL.md +97 -0
  432. package/src/harness_context/skills/ecc/investor-outreach/LICENSE.ecc +21 -0
  433. package/src/harness_context/skills/ecc/investor-outreach/SKILL.md +92 -0
  434. package/src/harness_context/skills/ecc/ios-icon-gen/LICENSE.ecc +21 -0
  435. package/src/harness_context/skills/ecc/ios-icon-gen/SKILL.md +158 -0
  436. package/src/harness_context/skills/ecc/ios-icon-gen/scripts/generate_icons.swift +258 -0
  437. package/src/harness_context/skills/ecc/ios-icon-gen/scripts/iconify_gen.sh +235 -0
  438. package/src/harness_context/skills/ecc/iterative-retrieval/LICENSE.ecc +21 -0
  439. package/src/harness_context/skills/ecc/iterative-retrieval/SKILL.md +212 -0
  440. package/src/harness_context/skills/ecc/ito-baskets/LICENSE.ecc +21 -0
  441. package/src/harness_context/skills/ecc/ito-baskets/SKILL.md +263 -0
  442. package/src/harness_context/skills/ecc/ito-baskets/agents/openai.yaml +4 -0
  443. package/src/harness_context/skills/ecc/ito-baskets/scripts/ito-baskets.js +195 -0
  444. package/src/harness_context/skills/ecc/ito-compute/LICENSE.ecc +21 -0
  445. package/src/harness_context/skills/ecc/ito-compute/SKILL.md +165 -0
  446. package/src/harness_context/skills/ecc/ito-compute/agents/openai.yaml +4 -0
  447. package/src/harness_context/skills/ecc/ito-inference/LICENSE.ecc +21 -0
  448. package/src/harness_context/skills/ecc/ito-inference/SKILL.md +119 -0
  449. package/src/harness_context/skills/ecc/ito-training/LICENSE.ecc +21 -0
  450. package/src/harness_context/skills/ecc/ito-training/SKILL.md +123 -0
  451. package/src/harness_context/skills/ecc/java-coding-standards/LICENSE.ecc +21 -0
  452. package/src/harness_context/skills/ecc/java-coding-standards/SKILL.md +384 -0
  453. package/src/harness_context/skills/ecc/jira-integration/LICENSE.ecc +21 -0
  454. package/src/harness_context/skills/ecc/jira-integration/SKILL.md +312 -0
  455. package/src/harness_context/skills/ecc/jpa-patterns/LICENSE.ecc +21 -0
  456. package/src/harness_context/skills/ecc/jpa-patterns/SKILL.md +152 -0
  457. package/src/harness_context/skills/ecc/knowledge-ops/LICENSE.ecc +21 -0
  458. package/src/harness_context/skills/ecc/knowledge-ops/SKILL.md +155 -0
  459. package/src/harness_context/skills/ecc/kotlin-coroutines-flows/LICENSE.ecc +21 -0
  460. package/src/harness_context/skills/ecc/kotlin-coroutines-flows/SKILL.md +285 -0
  461. package/src/harness_context/skills/ecc/kotlin-exposed-patterns/LICENSE.ecc +21 -0
  462. package/src/harness_context/skills/ecc/kotlin-exposed-patterns/SKILL.md +720 -0
  463. package/src/harness_context/skills/ecc/kotlin-ktor-patterns/LICENSE.ecc +21 -0
  464. package/src/harness_context/skills/ecc/kotlin-ktor-patterns/SKILL.md +690 -0
  465. package/src/harness_context/skills/ecc/kotlin-patterns/LICENSE.ecc +21 -0
  466. package/src/harness_context/skills/ecc/kotlin-patterns/SKILL.md +712 -0
  467. package/src/harness_context/skills/ecc/kotlin-testing/LICENSE.ecc +21 -0
  468. package/src/harness_context/skills/ecc/kotlin-testing/SKILL.md +825 -0
  469. package/src/harness_context/skills/ecc/kubernetes-patterns/LICENSE.ecc +21 -0
  470. package/src/harness_context/skills/ecc/kubernetes-patterns/SKILL.md +756 -0
  471. package/src/harness_context/skills/ecc/laravel-patterns/LICENSE.ecc +21 -0
  472. package/src/harness_context/skills/ecc/laravel-patterns/SKILL.md +416 -0
  473. package/src/harness_context/skills/ecc/laravel-plugin-discovery/LICENSE.ecc +21 -0
  474. package/src/harness_context/skills/ecc/laravel-plugin-discovery/SKILL.md +230 -0
  475. package/src/harness_context/skills/ecc/laravel-security/LICENSE.ecc +21 -0
  476. package/src/harness_context/skills/ecc/laravel-security/SKILL.md +948 -0
  477. package/src/harness_context/skills/ecc/laravel-tdd/LICENSE.ecc +21 -0
  478. package/src/harness_context/skills/ecc/laravel-tdd/SKILL.md +675 -0
  479. package/src/harness_context/skills/ecc/laravel-verification/LICENSE.ecc +21 -0
  480. package/src/harness_context/skills/ecc/laravel-verification/SKILL.md +180 -0
  481. package/src/harness_context/skills/ecc/latency-critical-systems/LICENSE.ecc +21 -0
  482. package/src/harness_context/skills/ecc/latency-critical-systems/SKILL.md +75 -0
  483. package/src/harness_context/skills/ecc/lead-intelligence/LICENSE.ecc +21 -0
  484. package/src/harness_context/skills/ecc/lead-intelligence/SKILL.md +333 -0
  485. package/src/harness_context/skills/ecc/lead-intelligence/agents/enrichment-agent.md +85 -0
  486. package/src/harness_context/skills/ecc/lead-intelligence/agents/mutual-mapper.md +75 -0
  487. package/src/harness_context/skills/ecc/lead-intelligence/agents/outreach-drafter.md +98 -0
  488. package/src/harness_context/skills/ecc/lead-intelligence/agents/signal-scorer.md +60 -0
  489. package/src/harness_context/skills/ecc/liquid-glass-design/LICENSE.ecc +21 -0
  490. package/src/harness_context/skills/ecc/liquid-glass-design/SKILL.md +279 -0
  491. package/src/harness_context/skills/ecc/living-docs-governance/LICENSE.ecc +21 -0
  492. package/src/harness_context/skills/ecc/living-docs-governance/SKILL.md +137 -0
  493. package/src/harness_context/skills/ecc/llm-trading-agent-security/LICENSE.ecc +21 -0
  494. package/src/harness_context/skills/ecc/llm-trading-agent-security/SKILL.md +147 -0
  495. package/src/harness_context/skills/ecc/logistics-exception-management/LICENSE.ecc +21 -0
  496. package/src/harness_context/skills/ecc/logistics-exception-management/SKILL.md +222 -0
  497. package/src/harness_context/skills/ecc/loop-design-check/LICENSE.ecc +21 -0
  498. package/src/harness_context/skills/ecc/loop-design-check/SKILL.md +143 -0
  499. package/src/harness_context/skills/ecc/mailtrap-email-integration/LICENSE.ecc +21 -0
  500. package/src/harness_context/skills/ecc/mailtrap-email-integration/SKILL.md +77 -0
  501. package/src/harness_context/skills/ecc/make-interfaces-feel-better/LICENSE.ecc +21 -0
  502. package/src/harness_context/skills/ecc/make-interfaces-feel-better/SKILL.md +152 -0
  503. package/src/harness_context/skills/ecc/manim-video/LICENSE.ecc +21 -0
  504. package/src/harness_context/skills/ecc/manim-video/SKILL.md +90 -0
  505. package/src/harness_context/skills/ecc/manim-video/assets/network_graph_scene.py +52 -0
  506. package/src/harness_context/skills/ecc/market-research/LICENSE.ecc +21 -0
  507. package/src/harness_context/skills/ecc/market-research/SKILL.md +87 -0
  508. package/src/harness_context/skills/ecc/marketing-campaign/LICENSE.ecc +21 -0
  509. package/src/harness_context/skills/ecc/marketing-campaign/SKILL.md +114 -0
  510. package/src/harness_context/skills/ecc/mcp-server-patterns/LICENSE.ecc +21 -0
  511. package/src/harness_context/skills/ecc/mcp-server-patterns/SKILL.md +70 -0
  512. package/src/harness_context/skills/ecc/messages-ops/LICENSE.ecc +21 -0
  513. package/src/harness_context/skills/ecc/messages-ops/SKILL.md +105 -0
  514. package/src/harness_context/skills/ecc/ml-adoption-playbook/LICENSE.ecc +21 -0
  515. package/src/harness_context/skills/ecc/ml-adoption-playbook/SKILL.md +57 -0
  516. package/src/harness_context/skills/ecc/mle-workflow/LICENSE.ecc +21 -0
  517. package/src/harness_context/skills/ecc/mle-workflow/SKILL.md +348 -0
  518. package/src/harness_context/skills/ecc/motion-advanced/LICENSE.ecc +21 -0
  519. package/src/harness_context/skills/ecc/motion-advanced/SKILL.md +597 -0
  520. package/src/harness_context/skills/ecc/motion-foundations/LICENSE.ecc +21 -0
  521. package/src/harness_context/skills/ecc/motion-foundations/SKILL.md +300 -0
  522. package/src/harness_context/skills/ecc/motion-patterns/LICENSE.ecc +21 -0
  523. package/src/harness_context/skills/ecc/motion-patterns/SKILL.md +435 -0
  524. package/src/harness_context/skills/ecc/motion-ui/LICENSE.ecc +21 -0
  525. package/src/harness_context/skills/ecc/motion-ui/SKILL.md +576 -0
  526. package/src/harness_context/skills/ecc/mysql-patterns/LICENSE.ecc +21 -0
  527. package/src/harness_context/skills/ecc/mysql-patterns/SKILL.md +413 -0
  528. package/src/harness_context/skills/ecc/nanoclaw-repl/LICENSE.ecc +21 -0
  529. package/src/harness_context/skills/ecc/nanoclaw-repl/SKILL.md +34 -0
  530. package/src/harness_context/skills/ecc/nasiko-control-plane/LICENSE.ecc +21 -0
  531. package/src/harness_context/skills/ecc/nasiko-control-plane/SKILL.md +49 -0
  532. package/src/harness_context/skills/ecc/nasiko-control-plane/agents/openai.yaml +4 -0
  533. package/src/harness_context/skills/ecc/nestjs-patterns/LICENSE.ecc +21 -0
  534. package/src/harness_context/skills/ecc/nestjs-patterns/SKILL.md +231 -0
  535. package/src/harness_context/skills/ecc/netmiko-ssh-automation/LICENSE.ecc +21 -0
  536. package/src/harness_context/skills/ecc/netmiko-ssh-automation/SKILL.md +174 -0
  537. package/src/harness_context/skills/ecc/network-bgp-diagnostics/LICENSE.ecc +21 -0
  538. package/src/harness_context/skills/ecc/network-bgp-diagnostics/SKILL.md +168 -0
  539. package/src/harness_context/skills/ecc/network-config-validation/LICENSE.ecc +21 -0
  540. package/src/harness_context/skills/ecc/network-config-validation/SKILL.md +211 -0
  541. package/src/harness_context/skills/ecc/network-interface-health/LICENSE.ecc +21 -0
  542. package/src/harness_context/skills/ecc/network-interface-health/SKILL.md +153 -0
  543. package/src/harness_context/skills/ecc/nextjs-turbopack/LICENSE.ecc +21 -0
  544. package/src/harness_context/skills/ecc/nextjs-turbopack/SKILL.md +58 -0
  545. package/src/harness_context/skills/ecc/nodejs-keccak256/LICENSE.ecc +21 -0
  546. package/src/harness_context/skills/ecc/nodejs-keccak256/SKILL.md +103 -0
  547. package/src/harness_context/skills/ecc/nutrient-document-processing/LICENSE.ecc +21 -0
  548. package/src/harness_context/skills/ecc/nutrient-document-processing/SKILL.md +168 -0
  549. package/src/harness_context/skills/ecc/nuxt4-patterns/LICENSE.ecc +21 -0
  550. package/src/harness_context/skills/ecc/nuxt4-patterns/SKILL.md +101 -0
  551. package/src/harness_context/skills/ecc/openclaw-persona-forge/LICENSE.ecc +21 -0
  552. package/src/harness_context/skills/ecc/openclaw-persona-forge/SKILL.md +289 -0
  553. package/src/harness_context/skills/ecc/openclaw-persona-forge/gacha.py +224 -0
  554. package/src/harness_context/skills/ecc/openclaw-persona-forge/gacha.sh +5 -0
  555. package/src/harness_context/skills/ecc/openclaw-persona-forge/references/avatar-style.md +124 -0
  556. package/src/harness_context/skills/ecc/openclaw-persona-forge/references/boundary-rules.md +53 -0
  557. package/src/harness_context/skills/ecc/openclaw-persona-forge/references/error-handling.md +53 -0
  558. package/src/harness_context/skills/ecc/openclaw-persona-forge/references/identity-tension.md +48 -0
  559. package/src/harness_context/skills/ecc/openclaw-persona-forge/references/naming-system.md +39 -0
  560. package/src/harness_context/skills/ecc/openclaw-persona-forge/references/output-template.md +166 -0
  561. package/src/harness_context/skills/ecc/opensource-pipeline/LICENSE.ecc +21 -0
  562. package/src/harness_context/skills/ecc/opensource-pipeline/SKILL.md +256 -0
  563. package/src/harness_context/skills/ecc/orch-add-feature/LICENSE.ecc +21 -0
  564. package/src/harness_context/skills/ecc/orch-add-feature/SKILL.md +45 -0
  565. package/src/harness_context/skills/ecc/orch-build-mvp/LICENSE.ecc +21 -0
  566. package/src/harness_context/skills/ecc/orch-build-mvp/SKILL.md +49 -0
  567. package/src/harness_context/skills/ecc/orch-change-feature/LICENSE.ecc +21 -0
  568. package/src/harness_context/skills/ecc/orch-change-feature/SKILL.md +43 -0
  569. package/src/harness_context/skills/ecc/orch-fix-defect/LICENSE.ecc +21 -0
  570. package/src/harness_context/skills/ecc/orch-fix-defect/SKILL.md +43 -0
  571. package/src/harness_context/skills/ecc/orch-pipeline/LICENSE.ecc +21 -0
  572. package/src/harness_context/skills/ecc/orch-pipeline/SKILL.md +121 -0
  573. package/src/harness_context/skills/ecc/orch-refine-code/LICENSE.ecc +21 -0
  574. package/src/harness_context/skills/ecc/orch-refine-code/SKILL.md +44 -0
  575. package/src/harness_context/skills/ecc/parallel-execution-optimizer/LICENSE.ecc +21 -0
  576. package/src/harness_context/skills/ecc/parallel-execution-optimizer/SKILL.md +74 -0
  577. package/src/harness_context/skills/ecc/perl-patterns/LICENSE.ecc +21 -0
  578. package/src/harness_context/skills/ecc/perl-patterns/SKILL.md +505 -0
  579. package/src/harness_context/skills/ecc/perl-security/LICENSE.ecc +21 -0
  580. package/src/harness_context/skills/ecc/perl-security/SKILL.md +504 -0
  581. package/src/harness_context/skills/ecc/perl-testing/LICENSE.ecc +21 -0
  582. package/src/harness_context/skills/ecc/perl-testing/SKILL.md +476 -0
  583. package/src/harness_context/skills/ecc/plan-canvas/LICENSE.ecc +21 -0
  584. package/src/harness_context/skills/ecc/plan-canvas/SKILL.md +196 -0
  585. package/src/harness_context/skills/ecc/plan-orchestrate/LICENSE.ecc +21 -0
  586. package/src/harness_context/skills/ecc/plan-orchestrate/SKILL.md +263 -0
  587. package/src/harness_context/skills/ecc/plankton-code-quality/LICENSE.ecc +21 -0
  588. package/src/harness_context/skills/ecc/plankton-code-quality/SKILL.md +237 -0
  589. package/src/harness_context/skills/ecc/postgres-patterns/LICENSE.ecc +21 -0
  590. package/src/harness_context/skills/ecc/postgres-patterns/SKILL.md +148 -0
  591. package/src/harness_context/skills/ecc/prediction-market-oracle-research/LICENSE.ecc +21 -0
  592. package/src/harness_context/skills/ecc/prediction-market-oracle-research/SKILL.md +64 -0
  593. package/src/harness_context/skills/ecc/prediction-market-risk-review/LICENSE.ecc +21 -0
  594. package/src/harness_context/skills/ecc/prediction-market-risk-review/SKILL.md +61 -0
  595. package/src/harness_context/skills/ecc/prisma-patterns/LICENSE.ecc +21 -0
  596. package/src/harness_context/skills/ecc/prisma-patterns/SKILL.md +401 -0
  597. package/src/harness_context/skills/ecc/product-capability/LICENSE.ecc +21 -0
  598. package/src/harness_context/skills/ecc/product-capability/SKILL.md +142 -0
  599. package/src/harness_context/skills/ecc/product-lens/LICENSE.ecc +21 -0
  600. package/src/harness_context/skills/ecc/product-lens/SKILL.md +93 -0
  601. package/src/harness_context/skills/ecc/production-audit/LICENSE.ecc +21 -0
  602. package/src/harness_context/skills/ecc/production-audit/SKILL.md +207 -0
  603. package/src/harness_context/skills/ecc/production-scheduling/LICENSE.ecc +21 -0
  604. package/src/harness_context/skills/ecc/production-scheduling/SKILL.md +238 -0
  605. package/src/harness_context/skills/ecc/project-flow-ops/LICENSE.ecc +21 -0
  606. package/src/harness_context/skills/ecc/project-flow-ops/SKILL.md +112 -0
  607. package/src/harness_context/skills/ecc/prompt-optimizer/LICENSE.ecc +21 -0
  608. package/src/harness_context/skills/ecc/prompt-optimizer/SKILL.md +398 -0
  609. package/src/harness_context/skills/ecc/python-patterns/LICENSE.ecc +21 -0
  610. package/src/harness_context/skills/ecc/python-patterns/SKILL.md +751 -0
  611. package/src/harness_context/skills/ecc/python-testing/LICENSE.ecc +21 -0
  612. package/src/harness_context/skills/ecc/python-testing/SKILL.md +817 -0
  613. package/src/harness_context/skills/ecc/pytorch-patterns/LICENSE.ecc +21 -0
  614. package/src/harness_context/skills/ecc/pytorch-patterns/SKILL.md +397 -0
  615. package/src/harness_context/skills/ecc/quality-nonconformance/LICENSE.ecc +21 -0
  616. package/src/harness_context/skills/ecc/quality-nonconformance/SKILL.md +260 -0
  617. package/src/harness_context/skills/ecc/quarkus-patterns/LICENSE.ecc +21 -0
  618. package/src/harness_context/skills/ecc/quarkus-patterns/SKILL.md +723 -0
  619. package/src/harness_context/skills/ecc/quarkus-security/LICENSE.ecc +21 -0
  620. package/src/harness_context/skills/ecc/quarkus-security/SKILL.md +468 -0
  621. package/src/harness_context/skills/ecc/quarkus-tdd/LICENSE.ecc +21 -0
  622. package/src/harness_context/skills/ecc/quarkus-tdd/SKILL.md +812 -0
  623. package/src/harness_context/skills/ecc/quarkus-verification/LICENSE.ecc +21 -0
  624. package/src/harness_context/skills/ecc/quarkus-verification/SKILL.md +481 -0
  625. package/src/harness_context/skills/ecc/ralphinho-rfc-pipeline/LICENSE.ecc +21 -0
  626. package/src/harness_context/skills/ecc/ralphinho-rfc-pipeline/SKILL.md +68 -0
  627. package/src/harness_context/skills/ecc/react-native-patterns/LICENSE.ecc +21 -0
  628. package/src/harness_context/skills/ecc/react-native-patterns/SKILL.md +326 -0
  629. package/src/harness_context/skills/ecc/react-patterns/LICENSE.ecc +21 -0
  630. package/src/harness_context/skills/ecc/react-patterns/SKILL.md +342 -0
  631. package/src/harness_context/skills/ecc/react-performance/LICENSE.ecc +21 -0
  632. package/src/harness_context/skills/ecc/react-performance/SKILL.md +575 -0
  633. package/src/harness_context/skills/ecc/react-testing/LICENSE.ecc +21 -0
  634. package/src/harness_context/skills/ecc/react-testing/SKILL.md +424 -0
  635. package/src/harness_context/skills/ecc/recsys-pipeline-architect/LICENSE.ecc +21 -0
  636. package/src/harness_context/skills/ecc/recsys-pipeline-architect/SKILL.md +115 -0
  637. package/src/harness_context/skills/ecc/recursive-decision-ledger/LICENSE.ecc +21 -0
  638. package/src/harness_context/skills/ecc/recursive-decision-ledger/SKILL.md +81 -0
  639. package/src/harness_context/skills/ecc/redis-patterns/LICENSE.ecc +21 -0
  640. package/src/harness_context/skills/ecc/redis-patterns/SKILL.md +404 -0
  641. package/src/harness_context/skills/ecc/regex-vs-llm-structured-text/LICENSE.ecc +21 -0
  642. package/src/harness_context/skills/ecc/regex-vs-llm-structured-text/SKILL.md +221 -0
  643. package/src/harness_context/skills/ecc/remotion-video-creation/LICENSE.ecc +21 -0
  644. package/src/harness_context/skills/ecc/remotion-video-creation/SKILL.md +43 -0
  645. package/src/harness_context/skills/ecc/remotion-video-creation/rules/3d.md +86 -0
  646. package/src/harness_context/skills/ecc/remotion-video-creation/rules/animations.md +29 -0
  647. package/src/harness_context/skills/ecc/remotion-video-creation/rules/assets/charts-bar-chart.tsx +173 -0
  648. package/src/harness_context/skills/ecc/remotion-video-creation/rules/assets/text-animations-typewriter.tsx +100 -0
  649. package/src/harness_context/skills/ecc/remotion-video-creation/rules/assets/text-animations-word-highlight.tsx +108 -0
  650. package/src/harness_context/skills/ecc/remotion-video-creation/rules/assets.md +78 -0
  651. package/src/harness_context/skills/ecc/remotion-video-creation/rules/audio.md +172 -0
  652. package/src/harness_context/skills/ecc/remotion-video-creation/rules/calculate-metadata.md +104 -0
  653. package/src/harness_context/skills/ecc/remotion-video-creation/rules/can-decode.md +75 -0
  654. package/src/harness_context/skills/ecc/remotion-video-creation/rules/charts.md +58 -0
  655. package/src/harness_context/skills/ecc/remotion-video-creation/rules/compositions.md +146 -0
  656. package/src/harness_context/skills/ecc/remotion-video-creation/rules/display-captions.md +126 -0
  657. package/src/harness_context/skills/ecc/remotion-video-creation/rules/extract-frames.md +229 -0
  658. package/src/harness_context/skills/ecc/remotion-video-creation/rules/fonts.md +152 -0
  659. package/src/harness_context/skills/ecc/remotion-video-creation/rules/get-audio-duration.md +58 -0
  660. package/src/harness_context/skills/ecc/remotion-video-creation/rules/get-video-dimensions.md +68 -0
  661. package/src/harness_context/skills/ecc/remotion-video-creation/rules/get-video-duration.md +58 -0
  662. package/src/harness_context/skills/ecc/remotion-video-creation/rules/gifs.md +138 -0
  663. package/src/harness_context/skills/ecc/remotion-video-creation/rules/images.md +130 -0
  664. package/src/harness_context/skills/ecc/remotion-video-creation/rules/import-srt-captions.md +67 -0
  665. package/src/harness_context/skills/ecc/remotion-video-creation/rules/lottie.md +67 -0
  666. package/src/harness_context/skills/ecc/remotion-video-creation/rules/measuring-dom-nodes.md +34 -0
  667. package/src/harness_context/skills/ecc/remotion-video-creation/rules/measuring-text.md +143 -0
  668. package/src/harness_context/skills/ecc/remotion-video-creation/rules/sequencing.md +106 -0
  669. package/src/harness_context/skills/ecc/remotion-video-creation/rules/tailwind.md +11 -0
  670. package/src/harness_context/skills/ecc/remotion-video-creation/rules/text-animations.md +20 -0
  671. package/src/harness_context/skills/ecc/remotion-video-creation/rules/timing.md +179 -0
  672. package/src/harness_context/skills/ecc/remotion-video-creation/rules/transcribe-captions.md +19 -0
  673. package/src/harness_context/skills/ecc/remotion-video-creation/rules/transitions.md +122 -0
  674. package/src/harness_context/skills/ecc/remotion-video-creation/rules/trimming.md +52 -0
  675. package/src/harness_context/skills/ecc/remotion-video-creation/rules/videos.md +171 -0
  676. package/src/harness_context/skills/ecc/repo-scan/LICENSE.ecc +21 -0
  677. package/src/harness_context/skills/ecc/repo-scan/SKILL.md +170 -0
  678. package/src/harness_context/skills/ecc/research-ops/LICENSE.ecc +21 -0
  679. package/src/harness_context/skills/ecc/research-ops/SKILL.md +113 -0
  680. package/src/harness_context/skills/ecc/returns-reverse-logistics/LICENSE.ecc +21 -0
  681. package/src/harness_context/skills/ecc/returns-reverse-logistics/SKILL.md +240 -0
  682. package/src/harness_context/skills/ecc/rules-distill/LICENSE.ecc +21 -0
  683. package/src/harness_context/skills/ecc/rules-distill/SKILL.md +265 -0
  684. package/src/harness_context/skills/ecc/rules-distill/scripts/scan-rules.sh +58 -0
  685. package/src/harness_context/skills/ecc/rules-distill/scripts/scan-skills.sh +129 -0
  686. package/src/harness_context/skills/ecc/rust-patterns/LICENSE.ecc +21 -0
  687. package/src/harness_context/skills/ecc/rust-patterns/SKILL.md +500 -0
  688. package/src/harness_context/skills/ecc/rust-testing/LICENSE.ecc +21 -0
  689. package/src/harness_context/skills/ecc/rust-testing/SKILL.md +501 -0
  690. package/src/harness_context/skills/ecc/safety-guard/LICENSE.ecc +21 -0
  691. package/src/harness_context/skills/ecc/safety-guard/SKILL.md +76 -0
  692. package/src/harness_context/skills/ecc/santa-method/LICENSE.ecc +21 -0
  693. package/src/harness_context/skills/ecc/santa-method/SKILL.md +307 -0
  694. package/src/harness_context/skills/ecc/scientific-db-pubmed-database/LICENSE.ecc +21 -0
  695. package/src/harness_context/skills/ecc/scientific-db-pubmed-database/SKILL.md +176 -0
  696. package/src/harness_context/skills/ecc/scientific-db-uspto-database/LICENSE.ecc +21 -0
  697. package/src/harness_context/skills/ecc/scientific-db-uspto-database/SKILL.md +178 -0
  698. package/src/harness_context/skills/ecc/scientific-pkg-gget/LICENSE.ecc +21 -0
  699. package/src/harness_context/skills/ecc/scientific-pkg-gget/SKILL.md +167 -0
  700. package/src/harness_context/skills/ecc/scientific-thinking-literature-review/LICENSE.ecc +21 -0
  701. package/src/harness_context/skills/ecc/scientific-thinking-literature-review/SKILL.md +193 -0
  702. package/src/harness_context/skills/ecc/scientific-thinking-scholar-evaluation/LICENSE.ecc +21 -0
  703. package/src/harness_context/skills/ecc/scientific-thinking-scholar-evaluation/SKILL.md +161 -0
  704. package/src/harness_context/skills/ecc/search-first/LICENSE.ecc +21 -0
  705. package/src/harness_context/skills/ecc/search-first/SKILL.md +183 -0
  706. package/src/harness_context/skills/ecc/security-bounty-hunter/LICENSE.ecc +21 -0
  707. package/src/harness_context/skills/ecc/security-bounty-hunter/SKILL.md +100 -0
  708. package/src/harness_context/skills/ecc/security-review/LICENSE.ecc +21 -0
  709. package/src/harness_context/skills/ecc/security-review/SKILL.md +504 -0
  710. package/src/harness_context/skills/ecc/security-review/cloud-infrastructure-security.md +361 -0
  711. package/src/harness_context/skills/ecc/security-scan/LICENSE.ecc +21 -0
  712. package/src/harness_context/skills/ecc/security-scan/SKILL.md +166 -0
  713. package/src/harness_context/skills/ecc/seo/LICENSE.ecc +21 -0
  714. package/src/harness_context/skills/ecc/seo/SKILL.md +155 -0
  715. package/src/harness_context/skills/ecc/skill-comply/LICENSE.ecc +21 -0
  716. package/src/harness_context/skills/ecc/skill-comply/SKILL.md +59 -0
  717. package/src/harness_context/skills/ecc/skill-comply/fixtures/compliant_trace.jsonl +5 -0
  718. package/src/harness_context/skills/ecc/skill-comply/fixtures/noncompliant_trace.jsonl +3 -0
  719. package/src/harness_context/skills/ecc/skill-comply/fixtures/tdd_spec.yaml +44 -0
  720. package/src/harness_context/skills/ecc/skill-comply/prompts/classifier.md +24 -0
  721. package/src/harness_context/skills/ecc/skill-comply/prompts/scenario_generator.md +62 -0
  722. package/src/harness_context/skills/ecc/skill-comply/prompts/spec_generator.md +42 -0
  723. package/src/harness_context/skills/ecc/skill-comply/pyproject.toml +16 -0
  724. package/src/harness_context/skills/ecc/skill-comply/scripts/__init__.py +0 -0
  725. package/src/harness_context/skills/ecc/skill-comply/scripts/classifier.py +85 -0
  726. package/src/harness_context/skills/ecc/skill-comply/scripts/grader.py +124 -0
  727. package/src/harness_context/skills/ecc/skill-comply/scripts/parser.py +107 -0
  728. package/src/harness_context/skills/ecc/skill-comply/scripts/report.py +170 -0
  729. package/src/harness_context/skills/ecc/skill-comply/scripts/run.py +127 -0
  730. package/src/harness_context/skills/ecc/skill-comply/scripts/runner.py +245 -0
  731. package/src/harness_context/skills/ecc/skill-comply/scripts/scenario_generator.py +70 -0
  732. package/src/harness_context/skills/ecc/skill-comply/scripts/spec_generator.py +72 -0
  733. package/src/harness_context/skills/ecc/skill-comply/scripts/utils.py +13 -0
  734. package/src/harness_context/skills/ecc/skill-comply/tests/test_grader.py +197 -0
  735. package/src/harness_context/skills/ecc/skill-comply/tests/test_parser.py +90 -0
  736. package/src/harness_context/skills/ecc/skill-comply/tests/test_runner.py +316 -0
  737. package/src/harness_context/skills/ecc/skill-scout/LICENSE.ecc +21 -0
  738. package/src/harness_context/skills/ecc/skill-scout/SKILL.md +141 -0
  739. package/src/harness_context/skills/ecc/skill-stocktake/LICENSE.ecc +21 -0
  740. package/src/harness_context/skills/ecc/skill-stocktake/SKILL.md +195 -0
  741. package/src/harness_context/skills/ecc/skill-stocktake/scripts/quick-diff.sh +118 -0
  742. package/src/harness_context/skills/ecc/skill-stocktake/scripts/save-results.sh +56 -0
  743. package/src/harness_context/skills/ecc/skill-stocktake/scripts/scan.sh +211 -0
  744. package/src/harness_context/skills/ecc/social-graph-ranker/LICENSE.ecc +21 -0
  745. package/src/harness_context/skills/ecc/social-graph-ranker/SKILL.md +155 -0
  746. package/src/harness_context/skills/ecc/social-publisher/LICENSE.ecc +21 -0
  747. package/src/harness_context/skills/ecc/social-publisher/SKILL.md +139 -0
  748. package/src/harness_context/skills/ecc/springboot-patterns/LICENSE.ecc +21 -0
  749. package/src/harness_context/skills/ecc/springboot-patterns/SKILL.md +315 -0
  750. package/src/harness_context/skills/ecc/springboot-security/LICENSE.ecc +21 -0
  751. package/src/harness_context/skills/ecc/springboot-security/SKILL.md +273 -0
  752. package/src/harness_context/skills/ecc/springboot-tdd/LICENSE.ecc +21 -0
  753. package/src/harness_context/skills/ecc/springboot-tdd/SKILL.md +159 -0
  754. package/src/harness_context/skills/ecc/springboot-verification/LICENSE.ecc +21 -0
  755. package/src/harness_context/skills/ecc/springboot-verification/SKILL.md +232 -0
  756. package/src/harness_context/skills/ecc/strategic-compact/LICENSE.ecc +21 -0
  757. package/src/harness_context/skills/ecc/strategic-compact/SKILL.md +156 -0
  758. package/src/harness_context/skills/ecc/swift-actor-persistence/LICENSE.ecc +21 -0
  759. package/src/harness_context/skills/ecc/swift-actor-persistence/SKILL.md +144 -0
  760. package/src/harness_context/skills/ecc/swift-concurrency-6-2/LICENSE.ecc +21 -0
  761. package/src/harness_context/skills/ecc/swift-concurrency-6-2/SKILL.md +216 -0
  762. package/src/harness_context/skills/ecc/swift-protocol-di-testing/LICENSE.ecc +21 -0
  763. package/src/harness_context/skills/ecc/swift-protocol-di-testing/SKILL.md +191 -0
  764. package/src/harness_context/skills/ecc/swiftui-patterns/LICENSE.ecc +21 -0
  765. package/src/harness_context/skills/ecc/swiftui-patterns/SKILL.md +259 -0
  766. package/src/harness_context/skills/ecc/taste/LICENSE.ecc +21 -0
  767. package/src/harness_context/skills/ecc/taste/SKILL.md +264 -0
  768. package/src/harness_context/skills/ecc/taste/references/genre-taxonomy.md +87 -0
  769. package/src/harness_context/skills/ecc/tasteforge-video/LICENSE.ecc +21 -0
  770. package/src/harness_context/skills/ecc/tasteforge-video/SKILL.md +192 -0
  771. package/src/harness_context/skills/ecc/tdd-workflow/LICENSE.ecc +21 -0
  772. package/src/harness_context/skills/ecc/tdd-workflow/SKILL.md +583 -0
  773. package/src/harness_context/skills/ecc/team-agent-orchestration/LICENSE.ecc +21 -0
  774. package/src/harness_context/skills/ecc/team-agent-orchestration/SKILL.md +111 -0
  775. package/src/harness_context/skills/ecc/team-builder/LICENSE.ecc +21 -0
  776. package/src/harness_context/skills/ecc/team-builder/SKILL.md +169 -0
  777. package/src/harness_context/skills/ecc/terminal-opener/LICENSE.ecc +21 -0
  778. package/src/harness_context/skills/ecc/terminal-opener/SKILL.md +55 -0
  779. package/src/harness_context/skills/ecc/terminal-opener/agents/openai.yaml +4 -0
  780. package/src/harness_context/skills/ecc/terminal-opener/scripts/open-terminal.js +396 -0
  781. package/src/harness_context/skills/ecc/terminal-ops/LICENSE.ecc +21 -0
  782. package/src/harness_context/skills/ecc/terminal-ops/SKILL.md +110 -0
  783. package/src/harness_context/skills/ecc/tinystruct-patterns/LICENSE.ecc +21 -0
  784. package/src/harness_context/skills/ecc/tinystruct-patterns/SKILL.md +279 -0
  785. package/src/harness_context/skills/ecc/tinystruct-patterns/references/architecture.md +90 -0
  786. package/src/harness_context/skills/ecc/tinystruct-patterns/references/data-handling.md +60 -0
  787. package/src/harness_context/skills/ecc/tinystruct-patterns/references/database.md +99 -0
  788. package/src/harness_context/skills/ecc/tinystruct-patterns/references/routing.md +64 -0
  789. package/src/harness_context/skills/ecc/tinystruct-patterns/references/system-usage.md +97 -0
  790. package/src/harness_context/skills/ecc/tinystruct-patterns/references/testing.md +72 -0
  791. package/src/harness_context/skills/ecc/token-budget-advisor/LICENSE.ecc +21 -0
  792. package/src/harness_context/skills/ecc/token-budget-advisor/SKILL.md +134 -0
  793. package/src/harness_context/skills/ecc/ui-demo/LICENSE.ecc +21 -0
  794. package/src/harness_context/skills/ecc/ui-demo/SKILL.md +466 -0
  795. package/src/harness_context/skills/ecc/ui-to-vue/LICENSE.ecc +21 -0
  796. package/src/harness_context/skills/ecc/ui-to-vue/SKILL.md +135 -0
  797. package/src/harness_context/skills/ecc/uncloud/LICENSE.ecc +21 -0
  798. package/src/harness_context/skills/ecc/uncloud/SKILL.md +344 -0
  799. package/src/harness_context/skills/ecc/unified-memory/LICENSE.ecc +21 -0
  800. package/src/harness_context/skills/ecc/unified-memory/SKILL.md +170 -0
  801. package/src/harness_context/skills/ecc/unified-notifications-ops/LICENSE.ecc +21 -0
  802. package/src/harness_context/skills/ecc/unified-notifications-ops/SKILL.md +188 -0
  803. package/src/harness_context/skills/ecc/verification-loop/LICENSE.ecc +21 -0
  804. package/src/harness_context/skills/ecc/verification-loop/SKILL.md +129 -0
  805. package/src/harness_context/skills/ecc/video-editing/LICENSE.ecc +21 -0
  806. package/src/harness_context/skills/ecc/video-editing/SKILL.md +311 -0
  807. package/src/harness_context/skills/ecc/videodb/LICENSE.ecc +21 -0
  808. package/src/harness_context/skills/ecc/videodb/SKILL.md +375 -0
  809. package/src/harness_context/skills/ecc/videodb/reference/api-reference.md +550 -0
  810. package/src/harness_context/skills/ecc/videodb/reference/capture-reference.md +407 -0
  811. package/src/harness_context/skills/ecc/videodb/reference/capture.md +101 -0
  812. package/src/harness_context/skills/ecc/videodb/reference/editor.md +443 -0
  813. package/src/harness_context/skills/ecc/videodb/reference/generative.md +331 -0
  814. package/src/harness_context/skills/ecc/videodb/reference/rtstream-reference.md +564 -0
  815. package/src/harness_context/skills/ecc/videodb/reference/rtstream.md +65 -0
  816. package/src/harness_context/skills/ecc/videodb/reference/search.md +230 -0
  817. package/src/harness_context/skills/ecc/videodb/reference/streaming.md +406 -0
  818. package/src/harness_context/skills/ecc/videodb/reference/use-cases.md +118 -0
  819. package/src/harness_context/skills/ecc/videodb/scripts/ws_listener.py +282 -0
  820. package/src/harness_context/skills/ecc/visa-doc-translate/LICENSE.ecc +21 -0
  821. package/src/harness_context/skills/ecc/visa-doc-translate/README.md +86 -0
  822. package/src/harness_context/skills/ecc/visa-doc-translate/SKILL.md +117 -0
  823. package/src/harness_context/skills/ecc/vite-patterns/LICENSE.ecc +21 -0
  824. package/src/harness_context/skills/ecc/vite-patterns/SKILL.md +450 -0
  825. package/src/harness_context/skills/ecc/vue-patterns/LICENSE.ecc +21 -0
  826. package/src/harness_context/skills/ecc/vue-patterns/SKILL.md +471 -0
  827. package/src/harness_context/skills/ecc/windows-desktop-e2e/LICENSE.ecc +21 -0
  828. package/src/harness_context/skills/ecc/windows-desktop-e2e/SKILL.md +888 -0
  829. package/src/harness_context/skills/ecc/workspace-surface-audit/LICENSE.ecc +21 -0
  830. package/src/harness_context/skills/ecc/workspace-surface-audit/SKILL.md +126 -0
  831. package/src/harness_context/skills/ecc/x-api/LICENSE.ecc +21 -0
  832. package/src/harness_context/skills/ecc/x-api/SKILL.md +244 -0
  833. package/src/harness_context/skills/ecc_catalog.json +2233 -0
  834. package/src/harness_context/skills/router.py +400 -0
  835. package/src/harness_context/workspace/roots.py +1 -1
@@ -0,0 +1,191 @@
1
+ ---
2
+ name: swift-protocol-di-testing
3
+ description: Protocol-based dependency injection for testable Swift code — mock file system, network, and external APIs using focused protocols and Swift Testing. Use when Swift code needs testing and file system, network, or external APIs must be mocked.
4
+ metadata:
5
+ origin: ECC
6
+ ---
7
+
8
+ # Swift Protocol-Based Dependency Injection for Testing
9
+
10
+ Patterns for making Swift code testable by abstracting external dependencies (file system, network, iCloud) behind small, focused protocols. Enables deterministic tests without I/O.
11
+
12
+ ## When to Activate
13
+
14
+ - Writing Swift code that accesses file system, network, or external APIs
15
+ - Need to test error handling paths without triggering real failures
16
+ - Building modules that work across environments (app, test, SwiftUI preview)
17
+ - Designing testable architecture with Swift concurrency (actors, Sendable)
18
+
19
+ ## Core Pattern
20
+
21
+ ### 1. Define Small, Focused Protocols
22
+
23
+ Each protocol handles exactly one external concern.
24
+
25
+ ```swift
26
+ // File system access
27
+ public protocol FileSystemProviding: Sendable {
28
+ func containerURL(for purpose: Purpose) -> URL?
29
+ }
30
+
31
+ // File read/write operations
32
+ public protocol FileAccessorProviding: Sendable {
33
+ func read(from url: URL) throws -> Data
34
+ func write(_ data: Data, to url: URL) throws
35
+ func fileExists(at url: URL) -> Bool
36
+ }
37
+
38
+ // Bookmark storage (e.g., for sandboxed apps)
39
+ public protocol BookmarkStorageProviding: Sendable {
40
+ func saveBookmark(_ data: Data, for key: String) throws
41
+ func loadBookmark(for key: String) throws -> Data?
42
+ }
43
+ ```
44
+
45
+ ### 2. Create Default (Production) Implementations
46
+
47
+ ```swift
48
+ public struct DefaultFileSystemProvider: FileSystemProviding {
49
+ public init() {}
50
+
51
+ public func containerURL(for purpose: Purpose) -> URL? {
52
+ FileManager.default.url(forUbiquityContainerIdentifier: nil)
53
+ }
54
+ }
55
+
56
+ public struct DefaultFileAccessor: FileAccessorProviding {
57
+ public init() {}
58
+
59
+ public func read(from url: URL) throws -> Data {
60
+ try Data(contentsOf: url)
61
+ }
62
+
63
+ public func write(_ data: Data, to url: URL) throws {
64
+ try data.write(to: url, options: .atomic)
65
+ }
66
+
67
+ public func fileExists(at url: URL) -> Bool {
68
+ FileManager.default.fileExists(atPath: url.path)
69
+ }
70
+ }
71
+ ```
72
+
73
+ ### 3. Create Mock Implementations for Testing
74
+
75
+ ```swift
76
+ public final class MockFileAccessor: FileAccessorProviding, @unchecked Sendable {
77
+ public var files: [URL: Data] = [:]
78
+ public var readError: Error?
79
+ public var writeError: Error?
80
+
81
+ public init() {}
82
+
83
+ public func read(from url: URL) throws -> Data {
84
+ if let error = readError { throw error }
85
+ guard let data = files[url] else {
86
+ throw CocoaError(.fileReadNoSuchFile)
87
+ }
88
+ return data
89
+ }
90
+
91
+ public func write(_ data: Data, to url: URL) throws {
92
+ if let error = writeError { throw error }
93
+ files[url] = data
94
+ }
95
+
96
+ public func fileExists(at url: URL) -> Bool {
97
+ files[url] != nil
98
+ }
99
+ }
100
+ ```
101
+
102
+ ### 4. Inject Dependencies with Default Parameters
103
+
104
+ Production code uses defaults; tests inject mocks.
105
+
106
+ ```swift
107
+ public actor SyncManager {
108
+ private let fileSystem: FileSystemProviding
109
+ private let fileAccessor: FileAccessorProviding
110
+
111
+ public init(
112
+ fileSystem: FileSystemProviding = DefaultFileSystemProvider(),
113
+ fileAccessor: FileAccessorProviding = DefaultFileAccessor()
114
+ ) {
115
+ self.fileSystem = fileSystem
116
+ self.fileAccessor = fileAccessor
117
+ }
118
+
119
+ public func sync() async throws {
120
+ guard let containerURL = fileSystem.containerURL(for: .sync) else {
121
+ throw SyncError.containerNotAvailable
122
+ }
123
+ let data = try fileAccessor.read(
124
+ from: containerURL.appendingPathComponent("data.json")
125
+ )
126
+ // Process data...
127
+ }
128
+ }
129
+ ```
130
+
131
+ ### 5. Write Tests with Swift Testing
132
+
133
+ ```swift
134
+ import Testing
135
+
136
+ @Test("Sync manager handles missing container")
137
+ func testMissingContainer() async {
138
+ let mockFileSystem = MockFileSystemProvider(containerURL: nil)
139
+ let manager = SyncManager(fileSystem: mockFileSystem)
140
+
141
+ await #expect(throws: SyncError.containerNotAvailable) {
142
+ try await manager.sync()
143
+ }
144
+ }
145
+
146
+ @Test("Sync manager reads data correctly")
147
+ func testReadData() async throws {
148
+ let mockFileAccessor = MockFileAccessor()
149
+ mockFileAccessor.files[testURL] = testData
150
+
151
+ let manager = SyncManager(fileAccessor: mockFileAccessor)
152
+ let result = try await manager.loadData()
153
+
154
+ #expect(result == expectedData)
155
+ }
156
+
157
+ @Test("Sync manager handles read errors gracefully")
158
+ func testReadError() async {
159
+ let mockFileAccessor = MockFileAccessor()
160
+ mockFileAccessor.readError = CocoaError(.fileReadCorruptFile)
161
+
162
+ let manager = SyncManager(fileAccessor: mockFileAccessor)
163
+
164
+ await #expect(throws: SyncError.self) {
165
+ try await manager.sync()
166
+ }
167
+ }
168
+ ```
169
+
170
+ ## Best Practices
171
+
172
+ - **Single Responsibility**: Each protocol should handle one concern — don't create "god protocols" with many methods
173
+ - **Sendable conformance**: Required when protocols are used across actor boundaries
174
+ - **Default parameters**: Let production code use real implementations by default; only tests need to specify mocks
175
+ - **Error simulation**: Design mocks with configurable error properties for testing failure paths
176
+ - **Only mock boundaries**: Mock external dependencies (file system, network, APIs), not internal types
177
+
178
+ ## Anti-Patterns to Avoid
179
+
180
+ - Creating a single large protocol that covers all external access
181
+ - Mocking internal types that have no external dependencies
182
+ - Using `#if DEBUG` conditionals instead of proper dependency injection
183
+ - Forgetting `Sendable` conformance when used with actors
184
+ - Over-engineering: if a type has no external dependencies, it doesn't need a protocol
185
+
186
+ ## When to Use
187
+
188
+ - Any Swift code that touches file system, network, or external APIs
189
+ - Testing error handling paths that are hard to trigger in real environments
190
+ - Building modules that need to work in app, test, and SwiftUI preview contexts
191
+ - Apps using Swift concurrency (actors, structured concurrency) that need testable architecture
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Affaan Mustafa
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,259 @@
1
+ ---
2
+ name: swiftui-patterns
3
+ description: SwiftUI architecture patterns, state management with @Observable, view composition, navigation, performance optimization, and modern iOS/macOS UI best practices. Use when building or reviewing SwiftUI views, @Observable state, navigation, or render performance.
4
+ ---
5
+
6
+ # SwiftUI Patterns
7
+
8
+ Modern SwiftUI patterns for building declarative, performant user interfaces on Apple platforms. Covers the Observation framework, view composition, type-safe navigation, and performance optimization.
9
+
10
+ ## When to Activate
11
+
12
+ - Building SwiftUI views and managing state (`@State`, `@Observable`, `@Binding`)
13
+ - Designing navigation flows with `NavigationStack`
14
+ - Structuring view models and data flow
15
+ - Optimizing rendering performance for lists and complex layouts
16
+ - Working with environment values and dependency injection in SwiftUI
17
+
18
+ ## State Management
19
+
20
+ ### Property Wrapper Selection
21
+
22
+ Choose the simplest wrapper that fits:
23
+
24
+ | Wrapper | Use Case |
25
+ |---------|----------|
26
+ | `@State` | View-local value types (toggles, form fields, sheet presentation) |
27
+ | `@Binding` | Two-way reference to parent's `@State` |
28
+ | `@Observable` class + `@State` | Owned model with multiple properties |
29
+ | `@Observable` class (no wrapper) | Read-only reference passed from parent |
30
+ | `@Bindable` | Two-way binding to an `@Observable` property |
31
+ | `@Environment` | Shared dependencies injected via `.environment()` |
32
+
33
+ ### @Observable ViewModel
34
+
35
+ Use `@Observable` (not `ObservableObject`) — it tracks property-level changes so SwiftUI only re-renders views that read the changed property:
36
+
37
+ ```swift
38
+ @Observable
39
+ final class ItemListViewModel {
40
+ private(set) var items: [Item] = []
41
+ private(set) var isLoading = false
42
+ var searchText = ""
43
+
44
+ private let repository: any ItemRepository
45
+
46
+ init(repository: any ItemRepository = DefaultItemRepository()) {
47
+ self.repository = repository
48
+ }
49
+
50
+ func load() async {
51
+ isLoading = true
52
+ defer { isLoading = false }
53
+ items = (try? await repository.fetchAll()) ?? []
54
+ }
55
+ }
56
+ ```
57
+
58
+ ### View Consuming the ViewModel
59
+
60
+ ```swift
61
+ struct ItemListView: View {
62
+ @State private var viewModel: ItemListViewModel
63
+
64
+ init(viewModel: ItemListViewModel = ItemListViewModel()) {
65
+ _viewModel = State(initialValue: viewModel)
66
+ }
67
+
68
+ var body: some View {
69
+ List(viewModel.items) { item in
70
+ ItemRow(item: item)
71
+ }
72
+ .searchable(text: $viewModel.searchText)
73
+ .overlay { if viewModel.isLoading { ProgressView() } }
74
+ .task { await viewModel.load() }
75
+ }
76
+ }
77
+ ```
78
+
79
+ ### Environment Injection
80
+
81
+ Replace `@EnvironmentObject` with `@Environment`:
82
+
83
+ ```swift
84
+ // Inject
85
+ ContentView()
86
+ .environment(authManager)
87
+
88
+ // Consume
89
+ struct ProfileView: View {
90
+ @Environment(AuthManager.self) private var auth
91
+
92
+ var body: some View {
93
+ Text(auth.currentUser?.name ?? "Guest")
94
+ }
95
+ }
96
+ ```
97
+
98
+ ## View Composition
99
+
100
+ ### Extract Subviews to Limit Invalidation
101
+
102
+ Break views into small, focused structs. When state changes, only the subview reading that state re-renders:
103
+
104
+ ```swift
105
+ struct OrderView: View {
106
+ @State private var viewModel = OrderViewModel()
107
+
108
+ var body: some View {
109
+ VStack {
110
+ OrderHeader(title: viewModel.title)
111
+ OrderItemList(items: viewModel.items)
112
+ OrderTotal(total: viewModel.total)
113
+ }
114
+ }
115
+ }
116
+ ```
117
+
118
+ ### ViewModifier for Reusable Styling
119
+
120
+ ```swift
121
+ struct CardModifier: ViewModifier {
122
+ func body(content: Content) -> some View {
123
+ content
124
+ .padding()
125
+ .background(.regularMaterial)
126
+ .clipShape(RoundedRectangle(cornerRadius: 12))
127
+ }
128
+ }
129
+
130
+ extension View {
131
+ func cardStyle() -> some View {
132
+ modifier(CardModifier())
133
+ }
134
+ }
135
+ ```
136
+
137
+ ## Navigation
138
+
139
+ ### Type-Safe NavigationStack
140
+
141
+ Use `NavigationStack` with `NavigationPath` for programmatic, type-safe routing:
142
+
143
+ ```swift
144
+ @Observable
145
+ final class Router {
146
+ var path = NavigationPath()
147
+
148
+ func navigate(to destination: Destination) {
149
+ path.append(destination)
150
+ }
151
+
152
+ func popToRoot() {
153
+ path = NavigationPath()
154
+ }
155
+ }
156
+
157
+ enum Destination: Hashable {
158
+ case detail(Item.ID)
159
+ case settings
160
+ case profile(User.ID)
161
+ }
162
+
163
+ struct RootView: View {
164
+ @State private var router = Router()
165
+
166
+ var body: some View {
167
+ NavigationStack(path: $router.path) {
168
+ HomeView()
169
+ .navigationDestination(for: Destination.self) { dest in
170
+ switch dest {
171
+ case .detail(let id): ItemDetailView(itemID: id)
172
+ case .settings: SettingsView()
173
+ case .profile(let id): ProfileView(userID: id)
174
+ }
175
+ }
176
+ }
177
+ .environment(router)
178
+ }
179
+ }
180
+ ```
181
+
182
+ ## Performance
183
+
184
+ ### Use Lazy Containers for Large Collections
185
+
186
+ `LazyVStack` and `LazyHStack` create views only when visible:
187
+
188
+ ```swift
189
+ ScrollView {
190
+ LazyVStack(spacing: 8) {
191
+ ForEach(items) { item in
192
+ ItemRow(item: item)
193
+ }
194
+ }
195
+ }
196
+ ```
197
+
198
+ ### Stable Identifiers
199
+
200
+ Always use stable, unique IDs in `ForEach` — avoid using array indices:
201
+
202
+ ```swift
203
+ // Use Identifiable conformance or explicit id
204
+ ForEach(items, id: \.stableID) { item in
205
+ ItemRow(item: item)
206
+ }
207
+ ```
208
+
209
+ ### Avoid Expensive Work in body
210
+
211
+ - Never perform I/O, network calls, or heavy computation inside `body`
212
+ - Use `.task {}` for async work — it cancels automatically when the view disappears
213
+ - Use `.sensoryFeedback()` and `.geometryGroup()` sparingly in scroll views
214
+ - Minimize `.shadow()`, `.blur()`, and `.mask()` in lists — they trigger offscreen rendering
215
+
216
+ ### Equatable Conformance
217
+
218
+ For views with expensive bodies, conform to `Equatable` to skip unnecessary re-renders:
219
+
220
+ ```swift
221
+ struct ExpensiveChartView: View, Equatable {
222
+ let dataPoints: [DataPoint] // DataPoint must conform to Equatable
223
+
224
+ static func == (lhs: Self, rhs: Self) -> Bool {
225
+ lhs.dataPoints == rhs.dataPoints
226
+ }
227
+
228
+ var body: some View {
229
+ // Complex chart rendering
230
+ }
231
+ }
232
+ ```
233
+
234
+ ## Previews
235
+
236
+ Use `#Preview` macro with inline mock data for fast iteration:
237
+
238
+ ```swift
239
+ #Preview("Empty state") {
240
+ ItemListView(viewModel: ItemListViewModel(repository: EmptyMockRepository()))
241
+ }
242
+
243
+ #Preview("Loaded") {
244
+ ItemListView(viewModel: ItemListViewModel(repository: PopulatedMockRepository()))
245
+ }
246
+ ```
247
+
248
+ ## Anti-Patterns to Avoid
249
+
250
+ - Using `ObservableObject` / `@Published` / `@StateObject` / `@EnvironmentObject` in new code — migrate to `@Observable`
251
+ - Putting async work directly in `body` or `init` — use `.task {}` or explicit load methods
252
+ - Creating view models as `@State` inside child views that don't own the data — pass from parent instead
253
+ - Using `AnyView` type erasure — prefer `@ViewBuilder` or `Group` for conditional views
254
+ - Ignoring `Sendable` requirements when passing data to/from actors
255
+
256
+ ## References
257
+
258
+ See skill: `swift-actor-persistence` for actor-based persistence patterns.
259
+ See skill: `swift-protocol-di-testing` for protocol-based DI and testing with Swift Testing.
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Affaan Mustafa
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.