claudecode-omc 5.5.2 → 5.6.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 (433) hide show
  1. package/README.md +63 -0
  2. package/bundled/manifest.json +3 -2
  3. package/bundled/upstream/ecc/.omc-source/bundle.json +23 -0
  4. package/bundled/upstream/ecc/.omc-source/last-plan-apply.json +439 -0
  5. package/bundled/upstream/ecc/.omc-source/manifests/.claude-plugin/marketplace.json +47 -0
  6. package/bundled/upstream/ecc/agents/a11y-architect.md +141 -0
  7. package/bundled/upstream/ecc/agents/architect.md +211 -0
  8. package/bundled/upstream/ecc/agents/build-error-resolver.md +114 -0
  9. package/bundled/upstream/ecc/agents/chief-of-staff.md +151 -0
  10. package/bundled/upstream/ecc/agents/code-architect.md +71 -0
  11. package/bundled/upstream/ecc/agents/code-explorer.md +69 -0
  12. package/bundled/upstream/ecc/agents/code-reviewer.md +237 -0
  13. package/bundled/upstream/ecc/agents/code-simplifier.md +47 -0
  14. package/bundled/upstream/ecc/agents/comment-analyzer.md +45 -0
  15. package/bundled/upstream/ecc/agents/conversation-analyzer.md +52 -0
  16. package/bundled/upstream/ecc/agents/cpp-build-resolver.md +90 -0
  17. package/bundled/upstream/ecc/agents/cpp-reviewer.md +72 -0
  18. package/bundled/upstream/ecc/agents/csharp-reviewer.md +101 -0
  19. package/bundled/upstream/ecc/agents/dart-build-resolver.md +201 -0
  20. package/bundled/upstream/ecc/agents/database-reviewer.md +91 -0
  21. package/bundled/upstream/ecc/agents/doc-updater.md +107 -0
  22. package/bundled/upstream/ecc/agents/docs-lookup.md +68 -0
  23. package/bundled/upstream/ecc/agents/e2e-runner.md +107 -0
  24. package/bundled/upstream/ecc/agents/flutter-reviewer.md +243 -0
  25. package/bundled/upstream/ecc/agents/gan-evaluator.md +209 -0
  26. package/bundled/upstream/ecc/agents/gan-generator.md +131 -0
  27. package/bundled/upstream/ecc/agents/gan-planner.md +99 -0
  28. package/bundled/upstream/ecc/agents/go-build-resolver.md +94 -0
  29. package/bundled/upstream/ecc/agents/go-reviewer.md +76 -0
  30. package/bundled/upstream/ecc/agents/harness-optimizer.md +35 -0
  31. package/bundled/upstream/ecc/agents/healthcare-reviewer.md +83 -0
  32. package/bundled/upstream/ecc/agents/java-build-resolver.md +153 -0
  33. package/bundled/upstream/ecc/agents/java-reviewer.md +92 -0
  34. package/bundled/upstream/ecc/agents/kotlin-build-resolver.md +118 -0
  35. package/bundled/upstream/ecc/agents/kotlin-reviewer.md +159 -0
  36. package/bundled/upstream/ecc/agents/loop-operator.md +36 -0
  37. package/bundled/upstream/ecc/agents/opensource-forker.md +198 -0
  38. package/bundled/upstream/ecc/agents/opensource-packager.md +249 -0
  39. package/bundled/upstream/ecc/agents/opensource-sanitizer.md +188 -0
  40. package/bundled/upstream/ecc/agents/performance-optimizer.md +446 -0
  41. package/bundled/upstream/ecc/agents/planner.md +212 -0
  42. package/bundled/upstream/ecc/agents/pr-test-analyzer.md +45 -0
  43. package/bundled/upstream/ecc/agents/python-reviewer.md +98 -0
  44. package/bundled/upstream/ecc/agents/pytorch-build-resolver.md +120 -0
  45. package/bundled/upstream/ecc/agents/refactor-cleaner.md +85 -0
  46. package/bundled/upstream/ecc/agents/rust-build-resolver.md +148 -0
  47. package/bundled/upstream/ecc/agents/rust-reviewer.md +94 -0
  48. package/bundled/upstream/ecc/agents/security-reviewer.md +108 -0
  49. package/bundled/upstream/ecc/agents/seo-specialist.md +62 -0
  50. package/bundled/upstream/ecc/agents/silent-failure-hunter.md +50 -0
  51. package/bundled/upstream/ecc/agents/tdd-guide.md +91 -0
  52. package/bundled/upstream/ecc/agents/type-design-analyzer.md +41 -0
  53. package/bundled/upstream/ecc/agents/typescript-reviewer.md +112 -0
  54. package/bundled/upstream/ecc/commands/agent-sort.md +23 -0
  55. package/bundled/upstream/ecc/commands/aside.md +164 -0
  56. package/bundled/upstream/ecc/commands/build-fix.md +62 -0
  57. package/bundled/upstream/ecc/commands/checkpoint.md +74 -0
  58. package/bundled/upstream/ecc/commands/claw.md +23 -0
  59. package/bundled/upstream/ecc/commands/code-review.md +289 -0
  60. package/bundled/upstream/ecc/commands/context-budget.md +23 -0
  61. package/bundled/upstream/ecc/commands/cpp-build.md +173 -0
  62. package/bundled/upstream/ecc/commands/cpp-review.md +132 -0
  63. package/bundled/upstream/ecc/commands/cpp-test.md +251 -0
  64. package/bundled/upstream/ecc/commands/devfleet.md +23 -0
  65. package/bundled/upstream/ecc/commands/docs.md +23 -0
  66. package/bundled/upstream/ecc/commands/e2e.md +268 -0
  67. package/bundled/upstream/ecc/commands/eval.md +23 -0
  68. package/bundled/upstream/ecc/commands/evolve.md +178 -0
  69. package/bundled/upstream/ecc/commands/feature-dev.md +49 -0
  70. package/bundled/upstream/ecc/commands/flutter-build.md +164 -0
  71. package/bundled/upstream/ecc/commands/flutter-review.md +116 -0
  72. package/bundled/upstream/ecc/commands/flutter-test.md +144 -0
  73. package/bundled/upstream/ecc/commands/gan-build.md +99 -0
  74. package/bundled/upstream/ecc/commands/gan-design.md +35 -0
  75. package/bundled/upstream/ecc/commands/go-build.md +183 -0
  76. package/bundled/upstream/ecc/commands/go-review.md +148 -0
  77. package/bundled/upstream/ecc/commands/go-test.md +268 -0
  78. package/bundled/upstream/ecc/commands/gradle-build.md +70 -0
  79. package/bundled/upstream/ecc/commands/harness-audit.md +73 -0
  80. package/bundled/upstream/ecc/commands/hookify-configure.md +14 -0
  81. package/bundled/upstream/ecc/commands/hookify-help.md +46 -0
  82. package/bundled/upstream/ecc/commands/hookify-list.md +21 -0
  83. package/bundled/upstream/ecc/commands/hookify.md +50 -0
  84. package/bundled/upstream/ecc/commands/instinct-export.md +66 -0
  85. package/bundled/upstream/ecc/commands/instinct-import.md +114 -0
  86. package/bundled/upstream/ecc/commands/instinct-status.md +59 -0
  87. package/bundled/upstream/ecc/commands/jira.md +106 -0
  88. package/bundled/upstream/ecc/commands/kotlin-build.md +174 -0
  89. package/bundled/upstream/ecc/commands/kotlin-review.md +140 -0
  90. package/bundled/upstream/ecc/commands/kotlin-test.md +312 -0
  91. package/bundled/upstream/ecc/commands/learn-eval.md +116 -0
  92. package/bundled/upstream/ecc/commands/learn.md +70 -0
  93. package/bundled/upstream/ecc/commands/loop-start.md +32 -0
  94. package/bundled/upstream/ecc/commands/loop-status.md +24 -0
  95. package/bundled/upstream/ecc/commands/model-route.md +26 -0
  96. package/bundled/upstream/ecc/commands/multi-backend.md +158 -0
  97. package/bundled/upstream/ecc/commands/multi-execute.md +315 -0
  98. package/bundled/upstream/ecc/commands/multi-frontend.md +158 -0
  99. package/bundled/upstream/ecc/commands/multi-plan.md +268 -0
  100. package/bundled/upstream/ecc/commands/multi-workflow.md +191 -0
  101. package/bundled/upstream/ecc/commands/orchestrate.md +135 -0
  102. package/bundled/upstream/ecc/commands/plan.md +117 -0
  103. package/bundled/upstream/ecc/commands/pm2.md +272 -0
  104. package/bundled/upstream/ecc/commands/projects.md +39 -0
  105. package/bundled/upstream/ecc/commands/promote.md +41 -0
  106. package/bundled/upstream/ecc/commands/prompt-optimize.md +23 -0
  107. package/bundled/upstream/ecc/commands/prp-commit.md +112 -0
  108. package/bundled/upstream/ecc/commands/prp-implement.md +385 -0
  109. package/bundled/upstream/ecc/commands/prp-plan.md +502 -0
  110. package/bundled/upstream/ecc/commands/prp-pr.md +184 -0
  111. package/bundled/upstream/ecc/commands/prp-prd.md +447 -0
  112. package/bundled/upstream/ecc/commands/prune.md +31 -0
  113. package/bundled/upstream/ecc/commands/python-review.md +297 -0
  114. package/bundled/upstream/ecc/commands/quality-gate.md +29 -0
  115. package/bundled/upstream/ecc/commands/refactor-clean.md +80 -0
  116. package/bundled/upstream/ecc/commands/resume-session.md +156 -0
  117. package/bundled/upstream/ecc/commands/review-pr.md +37 -0
  118. package/bundled/upstream/ecc/commands/rules-distill.md +20 -0
  119. package/bundled/upstream/ecc/commands/rust-build.md +187 -0
  120. package/bundled/upstream/ecc/commands/rust-review.md +142 -0
  121. package/bundled/upstream/ecc/commands/rust-test.md +308 -0
  122. package/bundled/upstream/ecc/commands/santa-loop.md +175 -0
  123. package/bundled/upstream/ecc/commands/save-session.md +275 -0
  124. package/bundled/upstream/ecc/commands/sessions.md +339 -0
  125. package/bundled/upstream/ecc/commands/setup-pm.md +80 -0
  126. package/bundled/upstream/ecc/commands/skill-create.md +174 -0
  127. package/bundled/upstream/ecc/commands/skill-health.md +54 -0
  128. package/bundled/upstream/ecc/commands/tdd.md +231 -0
  129. package/bundled/upstream/ecc/commands/test-coverage.md +69 -0
  130. package/bundled/upstream/ecc/commands/update-codemaps.md +72 -0
  131. package/bundled/upstream/ecc/commands/update-docs.md +84 -0
  132. package/bundled/upstream/ecc/commands/verify.md +23 -0
  133. package/bundled/upstream/ecc/hooks/README.md +237 -0
  134. package/bundled/upstream/ecc/hooks/hooks.json +330 -0
  135. package/bundled/upstream/ecc/skills/accessibility/SKILL.md +146 -0
  136. package/bundled/upstream/ecc/skills/agent-eval/SKILL.md +145 -0
  137. package/bundled/upstream/ecc/skills/agent-harness-construction/SKILL.md +73 -0
  138. package/bundled/upstream/ecc/skills/agent-introspection-debugging/SKILL.md +153 -0
  139. package/bundled/upstream/ecc/skills/agent-payment-x402/SKILL.md +178 -0
  140. package/bundled/upstream/ecc/skills/agent-sort/SKILL.md +215 -0
  141. package/bundled/upstream/ecc/skills/agentic-engineering/SKILL.md +63 -0
  142. package/bundled/upstream/ecc/skills/ai-first-engineering/SKILL.md +51 -0
  143. package/bundled/upstream/ecc/skills/ai-regression-testing/SKILL.md +385 -0
  144. package/bundled/upstream/ecc/skills/android-clean-architecture/SKILL.md +339 -0
  145. package/bundled/upstream/ecc/skills/api-connector-builder/SKILL.md +120 -0
  146. package/bundled/upstream/ecc/skills/api-design/SKILL.md +523 -0
  147. package/bundled/upstream/ecc/skills/architecture-decision-records/SKILL.md +179 -0
  148. package/bundled/upstream/ecc/skills/article-writing/SKILL.md +79 -0
  149. package/bundled/upstream/ecc/skills/automation-audit-ops/SKILL.md +142 -0
  150. package/bundled/upstream/ecc/skills/autonomous-agent-harness/SKILL.md +267 -0
  151. package/bundled/upstream/ecc/skills/autonomous-loops/SKILL.md +610 -0
  152. package/bundled/upstream/ecc/skills/backend-patterns/SKILL.md +598 -0
  153. package/bundled/upstream/ecc/skills/benchmark/SKILL.md +93 -0
  154. package/bundled/upstream/ecc/skills/blueprint/SKILL.md +105 -0
  155. package/bundled/upstream/ecc/skills/brand-voice/SKILL.md +97 -0
  156. package/bundled/upstream/ecc/skills/brand-voice/references/voice-profile-schema.md +55 -0
  157. package/bundled/upstream/ecc/skills/browser-qa/SKILL.md +87 -0
  158. package/bundled/upstream/ecc/skills/bun-runtime/SKILL.md +84 -0
  159. package/bundled/upstream/ecc/skills/canary-watch/SKILL.md +99 -0
  160. package/bundled/upstream/ecc/skills/carrier-relationship-management/SKILL.md +212 -0
  161. package/bundled/upstream/ecc/skills/ck/SKILL.md +147 -0
  162. package/bundled/upstream/ecc/skills/ck/commands/forget.mjs +44 -0
  163. package/bundled/upstream/ecc/skills/ck/commands/info.mjs +24 -0
  164. package/bundled/upstream/ecc/skills/ck/commands/init.mjs +143 -0
  165. package/bundled/upstream/ecc/skills/ck/commands/list.mjs +40 -0
  166. package/bundled/upstream/ecc/skills/ck/commands/migrate.mjs +202 -0
  167. package/bundled/upstream/ecc/skills/ck/commands/resume.mjs +36 -0
  168. package/bundled/upstream/ecc/skills/ck/commands/save.mjs +210 -0
  169. package/bundled/upstream/ecc/skills/ck/commands/shared.mjs +387 -0
  170. package/bundled/upstream/ecc/skills/ck/hooks/session-start.mjs +224 -0
  171. package/bundled/upstream/ecc/skills/claude-api/SKILL.md +337 -0
  172. package/bundled/upstream/ecc/skills/claude-devfleet/SKILL.md +103 -0
  173. package/bundled/upstream/ecc/skills/click-path-audit/SKILL.md +244 -0
  174. package/bundled/upstream/ecc/skills/clickhouse-io/SKILL.md +439 -0
  175. package/bundled/upstream/ecc/skills/code-tour/SKILL.md +236 -0
  176. package/bundled/upstream/ecc/skills/codebase-onboarding/SKILL.md +233 -0
  177. package/bundled/upstream/ecc/skills/coding-standards/SKILL.md +549 -0
  178. package/bundled/upstream/ecc/skills/compose-multiplatform-patterns/SKILL.md +299 -0
  179. package/bundled/upstream/ecc/skills/configure-ecc/SKILL.md +367 -0
  180. package/bundled/upstream/ecc/skills/connections-optimizer/SKILL.md +189 -0
  181. package/bundled/upstream/ecc/skills/content-engine/SKILL.md +131 -0
  182. package/bundled/upstream/ecc/skills/content-hash-cache-pattern/SKILL.md +161 -0
  183. package/bundled/upstream/ecc/skills/context-budget/SKILL.md +135 -0
  184. package/bundled/upstream/ecc/skills/continuous-agent-loop/SKILL.md +45 -0
  185. package/bundled/upstream/ecc/skills/continuous-learning/SKILL.md +123 -0
  186. package/bundled/upstream/ecc/skills/continuous-learning/config.json +18 -0
  187. package/bundled/upstream/ecc/skills/continuous-learning/evaluate-session.sh +69 -0
  188. package/bundled/upstream/ecc/skills/continuous-learning-v2/SKILL.md +346 -0
  189. package/bundled/upstream/ecc/skills/continuous-learning-v2/agents/observer-loop.sh +282 -0
  190. package/bundled/upstream/ecc/skills/continuous-learning-v2/agents/observer.md +198 -0
  191. package/bundled/upstream/ecc/skills/continuous-learning-v2/agents/session-guardian.sh +150 -0
  192. package/bundled/upstream/ecc/skills/continuous-learning-v2/agents/start-observer.sh +244 -0
  193. package/bundled/upstream/ecc/skills/continuous-learning-v2/config.json +8 -0
  194. package/bundled/upstream/ecc/skills/continuous-learning-v2/hooks/observe.sh +460 -0
  195. package/bundled/upstream/ecc/skills/continuous-learning-v2/scripts/detect-project.sh +243 -0
  196. package/bundled/upstream/ecc/skills/continuous-learning-v2/scripts/instinct-cli.py +1426 -0
  197. package/bundled/upstream/ecc/skills/continuous-learning-v2/scripts/test_parse_instinct.py +984 -0
  198. package/bundled/upstream/ecc/skills/cost-aware-llm-pipeline/SKILL.md +183 -0
  199. package/bundled/upstream/ecc/skills/council/SKILL.md +203 -0
  200. package/bundled/upstream/ecc/skills/cpp-coding-standards/SKILL.md +723 -0
  201. package/bundled/upstream/ecc/skills/cpp-testing/SKILL.md +324 -0
  202. package/bundled/upstream/ecc/skills/crosspost/SKILL.md +111 -0
  203. package/bundled/upstream/ecc/skills/csharp-testing/SKILL.md +321 -0
  204. package/bundled/upstream/ecc/skills/customer-billing-ops/SKILL.md +140 -0
  205. package/bundled/upstream/ecc/skills/customs-trade-compliance/SKILL.md +263 -0
  206. package/bundled/upstream/ecc/skills/dart-flutter-patterns/SKILL.md +563 -0
  207. package/bundled/upstream/ecc/skills/dashboard-builder/SKILL.md +108 -0
  208. package/bundled/upstream/ecc/skills/data-scraper-agent/SKILL.md +764 -0
  209. package/bundled/upstream/ecc/skills/database-migrations/SKILL.md +429 -0
  210. package/bundled/upstream/ecc/skills/deep-research/SKILL.md +155 -0
  211. package/bundled/upstream/ecc/skills/defi-amm-security/SKILL.md +160 -0
  212. package/bundled/upstream/ecc/skills/deployment-patterns/SKILL.md +427 -0
  213. package/bundled/upstream/ecc/skills/design-system/SKILL.md +82 -0
  214. package/bundled/upstream/ecc/skills/django-patterns/SKILL.md +734 -0
  215. package/bundled/upstream/ecc/skills/django-security/SKILL.md +593 -0
  216. package/bundled/upstream/ecc/skills/django-tdd/SKILL.md +729 -0
  217. package/bundled/upstream/ecc/skills/django-verification/SKILL.md +469 -0
  218. package/bundled/upstream/ecc/skills/dmux-workflows/SKILL.md +191 -0
  219. package/bundled/upstream/ecc/skills/docker-patterns/SKILL.md +364 -0
  220. package/bundled/upstream/ecc/skills/documentation-lookup/SKILL.md +90 -0
  221. package/bundled/upstream/ecc/skills/dotnet-patterns/SKILL.md +321 -0
  222. package/bundled/upstream/ecc/skills/e2e-testing/SKILL.md +326 -0
  223. package/bundled/upstream/ecc/skills/ecc-tools-cost-audit/SKILL.md +160 -0
  224. package/bundled/upstream/ecc/skills/email-ops/SKILL.md +121 -0
  225. package/bundled/upstream/ecc/skills/energy-procurement/SKILL.md +228 -0
  226. package/bundled/upstream/ecc/skills/enterprise-agent-ops/SKILL.md +50 -0
  227. package/bundled/upstream/ecc/skills/eval-harness/SKILL.md +270 -0
  228. package/bundled/upstream/ecc/skills/evm-token-decimals/SKILL.md +130 -0
  229. package/bundled/upstream/ecc/skills/exa-search/SKILL.md +103 -0
  230. package/bundled/upstream/ecc/skills/fal-ai-media/SKILL.md +284 -0
  231. package/bundled/upstream/ecc/skills/finance-billing-ops/SKILL.md +127 -0
  232. package/bundled/upstream/ecc/skills/flutter-dart-code-review/SKILL.md +435 -0
  233. package/bundled/upstream/ecc/skills/foundation-models-on-device/SKILL.md +243 -0
  234. package/bundled/upstream/ecc/skills/frontend-design/SKILL.md +145 -0
  235. package/bundled/upstream/ecc/skills/frontend-patterns/SKILL.md +642 -0
  236. package/bundled/upstream/ecc/skills/frontend-slides/SKILL.md +184 -0
  237. package/bundled/upstream/ecc/skills/frontend-slides/STYLE_PRESETS.md +330 -0
  238. package/bundled/upstream/ecc/skills/gan-style-harness/SKILL.md +278 -0
  239. package/bundled/upstream/ecc/skills/gateguard/SKILL.md +121 -0
  240. package/bundled/upstream/ecc/skills/git-workflow/SKILL.md +715 -0
  241. package/bundled/upstream/ecc/skills/github-ops/SKILL.md +144 -0
  242. package/bundled/upstream/ecc/skills/golang-patterns/SKILL.md +674 -0
  243. package/bundled/upstream/ecc/skills/golang-testing/SKILL.md +720 -0
  244. package/bundled/upstream/ecc/skills/google-workspace-ops/SKILL.md +95 -0
  245. package/bundled/upstream/ecc/skills/healthcare-cdss-patterns/SKILL.md +245 -0
  246. package/bundled/upstream/ecc/skills/healthcare-emr-patterns/SKILL.md +159 -0
  247. package/bundled/upstream/ecc/skills/healthcare-eval-harness/SKILL.md +207 -0
  248. package/bundled/upstream/ecc/skills/healthcare-phi-compliance/SKILL.md +145 -0
  249. package/bundled/upstream/ecc/skills/hexagonal-architecture/SKILL.md +276 -0
  250. package/bundled/upstream/ecc/skills/hipaa-compliance/SKILL.md +78 -0
  251. package/bundled/upstream/ecc/skills/hookify-rules/SKILL.md +128 -0
  252. package/bundled/upstream/ecc/skills/inventory-demand-planning/SKILL.md +247 -0
  253. package/bundled/upstream/ecc/skills/investor-materials/SKILL.md +96 -0
  254. package/bundled/upstream/ecc/skills/investor-outreach/SKILL.md +91 -0
  255. package/bundled/upstream/ecc/skills/iterative-retrieval/SKILL.md +211 -0
  256. package/bundled/upstream/ecc/skills/java-coding-standards/SKILL.md +147 -0
  257. package/bundled/upstream/ecc/skills/jira-integration/SKILL.md +293 -0
  258. package/bundled/upstream/ecc/skills/jpa-patterns/SKILL.md +151 -0
  259. package/bundled/upstream/ecc/skills/knowledge-ops/SKILL.md +154 -0
  260. package/bundled/upstream/ecc/skills/kotlin-coroutines-flows/SKILL.md +284 -0
  261. package/bundled/upstream/ecc/skills/kotlin-exposed-patterns/SKILL.md +719 -0
  262. package/bundled/upstream/ecc/skills/kotlin-ktor-patterns/SKILL.md +689 -0
  263. package/bundled/upstream/ecc/skills/kotlin-patterns/SKILL.md +711 -0
  264. package/bundled/upstream/ecc/skills/kotlin-testing/SKILL.md +824 -0
  265. package/bundled/upstream/ecc/skills/laravel-patterns/SKILL.md +415 -0
  266. package/bundled/upstream/ecc/skills/laravel-plugin-discovery/SKILL.md +229 -0
  267. package/bundled/upstream/ecc/skills/laravel-security/SKILL.md +285 -0
  268. package/bundled/upstream/ecc/skills/laravel-tdd/SKILL.md +283 -0
  269. package/bundled/upstream/ecc/skills/laravel-verification/SKILL.md +179 -0
  270. package/bundled/upstream/ecc/skills/lead-intelligence/SKILL.md +321 -0
  271. package/bundled/upstream/ecc/skills/lead-intelligence/agents/enrichment-agent.md +85 -0
  272. package/bundled/upstream/ecc/skills/lead-intelligence/agents/mutual-mapper.md +75 -0
  273. package/bundled/upstream/ecc/skills/lead-intelligence/agents/outreach-drafter.md +98 -0
  274. package/bundled/upstream/ecc/skills/lead-intelligence/agents/signal-scorer.md +60 -0
  275. package/bundled/upstream/ecc/skills/liquid-glass-design/SKILL.md +279 -0
  276. package/bundled/upstream/ecc/skills/llm-trading-agent-security/SKILL.md +146 -0
  277. package/bundled/upstream/ecc/skills/logistics-exception-management/SKILL.md +222 -0
  278. package/bundled/upstream/ecc/skills/manim-video/SKILL.md +89 -0
  279. package/bundled/upstream/ecc/skills/manim-video/assets/network_graph_scene.py +52 -0
  280. package/bundled/upstream/ecc/skills/market-research/SKILL.md +75 -0
  281. package/bundled/upstream/ecc/skills/mcp-server-patterns/SKILL.md +69 -0
  282. package/bundled/upstream/ecc/skills/messages-ops/SKILL.md +104 -0
  283. package/bundled/upstream/ecc/skills/nanoclaw-repl/SKILL.md +33 -0
  284. package/bundled/upstream/ecc/skills/nestjs-patterns/SKILL.md +230 -0
  285. package/bundled/upstream/ecc/skills/nextjs-turbopack/SKILL.md +44 -0
  286. package/bundled/upstream/ecc/skills/nodejs-keccak256/SKILL.md +102 -0
  287. package/bundled/upstream/ecc/skills/nutrient-document-processing/SKILL.md +167 -0
  288. package/bundled/upstream/ecc/skills/nuxt4-patterns/SKILL.md +100 -0
  289. package/bundled/upstream/ecc/skills/openclaw-persona-forge/SKILL.md +296 -0
  290. package/bundled/upstream/ecc/skills/openclaw-persona-forge/gacha.py +224 -0
  291. package/bundled/upstream/ecc/skills/openclaw-persona-forge/gacha.sh +5 -0
  292. package/bundled/upstream/ecc/skills/openclaw-persona-forge/references/avatar-style.md +124 -0
  293. package/bundled/upstream/ecc/skills/openclaw-persona-forge/references/boundary-rules.md +53 -0
  294. package/bundled/upstream/ecc/skills/openclaw-persona-forge/references/error-handling.md +53 -0
  295. package/bundled/upstream/ecc/skills/openclaw-persona-forge/references/identity-tension.md +48 -0
  296. package/bundled/upstream/ecc/skills/openclaw-persona-forge/references/naming-system.md +39 -0
  297. package/bundled/upstream/ecc/skills/openclaw-persona-forge/references/output-template.md +166 -0
  298. package/bundled/upstream/ecc/skills/opensource-pipeline/SKILL.md +255 -0
  299. package/bundled/upstream/ecc/skills/perl-patterns/SKILL.md +504 -0
  300. package/bundled/upstream/ecc/skills/perl-security/SKILL.md +503 -0
  301. package/bundled/upstream/ecc/skills/perl-testing/SKILL.md +475 -0
  302. package/bundled/upstream/ecc/skills/plankton-code-quality/SKILL.md +236 -0
  303. package/bundled/upstream/ecc/skills/postgres-patterns/SKILL.md +147 -0
  304. package/bundled/upstream/ecc/skills/product-capability/SKILL.md +141 -0
  305. package/bundled/upstream/ecc/skills/product-lens/SKILL.md +92 -0
  306. package/bundled/upstream/ecc/skills/production-scheduling/SKILL.md +238 -0
  307. package/bundled/upstream/ecc/skills/project-flow-ops/SKILL.md +111 -0
  308. package/bundled/upstream/ecc/skills/prompt-optimizer/SKILL.md +397 -0
  309. package/bundled/upstream/ecc/skills/python-patterns/SKILL.md +750 -0
  310. package/bundled/upstream/ecc/skills/python-testing/SKILL.md +816 -0
  311. package/bundled/upstream/ecc/skills/pytorch-patterns/SKILL.md +396 -0
  312. package/bundled/upstream/ecc/skills/quality-nonconformance/SKILL.md +260 -0
  313. package/bundled/upstream/ecc/skills/ralphinho-rfc-pipeline/SKILL.md +67 -0
  314. package/bundled/upstream/ecc/skills/regex-vs-llm-structured-text/SKILL.md +220 -0
  315. package/bundled/upstream/ecc/skills/remotion-video-creation/SKILL.md +43 -0
  316. package/bundled/upstream/ecc/skills/remotion-video-creation/rules/3d.md +86 -0
  317. package/bundled/upstream/ecc/skills/remotion-video-creation/rules/animations.md +29 -0
  318. package/bundled/upstream/ecc/skills/remotion-video-creation/rules/assets/charts-bar-chart.tsx +173 -0
  319. package/bundled/upstream/ecc/skills/remotion-video-creation/rules/assets/text-animations-typewriter.tsx +100 -0
  320. package/bundled/upstream/ecc/skills/remotion-video-creation/rules/assets/text-animations-word-highlight.tsx +108 -0
  321. package/bundled/upstream/ecc/skills/remotion-video-creation/rules/assets.md +78 -0
  322. package/bundled/upstream/ecc/skills/remotion-video-creation/rules/audio.md +172 -0
  323. package/bundled/upstream/ecc/skills/remotion-video-creation/rules/calculate-metadata.md +104 -0
  324. package/bundled/upstream/ecc/skills/remotion-video-creation/rules/can-decode.md +75 -0
  325. package/bundled/upstream/ecc/skills/remotion-video-creation/rules/charts.md +58 -0
  326. package/bundled/upstream/ecc/skills/remotion-video-creation/rules/compositions.md +146 -0
  327. package/bundled/upstream/ecc/skills/remotion-video-creation/rules/display-captions.md +126 -0
  328. package/bundled/upstream/ecc/skills/remotion-video-creation/rules/extract-frames.md +229 -0
  329. package/bundled/upstream/ecc/skills/remotion-video-creation/rules/fonts.md +152 -0
  330. package/bundled/upstream/ecc/skills/remotion-video-creation/rules/get-audio-duration.md +58 -0
  331. package/bundled/upstream/ecc/skills/remotion-video-creation/rules/get-video-dimensions.md +68 -0
  332. package/bundled/upstream/ecc/skills/remotion-video-creation/rules/get-video-duration.md +58 -0
  333. package/bundled/upstream/ecc/skills/remotion-video-creation/rules/gifs.md +138 -0
  334. package/bundled/upstream/ecc/skills/remotion-video-creation/rules/images.md +130 -0
  335. package/bundled/upstream/ecc/skills/remotion-video-creation/rules/import-srt-captions.md +67 -0
  336. package/bundled/upstream/ecc/skills/remotion-video-creation/rules/lottie.md +67 -0
  337. package/bundled/upstream/ecc/skills/remotion-video-creation/rules/measuring-dom-nodes.md +34 -0
  338. package/bundled/upstream/ecc/skills/remotion-video-creation/rules/measuring-text.md +143 -0
  339. package/bundled/upstream/ecc/skills/remotion-video-creation/rules/sequencing.md +106 -0
  340. package/bundled/upstream/ecc/skills/remotion-video-creation/rules/tailwind.md +11 -0
  341. package/bundled/upstream/ecc/skills/remotion-video-creation/rules/text-animations.md +20 -0
  342. package/bundled/upstream/ecc/skills/remotion-video-creation/rules/timing.md +179 -0
  343. package/bundled/upstream/ecc/skills/remotion-video-creation/rules/transcribe-captions.md +19 -0
  344. package/bundled/upstream/ecc/skills/remotion-video-creation/rules/transitions.md +122 -0
  345. package/bundled/upstream/ecc/skills/remotion-video-creation/rules/trimming.md +52 -0
  346. package/bundled/upstream/ecc/skills/remotion-video-creation/rules/videos.md +171 -0
  347. package/bundled/upstream/ecc/skills/repo-scan/SKILL.md +78 -0
  348. package/bundled/upstream/ecc/skills/research-ops/SKILL.md +112 -0
  349. package/bundled/upstream/ecc/skills/returns-reverse-logistics/SKILL.md +240 -0
  350. package/bundled/upstream/ecc/skills/rules-distill/SKILL.md +264 -0
  351. package/bundled/upstream/ecc/skills/rules-distill/scripts/scan-rules.sh +58 -0
  352. package/bundled/upstream/ecc/skills/rules-distill/scripts/scan-skills.sh +129 -0
  353. package/bundled/upstream/ecc/skills/rust-patterns/SKILL.md +499 -0
  354. package/bundled/upstream/ecc/skills/rust-testing/SKILL.md +500 -0
  355. package/bundled/upstream/ecc/skills/safety-guard/SKILL.md +75 -0
  356. package/bundled/upstream/ecc/skills/santa-method/SKILL.md +306 -0
  357. package/bundled/upstream/ecc/skills/search-first/SKILL.md +161 -0
  358. package/bundled/upstream/ecc/skills/security-bounty-hunter/SKILL.md +99 -0
  359. package/bundled/upstream/ecc/skills/security-review/SKILL.md +495 -0
  360. package/bundled/upstream/ecc/skills/security-review/cloud-infrastructure-security.md +361 -0
  361. package/bundled/upstream/ecc/skills/security-scan/SKILL.md +165 -0
  362. package/bundled/upstream/ecc/skills/seo/SKILL.md +154 -0
  363. package/bundled/upstream/ecc/skills/skill-comply/SKILL.md +58 -0
  364. package/bundled/upstream/ecc/skills/skill-comply/fixtures/compliant_trace.jsonl +5 -0
  365. package/bundled/upstream/ecc/skills/skill-comply/fixtures/noncompliant_trace.jsonl +3 -0
  366. package/bundled/upstream/ecc/skills/skill-comply/fixtures/tdd_spec.yaml +44 -0
  367. package/bundled/upstream/ecc/skills/skill-comply/prompts/classifier.md +24 -0
  368. package/bundled/upstream/ecc/skills/skill-comply/prompts/scenario_generator.md +62 -0
  369. package/bundled/upstream/ecc/skills/skill-comply/prompts/spec_generator.md +42 -0
  370. package/bundled/upstream/ecc/skills/skill-comply/pyproject.toml +15 -0
  371. package/bundled/upstream/ecc/skills/skill-comply/scripts/__init__.py +0 -0
  372. package/bundled/upstream/ecc/skills/skill-comply/scripts/classifier.py +85 -0
  373. package/bundled/upstream/ecc/skills/skill-comply/scripts/grader.py +124 -0
  374. package/bundled/upstream/ecc/skills/skill-comply/scripts/parser.py +107 -0
  375. package/bundled/upstream/ecc/skills/skill-comply/scripts/report.py +170 -0
  376. package/bundled/upstream/ecc/skills/skill-comply/scripts/run.py +127 -0
  377. package/bundled/upstream/ecc/skills/skill-comply/scripts/runner.py +161 -0
  378. package/bundled/upstream/ecc/skills/skill-comply/scripts/scenario_generator.py +70 -0
  379. package/bundled/upstream/ecc/skills/skill-comply/scripts/spec_generator.py +72 -0
  380. package/bundled/upstream/ecc/skills/skill-comply/scripts/utils.py +13 -0
  381. package/bundled/upstream/ecc/skills/skill-comply/tests/test_grader.py +197 -0
  382. package/bundled/upstream/ecc/skills/skill-comply/tests/test_parser.py +90 -0
  383. package/bundled/upstream/ecc/skills/skill-stocktake/SKILL.md +193 -0
  384. package/bundled/upstream/ecc/skills/skill-stocktake/scripts/quick-diff.sh +87 -0
  385. package/bundled/upstream/ecc/skills/skill-stocktake/scripts/save-results.sh +56 -0
  386. package/bundled/upstream/ecc/skills/skill-stocktake/scripts/scan.sh +170 -0
  387. package/bundled/upstream/ecc/skills/social-graph-ranker/SKILL.md +154 -0
  388. package/bundled/upstream/ecc/skills/springboot-patterns/SKILL.md +314 -0
  389. package/bundled/upstream/ecc/skills/springboot-security/SKILL.md +272 -0
  390. package/bundled/upstream/ecc/skills/springboot-tdd/SKILL.md +158 -0
  391. package/bundled/upstream/ecc/skills/springboot-verification/SKILL.md +231 -0
  392. package/bundled/upstream/ecc/skills/strategic-compact/SKILL.md +131 -0
  393. package/bundled/upstream/ecc/skills/strategic-compact/suggest-compact.sh +54 -0
  394. package/bundled/upstream/ecc/skills/swift-actor-persistence/SKILL.md +143 -0
  395. package/bundled/upstream/ecc/skills/swift-concurrency-6-2/SKILL.md +216 -0
  396. package/bundled/upstream/ecc/skills/swift-protocol-di-testing/SKILL.md +190 -0
  397. package/bundled/upstream/ecc/skills/swiftui-patterns/SKILL.md +259 -0
  398. package/bundled/upstream/ecc/skills/tdd-workflow/SKILL.md +463 -0
  399. package/bundled/upstream/ecc/skills/team-builder/SKILL.md +168 -0
  400. package/bundled/upstream/ecc/skills/terminal-ops/SKILL.md +109 -0
  401. package/bundled/upstream/ecc/skills/token-budget-advisor/SKILL.md +133 -0
  402. package/bundled/upstream/ecc/skills/ui-demo/SKILL.md +465 -0
  403. package/bundled/upstream/ecc/skills/unified-notifications-ops/SKILL.md +187 -0
  404. package/bundled/upstream/ecc/skills/verification-loop/SKILL.md +126 -0
  405. package/bundled/upstream/ecc/skills/video-editing/SKILL.md +310 -0
  406. package/bundled/upstream/ecc/skills/videodb/SKILL.md +374 -0
  407. package/bundled/upstream/ecc/skills/videodb/reference/api-reference.md +550 -0
  408. package/bundled/upstream/ecc/skills/videodb/reference/capture-reference.md +407 -0
  409. package/bundled/upstream/ecc/skills/videodb/reference/capture.md +101 -0
  410. package/bundled/upstream/ecc/skills/videodb/reference/editor.md +443 -0
  411. package/bundled/upstream/ecc/skills/videodb/reference/generative.md +331 -0
  412. package/bundled/upstream/ecc/skills/videodb/reference/rtstream-reference.md +564 -0
  413. package/bundled/upstream/ecc/skills/videodb/reference/rtstream.md +65 -0
  414. package/bundled/upstream/ecc/skills/videodb/reference/search.md +230 -0
  415. package/bundled/upstream/ecc/skills/videodb/reference/streaming.md +406 -0
  416. package/bundled/upstream/ecc/skills/videodb/reference/use-cases.md +118 -0
  417. package/bundled/upstream/ecc/skills/videodb/scripts/ws_listener.py +282 -0
  418. package/bundled/upstream/ecc/skills/visa-doc-translate/README.md +86 -0
  419. package/bundled/upstream/ecc/skills/visa-doc-translate/SKILL.md +117 -0
  420. package/bundled/upstream/ecc/skills/workspace-surface-audit/SKILL.md +125 -0
  421. package/bundled/upstream/ecc/skills/x-api/SKILL.md +230 -0
  422. package/bundled/upstream/superpowers/.omc-source/last-plan-apply.json +22 -0
  423. package/package.json +3 -1
  424. package/src/catalog/source-catalog.js +391 -0
  425. package/src/cli/artifact.js +3 -2
  426. package/src/cli/doctor.js +25 -4
  427. package/src/cli/index.js +19 -0
  428. package/src/cli/plan.js +220 -0
  429. package/src/cli/setup.js +209 -12
  430. package/src/cli/source.js +110 -3
  431. package/src/config/paths.js +31 -0
  432. package/src/config/sources.js +103 -10
  433. package/src/merge/hook-merger.js +1 -0
@@ -0,0 +1,211 @@
1
+ ---
2
+ name: iterative-retrieval
3
+ description: Pattern for progressively refining context retrieval to solve the subagent context problem
4
+ origin: ECC
5
+ ---
6
+
7
+ # Iterative Retrieval Pattern
8
+
9
+ Solves the "context problem" in multi-agent workflows where subagents don't know what context they need until they start working.
10
+
11
+ ## When to Activate
12
+
13
+ - Spawning subagents that need codebase context they cannot predict upfront
14
+ - Building multi-agent workflows where context is progressively refined
15
+ - Encountering "context too large" or "missing context" failures in agent tasks
16
+ - Designing RAG-like retrieval pipelines for code exploration
17
+ - Optimizing token usage in agent orchestration
18
+
19
+ ## The Problem
20
+
21
+ Subagents are spawned with limited context. They don't know:
22
+ - Which files contain relevant code
23
+ - What patterns exist in the codebase
24
+ - What terminology the project uses
25
+
26
+ Standard approaches fail:
27
+ - **Send everything**: Exceeds context limits
28
+ - **Send nothing**: Agent lacks critical information
29
+ - **Guess what's needed**: Often wrong
30
+
31
+ ## The Solution: Iterative Retrieval
32
+
33
+ A 4-phase loop that progressively refines context:
34
+
35
+ ```
36
+ ┌─────────────────────────────────────────────┐
37
+ │ │
38
+ │ ┌──────────┐ ┌──────────┐ │
39
+ │ │ DISPATCH │─────│ EVALUATE │ │
40
+ │ └──────────┘ └──────────┘ │
41
+ │ ▲ │ │
42
+ │ │ ▼ │
43
+ │ ┌──────────┐ ┌──────────┐ │
44
+ │ │ LOOP │─────│ REFINE │ │
45
+ │ └──────────┘ └──────────┘ │
46
+ │ │
47
+ │ Max 3 cycles, then proceed │
48
+ └─────────────────────────────────────────────┘
49
+ ```
50
+
51
+ ### Phase 1: DISPATCH
52
+
53
+ Initial broad query to gather candidate files:
54
+
55
+ ```javascript
56
+ // Start with high-level intent
57
+ const initialQuery = {
58
+ patterns: ['src/**/*.ts', 'lib/**/*.ts'],
59
+ keywords: ['authentication', 'user', 'session'],
60
+ excludes: ['*.test.ts', '*.spec.ts']
61
+ };
62
+
63
+ // Dispatch to retrieval agent
64
+ const candidates = await retrieveFiles(initialQuery);
65
+ ```
66
+
67
+ ### Phase 2: EVALUATE
68
+
69
+ Assess retrieved content for relevance:
70
+
71
+ ```javascript
72
+ function evaluateRelevance(files, task) {
73
+ return files.map(file => ({
74
+ path: file.path,
75
+ relevance: scoreRelevance(file.content, task),
76
+ reason: explainRelevance(file.content, task),
77
+ missingContext: identifyGaps(file.content, task)
78
+ }));
79
+ }
80
+ ```
81
+
82
+ Scoring criteria:
83
+ - **High (0.8-1.0)**: Directly implements target functionality
84
+ - **Medium (0.5-0.7)**: Contains related patterns or types
85
+ - **Low (0.2-0.4)**: Tangentially related
86
+ - **None (0-0.2)**: Not relevant, exclude
87
+
88
+ ### Phase 3: REFINE
89
+
90
+ Update search criteria based on evaluation:
91
+
92
+ ```javascript
93
+ function refineQuery(evaluation, previousQuery) {
94
+ return {
95
+ // Add new patterns discovered in high-relevance files
96
+ patterns: [...previousQuery.patterns, ...extractPatterns(evaluation)],
97
+
98
+ // Add terminology found in codebase
99
+ keywords: [...previousQuery.keywords, ...extractKeywords(evaluation)],
100
+
101
+ // Exclude confirmed irrelevant paths
102
+ excludes: [...previousQuery.excludes, ...evaluation
103
+ .filter(e => e.relevance < 0.2)
104
+ .map(e => e.path)
105
+ ],
106
+
107
+ // Target specific gaps
108
+ focusAreas: evaluation
109
+ .flatMap(e => e.missingContext)
110
+ .filter(unique)
111
+ };
112
+ }
113
+ ```
114
+
115
+ ### Phase 4: LOOP
116
+
117
+ Repeat with refined criteria (max 3 cycles):
118
+
119
+ ```javascript
120
+ async function iterativeRetrieve(task, maxCycles = 3) {
121
+ let query = createInitialQuery(task);
122
+ let bestContext = [];
123
+
124
+ for (let cycle = 0; cycle < maxCycles; cycle++) {
125
+ const candidates = await retrieveFiles(query);
126
+ const evaluation = evaluateRelevance(candidates, task);
127
+
128
+ // Check if we have sufficient context
129
+ const highRelevance = evaluation.filter(e => e.relevance >= 0.7);
130
+ if (highRelevance.length >= 3 && !hasCriticalGaps(evaluation)) {
131
+ return highRelevance;
132
+ }
133
+
134
+ // Refine and continue
135
+ query = refineQuery(evaluation, query);
136
+ bestContext = mergeContext(bestContext, highRelevance);
137
+ }
138
+
139
+ return bestContext;
140
+ }
141
+ ```
142
+
143
+ ## Practical Examples
144
+
145
+ ### Example 1: Bug Fix Context
146
+
147
+ ```
148
+ Task: "Fix the authentication token expiry bug"
149
+
150
+ Cycle 1:
151
+ DISPATCH: Search for "token", "auth", "expiry" in src/**
152
+ EVALUATE: Found auth.ts (0.9), tokens.ts (0.8), user.ts (0.3)
153
+ REFINE: Add "refresh", "jwt" keywords; exclude user.ts
154
+
155
+ Cycle 2:
156
+ DISPATCH: Search refined terms
157
+ EVALUATE: Found session-manager.ts (0.95), jwt-utils.ts (0.85)
158
+ REFINE: Sufficient context (2 high-relevance files)
159
+
160
+ Result: auth.ts, tokens.ts, session-manager.ts, jwt-utils.ts
161
+ ```
162
+
163
+ ### Example 2: Feature Implementation
164
+
165
+ ```
166
+ Task: "Add rate limiting to API endpoints"
167
+
168
+ Cycle 1:
169
+ DISPATCH: Search "rate", "limit", "api" in routes/**
170
+ EVALUATE: No matches - codebase uses "throttle" terminology
171
+ REFINE: Add "throttle", "middleware" keywords
172
+
173
+ Cycle 2:
174
+ DISPATCH: Search refined terms
175
+ EVALUATE: Found throttle.ts (0.9), middleware/index.ts (0.7)
176
+ REFINE: Need router patterns
177
+
178
+ Cycle 3:
179
+ DISPATCH: Search "router", "express" patterns
180
+ EVALUATE: Found router-setup.ts (0.8)
181
+ REFINE: Sufficient context
182
+
183
+ Result: throttle.ts, middleware/index.ts, router-setup.ts
184
+ ```
185
+
186
+ ## Integration with Agents
187
+
188
+ Use in agent prompts:
189
+
190
+ ```markdown
191
+ When retrieving context for this task:
192
+ 1. Start with broad keyword search
193
+ 2. Evaluate each file's relevance (0-1 scale)
194
+ 3. Identify what context is still missing
195
+ 4. Refine search criteria and repeat (max 3 cycles)
196
+ 5. Return files with relevance >= 0.7
197
+ ```
198
+
199
+ ## Best Practices
200
+
201
+ 1. **Start broad, narrow progressively** - Don't over-specify initial queries
202
+ 2. **Learn codebase terminology** - First cycle often reveals naming conventions
203
+ 3. **Track what's missing** - Explicit gap identification drives refinement
204
+ 4. **Stop at "good enough"** - 3 high-relevance files beats 10 mediocre ones
205
+ 5. **Exclude confidently** - Low-relevance files won't become relevant
206
+
207
+ ## Related
208
+
209
+ - [The Longform Guide](https://x.com/affaanmustafa/status/2014040193557471352) - Subagent orchestration section
210
+ - `continuous-learning` skill - For patterns that improve over time
211
+ - Agent definitions bundled with ECC (manual install path: `agents/`)
@@ -0,0 +1,147 @@
1
+ ---
2
+ name: java-coding-standards
3
+ description: "Java coding standards for Spring Boot services: naming, immutability, Optional usage, streams, exceptions, generics, and project layout."
4
+ origin: ECC
5
+ ---
6
+
7
+ # Java Coding Standards
8
+
9
+ Standards for readable, maintainable Java (17+) code in Spring Boot services.
10
+
11
+ ## When to Activate
12
+
13
+ - Writing or reviewing Java code in Spring Boot projects
14
+ - Enforcing naming, immutability, or exception handling conventions
15
+ - Working with records, sealed classes, or pattern matching (Java 17+)
16
+ - Reviewing use of Optional, streams, or generics
17
+ - Structuring packages and project layout
18
+
19
+ ## Core Principles
20
+
21
+ - Prefer clarity over cleverness
22
+ - Immutable by default; minimize shared mutable state
23
+ - Fail fast with meaningful exceptions
24
+ - Consistent naming and package structure
25
+
26
+ ## Naming
27
+
28
+ ```java
29
+ // PASS: Classes/Records: PascalCase
30
+ public class MarketService {}
31
+ public record Money(BigDecimal amount, Currency currency) {}
32
+
33
+ // PASS: Methods/fields: camelCase
34
+ private final MarketRepository marketRepository;
35
+ public Market findBySlug(String slug) {}
36
+
37
+ // PASS: Constants: UPPER_SNAKE_CASE
38
+ private static final int MAX_PAGE_SIZE = 100;
39
+ ```
40
+
41
+ ## Immutability
42
+
43
+ ```java
44
+ // PASS: Favor records and final fields
45
+ public record MarketDto(Long id, String name, MarketStatus status) {}
46
+
47
+ public class Market {
48
+ private final Long id;
49
+ private final String name;
50
+ // getters only, no setters
51
+ }
52
+ ```
53
+
54
+ ## Optional Usage
55
+
56
+ ```java
57
+ // PASS: Return Optional from find* methods
58
+ Optional<Market> market = marketRepository.findBySlug(slug);
59
+
60
+ // PASS: Map/flatMap instead of get()
61
+ return market
62
+ .map(MarketResponse::from)
63
+ .orElseThrow(() -> new EntityNotFoundException("Market not found"));
64
+ ```
65
+
66
+ ## Streams Best Practices
67
+
68
+ ```java
69
+ // PASS: Use streams for transformations, keep pipelines short
70
+ List<String> names = markets.stream()
71
+ .map(Market::name)
72
+ .filter(Objects::nonNull)
73
+ .toList();
74
+
75
+ // FAIL: Avoid complex nested streams; prefer loops for clarity
76
+ ```
77
+
78
+ ## Exceptions
79
+
80
+ - Use unchecked exceptions for domain errors; wrap technical exceptions with context
81
+ - Create domain-specific exceptions (e.g., `MarketNotFoundException`)
82
+ - Avoid broad `catch (Exception ex)` unless rethrowing/logging centrally
83
+
84
+ ```java
85
+ throw new MarketNotFoundException(slug);
86
+ ```
87
+
88
+ ## Generics and Type Safety
89
+
90
+ - Avoid raw types; declare generic parameters
91
+ - Prefer bounded generics for reusable utilities
92
+
93
+ ```java
94
+ public <T extends Identifiable> Map<Long, T> indexById(Collection<T> items) { ... }
95
+ ```
96
+
97
+ ## Project Structure (Maven/Gradle)
98
+
99
+ ```
100
+ src/main/java/com/example/app/
101
+ config/
102
+ controller/
103
+ service/
104
+ repository/
105
+ domain/
106
+ dto/
107
+ util/
108
+ src/main/resources/
109
+ application.yml
110
+ src/test/java/... (mirrors main)
111
+ ```
112
+
113
+ ## Formatting and Style
114
+
115
+ - Use 2 or 4 spaces consistently (project standard)
116
+ - One public top-level type per file
117
+ - Keep methods short and focused; extract helpers
118
+ - Order members: constants, fields, constructors, public methods, protected, private
119
+
120
+ ## Code Smells to Avoid
121
+
122
+ - Long parameter lists → use DTO/builders
123
+ - Deep nesting → early returns
124
+ - Magic numbers → named constants
125
+ - Static mutable state → prefer dependency injection
126
+ - Silent catch blocks → log and act or rethrow
127
+
128
+ ## Logging
129
+
130
+ ```java
131
+ private static final Logger log = LoggerFactory.getLogger(MarketService.class);
132
+ log.info("fetch_market slug={}", slug);
133
+ log.error("failed_fetch_market slug={}", slug, ex);
134
+ ```
135
+
136
+ ## Null Handling
137
+
138
+ - Accept `@Nullable` only when unavoidable; otherwise use `@NonNull`
139
+ - Use Bean Validation (`@NotNull`, `@NotBlank`) on inputs
140
+
141
+ ## Testing Expectations
142
+
143
+ - JUnit 5 + AssertJ for fluent assertions
144
+ - Mockito for mocking; avoid partial mocks where possible
145
+ - Favor deterministic tests; no hidden sleeps
146
+
147
+ **Remember**: Keep code intentional, typed, and observable. Optimize for maintainability over micro-optimizations unless proven necessary.
@@ -0,0 +1,293 @@
1
+ ---
2
+ name: jira-integration
3
+ description: Use this skill when retrieving Jira tickets, analyzing requirements, updating ticket status, adding comments, or transitioning issues. Provides Jira API patterns via MCP or direct REST calls.
4
+ origin: ECC
5
+ ---
6
+
7
+ # Jira Integration Skill
8
+
9
+ Retrieve, analyze, and update Jira tickets directly from your AI coding workflow. Supports both **MCP-based** (recommended) and **direct REST API** approaches.
10
+
11
+ ## When to Activate
12
+
13
+ - Fetching a Jira ticket to understand requirements
14
+ - Extracting testable acceptance criteria from a ticket
15
+ - Adding progress comments to a Jira issue
16
+ - Transitioning a ticket status (To Do → In Progress → Done)
17
+ - Linking merge requests or branches to a Jira issue
18
+ - Searching for issues by JQL query
19
+
20
+ ## Prerequisites
21
+
22
+ ### Option A: MCP Server (Recommended)
23
+
24
+ Install the `mcp-atlassian` MCP server. This exposes Jira tools directly to your AI agent.
25
+
26
+ **Requirements:**
27
+ - Python 3.10+
28
+ - `uvx` (from `uv`), installed via your package manager or the official `uv` installation documentation
29
+
30
+ **Add to your MCP config** (e.g., `~/.claude.json` → `mcpServers`):
31
+
32
+ ```json
33
+ {
34
+ "jira": {
35
+ "command": "uvx",
36
+ "args": ["mcp-atlassian==0.21.0"],
37
+ "env": {
38
+ "JIRA_URL": "https://YOUR_ORG.atlassian.net",
39
+ "JIRA_EMAIL": "your.email@example.com",
40
+ "JIRA_API_TOKEN": "your-api-token"
41
+ },
42
+ "description": "Jira issue tracking — search, create, update, comment, transition"
43
+ }
44
+ }
45
+ ```
46
+
47
+ > **Security:** Never hardcode secrets. Prefer setting `JIRA_URL`, `JIRA_EMAIL`, and `JIRA_API_TOKEN` in your system environment (or a secrets manager). Only use the MCP `env` block for local, uncommitted config files.
48
+
49
+ **To get a Jira API token:**
50
+ 1. Go to <https://id.atlassian.com/manage-profile/security/api-tokens>
51
+ 2. Click **Create API token**
52
+ 3. Copy the token — store it in your environment, never in source code
53
+
54
+ ### Option B: Direct REST API
55
+
56
+ If MCP is not available, use the Jira REST API v3 directly via `curl` or a helper script.
57
+
58
+ **Required environment variables:**
59
+
60
+ | Variable | Description |
61
+ |----------|-------------|
62
+ | `JIRA_URL` | Your Jira instance URL (e.g., `https://yourorg.atlassian.net`) |
63
+ | `JIRA_EMAIL` | Your Atlassian account email |
64
+ | `JIRA_API_TOKEN` | API token from id.atlassian.com |
65
+
66
+ Store these in your shell environment, secrets manager, or an untracked local env file. Do not commit them to the repo.
67
+
68
+ ## MCP Tools Reference
69
+
70
+ When the `mcp-atlassian` MCP server is configured, these tools are available:
71
+
72
+ | Tool | Purpose | Example |
73
+ |------|---------|---------|
74
+ | `jira_search` | JQL queries | `project = PROJ AND status = "In Progress"` |
75
+ | `jira_get_issue` | Fetch full issue details by key | `PROJ-1234` |
76
+ | `jira_create_issue` | Create issues (Task, Bug, Story, Epic) | New bug report |
77
+ | `jira_update_issue` | Update fields (summary, description, assignee) | Change assignee |
78
+ | `jira_transition_issue` | Change status | Move to "In Review" |
79
+ | `jira_add_comment` | Add comments | Progress update |
80
+ | `jira_get_sprint_issues` | List issues in a sprint | Active sprint review |
81
+ | `jira_create_issue_link` | Link issues (Blocks, Relates to) | Dependency tracking |
82
+ | `jira_get_issue_development_info` | See linked PRs, branches, commits | Dev context |
83
+
84
+ > **Tip:** Always call `jira_get_transitions` before transitioning — transition IDs vary per project workflow.
85
+
86
+ ## Direct REST API Reference
87
+
88
+ ### Fetch a Ticket
89
+
90
+ ```bash
91
+ curl -s -u "$JIRA_EMAIL:$JIRA_API_TOKEN" \
92
+ -H "Content-Type: application/json" \
93
+ "$JIRA_URL/rest/api/3/issue/PROJ-1234" | jq '{
94
+ key: .key,
95
+ summary: .fields.summary,
96
+ status: .fields.status.name,
97
+ priority: .fields.priority.name,
98
+ type: .fields.issuetype.name,
99
+ assignee: .fields.assignee.displayName,
100
+ labels: .fields.labels,
101
+ description: .fields.description
102
+ }'
103
+ ```
104
+
105
+ ### Fetch Comments
106
+
107
+ ```bash
108
+ curl -s -u "$JIRA_EMAIL:$JIRA_API_TOKEN" \
109
+ -H "Content-Type: application/json" \
110
+ "$JIRA_URL/rest/api/3/issue/PROJ-1234?fields=comment" | jq '.fields.comment.comments[] | {
111
+ author: .author.displayName,
112
+ created: .created[:10],
113
+ body: .body
114
+ }'
115
+ ```
116
+
117
+ ### Add a Comment
118
+
119
+ ```bash
120
+ curl -s -X POST -u "$JIRA_EMAIL:$JIRA_API_TOKEN" \
121
+ -H "Content-Type: application/json" \
122
+ -d '{
123
+ "body": {
124
+ "version": 1,
125
+ "type": "doc",
126
+ "content": [{
127
+ "type": "paragraph",
128
+ "content": [{"type": "text", "text": "Your comment here"}]
129
+ }]
130
+ }
131
+ }' \
132
+ "$JIRA_URL/rest/api/3/issue/PROJ-1234/comment"
133
+ ```
134
+
135
+ ### Transition a Ticket
136
+
137
+ ```bash
138
+ # 1. Get available transitions
139
+ curl -s -u "$JIRA_EMAIL:$JIRA_API_TOKEN" \
140
+ "$JIRA_URL/rest/api/3/issue/PROJ-1234/transitions" | jq '.transitions[] | {id, name: .name}'
141
+
142
+ # 2. Execute transition (replace TRANSITION_ID)
143
+ curl -s -X POST -u "$JIRA_EMAIL:$JIRA_API_TOKEN" \
144
+ -H "Content-Type: application/json" \
145
+ -d '{"transition": {"id": "TRANSITION_ID"}}' \
146
+ "$JIRA_URL/rest/api/3/issue/PROJ-1234/transitions"
147
+ ```
148
+
149
+ ### Search with JQL
150
+
151
+ ```bash
152
+ curl -s -G -u "$JIRA_EMAIL:$JIRA_API_TOKEN" \
153
+ --data-urlencode "jql=project = PROJ AND status = 'In Progress'" \
154
+ "$JIRA_URL/rest/api/3/search"
155
+ ```
156
+
157
+ ## Analyzing a Ticket
158
+
159
+ When retrieving a ticket for development or test automation, extract:
160
+
161
+ ### 1. Testable Requirements
162
+ - **Functional requirements** — What the feature does
163
+ - **Acceptance criteria** — Conditions that must be met
164
+ - **Testable behaviors** — Specific actions and expected outcomes
165
+ - **User roles** — Who uses this feature and their permissions
166
+ - **Data requirements** — What data is needed
167
+ - **Integration points** — APIs, services, or systems involved
168
+
169
+ ### 2. Test Types Needed
170
+ - **Unit tests** — Individual functions and utilities
171
+ - **Integration tests** — API endpoints and service interactions
172
+ - **E2E tests** — User-facing UI flows
173
+ - **API tests** — Endpoint contracts and error handling
174
+
175
+ ### 3. Edge Cases & Error Scenarios
176
+ - Invalid inputs (empty, too long, special characters)
177
+ - Unauthorized access
178
+ - Network failures or timeouts
179
+ - Concurrent users or race conditions
180
+ - Boundary conditions
181
+ - Missing or null data
182
+ - State transitions (back navigation, refresh, etc.)
183
+
184
+ ### 4. Structured Analysis Output
185
+
186
+ ```
187
+ Ticket: PROJ-1234
188
+ Summary: [ticket title]
189
+ Status: [current status]
190
+ Priority: [High/Medium/Low]
191
+ Test Types: Unit, Integration, E2E
192
+
193
+ Requirements:
194
+ 1. [requirement 1]
195
+ 2. [requirement 2]
196
+
197
+ Acceptance Criteria:
198
+ - [ ] [criterion 1]
199
+ - [ ] [criterion 2]
200
+
201
+ Test Scenarios:
202
+ - Happy Path: [description]
203
+ - Error Case: [description]
204
+ - Edge Case: [description]
205
+
206
+ Test Data Needed:
207
+ - [data item 1]
208
+ - [data item 2]
209
+
210
+ Dependencies:
211
+ - [dependency 1]
212
+ - [dependency 2]
213
+ ```
214
+
215
+ ## Updating Tickets
216
+
217
+ ### When to Update
218
+
219
+ | Workflow Step | Jira Update |
220
+ |---|---|
221
+ | Start work | Transition to "In Progress" |
222
+ | Tests written | Comment with test coverage summary |
223
+ | Branch created | Comment with branch name |
224
+ | PR/MR created | Comment with link, link issue |
225
+ | Tests passing | Comment with results summary |
226
+ | PR/MR merged | Transition to "Done" or "In Review" |
227
+
228
+ ### Comment Templates
229
+
230
+ **Starting Work:**
231
+ ```
232
+ Starting implementation for this ticket.
233
+ Branch: feat/PROJ-1234-feature-name
234
+ ```
235
+
236
+ **Tests Implemented:**
237
+ ```
238
+ Automated tests implemented:
239
+
240
+ Unit Tests:
241
+ - [test file 1] — [what it covers]
242
+ - [test file 2] — [what it covers]
243
+
244
+ Integration Tests:
245
+ - [test file] — [endpoints/flows covered]
246
+
247
+ All tests passing locally. Coverage: XX%
248
+ ```
249
+
250
+ **PR Created:**
251
+ ```
252
+ Pull request created:
253
+ [PR Title](https://github.com/org/repo/pull/XXX)
254
+
255
+ Ready for review.
256
+ ```
257
+
258
+ **Work Complete:**
259
+ ```
260
+ Implementation complete.
261
+
262
+ PR merged: [link]
263
+ Test results: All passing (X/Y)
264
+ Coverage: XX%
265
+ ```
266
+
267
+ ## Security Guidelines
268
+
269
+ - **Never hardcode** Jira API tokens in source code or skill files
270
+ - **Always use** environment variables or a secrets manager
271
+ - **Add `.env`** to `.gitignore` in every project
272
+ - **Rotate tokens** immediately if exposed in git history
273
+ - **Use least-privilege** API tokens scoped to required projects
274
+ - **Validate** that credentials are set before making API calls — fail fast with a clear message
275
+
276
+ ## Troubleshooting
277
+
278
+ | Error | Cause | Fix |
279
+ |---|---|---|
280
+ | `401 Unauthorized` | Invalid or expired API token | Regenerate at id.atlassian.com |
281
+ | `403 Forbidden` | Token lacks project permissions | Check token scopes and project access |
282
+ | `404 Not Found` | Wrong ticket key or base URL | Verify `JIRA_URL` and ticket key |
283
+ | `spawn uvx ENOENT` | IDE cannot find `uvx` on PATH | Use full path (e.g., `~/.local/bin/uvx`) or set PATH in `~/.zprofile` |
284
+ | Connection timeout | Network/VPN issue | Check VPN connection and firewall rules |
285
+
286
+ ## Best Practices
287
+
288
+ - Update Jira as you go, not all at once at the end
289
+ - Keep comments concise but informative
290
+ - Link rather than copy — point to PRs, test reports, and dashboards
291
+ - Use @mentions if you need input from others
292
+ - Check linked issues to understand full feature scope before starting
293
+ - If acceptance criteria are vague, ask for clarification before writing code