claudecode-omc 5.6.4 → 5.6.6

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 (383) hide show
  1. package/.local/commands/code-review.md +416 -0
  2. package/.local/commands/pr.md +250 -0
  3. package/.local/commands/prp-pr.md +244 -0
  4. package/.local/guidelines/CLAUDE.md +47 -0
  5. package/.local/skills/prompt-optimizer/SKILL.md +23 -4
  6. package/bundled/manifest.json +4 -4
  7. package/bundled/upstream/anthropic-skills/skills/algorithmic-art/LICENSE.txt +1 -1
  8. package/bundled/upstream/anthropic-skills/skills/brand-guidelines/LICENSE.txt +1 -1
  9. package/bundled/upstream/anthropic-skills/skills/canvas-design/LICENSE.txt +1 -1
  10. package/bundled/upstream/anthropic-skills/skills/claude-api/LICENSE.txt +1 -1
  11. package/bundled/upstream/anthropic-skills/skills/claude-api/SKILL.md +120 -58
  12. package/bundled/upstream/anthropic-skills/skills/claude-api/curl/examples.md +9 -9
  13. package/bundled/upstream/anthropic-skills/skills/claude-api/curl/managed-agents.md +336 -0
  14. package/bundled/upstream/anthropic-skills/skills/claude-api/go/managed-agents/README.md +561 -0
  15. package/bundled/upstream/anthropic-skills/skills/claude-api/java/claude-api.md +2 -2
  16. package/bundled/upstream/anthropic-skills/skills/claude-api/java/managed-agents/README.md +442 -0
  17. package/bundled/upstream/anthropic-skills/skills/claude-api/php/claude-api.md +10 -10
  18. package/bundled/upstream/anthropic-skills/skills/claude-api/php/managed-agents/README.md +435 -0
  19. package/bundled/upstream/anthropic-skills/skills/claude-api/python/claude-api/README.md +16 -16
  20. package/bundled/upstream/anthropic-skills/skills/claude-api/python/claude-api/batches.md +3 -3
  21. package/bundled/upstream/anthropic-skills/skills/claude-api/python/claude-api/files-api.md +3 -3
  22. package/bundled/upstream/anthropic-skills/skills/claude-api/python/claude-api/streaming.md +7 -7
  23. package/bundled/upstream/anthropic-skills/skills/claude-api/python/claude-api/tool-use.md +19 -19
  24. package/bundled/upstream/anthropic-skills/skills/claude-api/python/managed-agents/README.md +332 -0
  25. package/bundled/upstream/anthropic-skills/skills/claude-api/ruby/claude-api.md +4 -4
  26. package/bundled/upstream/anthropic-skills/skills/claude-api/ruby/managed-agents/README.md +389 -0
  27. package/bundled/upstream/anthropic-skills/skills/claude-api/shared/agent-design.md +101 -0
  28. package/bundled/upstream/anthropic-skills/skills/claude-api/shared/error-codes.md +11 -4
  29. package/bundled/upstream/anthropic-skills/skills/claude-api/shared/live-sources.md +60 -48
  30. package/bundled/upstream/anthropic-skills/skills/claude-api/shared/managed-agents-api-reference.md +372 -0
  31. package/bundled/upstream/anthropic-skills/skills/claude-api/shared/managed-agents-client-patterns.md +209 -0
  32. package/bundled/upstream/anthropic-skills/skills/claude-api/shared/managed-agents-core.md +220 -0
  33. package/bundled/upstream/anthropic-skills/skills/claude-api/shared/managed-agents-environments.md +211 -0
  34. package/bundled/upstream/anthropic-skills/skills/claude-api/shared/managed-agents-events.md +195 -0
  35. package/bundled/upstream/anthropic-skills/skills/claude-api/shared/managed-agents-memory.md +197 -0
  36. package/bundled/upstream/anthropic-skills/skills/claude-api/shared/managed-agents-multiagent.md +99 -0
  37. package/bundled/upstream/anthropic-skills/skills/claude-api/shared/managed-agents-onboarding.md +114 -0
  38. package/bundled/upstream/anthropic-skills/skills/claude-api/shared/managed-agents-outcomes.md +106 -0
  39. package/bundled/upstream/anthropic-skills/skills/claude-api/shared/managed-agents-overview.md +67 -0
  40. package/bundled/upstream/anthropic-skills/skills/claude-api/shared/managed-agents-tools.md +315 -0
  41. package/bundled/upstream/anthropic-skills/skills/claude-api/shared/managed-agents-webhooks.md +110 -0
  42. package/bundled/upstream/anthropic-skills/skills/claude-api/shared/model-migration.md +779 -0
  43. package/bundled/upstream/anthropic-skills/skills/claude-api/shared/models.md +16 -14
  44. package/bundled/upstream/anthropic-skills/skills/claude-api/shared/prompt-caching.md +45 -2
  45. package/bundled/upstream/anthropic-skills/skills/claude-api/shared/tool-use-concepts.md +28 -6
  46. package/bundled/upstream/anthropic-skills/skills/claude-api/typescript/claude-api/README.md +15 -15
  47. package/bundled/upstream/anthropic-skills/skills/claude-api/typescript/claude-api/batches.md +2 -2
  48. package/bundled/upstream/anthropic-skills/skills/claude-api/typescript/claude-api/files-api.md +1 -1
  49. package/bundled/upstream/anthropic-skills/skills/claude-api/typescript/claude-api/streaming.md +5 -5
  50. package/bundled/upstream/anthropic-skills/skills/claude-api/typescript/claude-api/tool-use.md +15 -15
  51. package/bundled/upstream/anthropic-skills/skills/claude-api/typescript/managed-agents/README.md +359 -0
  52. package/bundled/upstream/anthropic-skills/skills/internal-comms/LICENSE.txt +1 -1
  53. package/bundled/upstream/anthropic-skills/skills/mcp-builder/LICENSE.txt +1 -1
  54. package/bundled/upstream/anthropic-skills/skills/skill-creator/LICENSE.txt +1 -1
  55. package/bundled/upstream/anthropic-skills/skills/slack-gif-creator/LICENSE.txt +1 -1
  56. package/bundled/upstream/anthropic-skills/skills/theme-factory/LICENSE.txt +1 -1
  57. package/bundled/upstream/anthropic-skills/skills/web-artifacts-builder/LICENSE.txt +1 -1
  58. package/bundled/upstream/anthropic-skills/skills/webapp-testing/LICENSE.txt +1 -1
  59. package/bundled/upstream/ecc/.omc-source/bundle.json +2 -3
  60. package/bundled/upstream/ecc/.omc-source/manifests/.claude-plugin/marketplace.json +4 -4
  61. package/bundled/upstream/ecc/agents/a11y-architect.md +10 -2
  62. package/bundled/upstream/ecc/agents/architect.md +9 -0
  63. package/bundled/upstream/ecc/agents/build-error-resolver.md +9 -0
  64. package/bundled/upstream/ecc/agents/chief-of-staff.md +9 -0
  65. package/bundled/upstream/ecc/agents/code-architect.md +9 -0
  66. package/bundled/upstream/ecc/agents/code-explorer.md +10 -1
  67. package/bundled/upstream/ecc/agents/code-reviewer.md +87 -1
  68. package/bundled/upstream/ecc/agents/code-simplifier.md +9 -0
  69. package/bundled/upstream/ecc/agents/comment-analyzer.md +10 -1
  70. package/bundled/upstream/ecc/agents/conversation-analyzer.md +9 -0
  71. package/bundled/upstream/ecc/agents/cpp-build-resolver.md +9 -0
  72. package/bundled/upstream/ecc/agents/cpp-reviewer.md +9 -0
  73. package/bundled/upstream/ecc/agents/csharp-reviewer.md +9 -0
  74. package/bundled/upstream/ecc/agents/dart-build-resolver.md +9 -0
  75. package/bundled/upstream/ecc/agents/database-reviewer.md +9 -0
  76. package/bundled/upstream/ecc/agents/django-build-resolver.md +252 -0
  77. package/bundled/upstream/ecc/agents/django-reviewer.md +169 -0
  78. package/bundled/upstream/ecc/agents/doc-updater.md +9 -0
  79. package/bundled/upstream/ecc/agents/docs-lookup.md +9 -0
  80. package/bundled/upstream/ecc/agents/e2e-runner.md +9 -0
  81. package/bundled/upstream/ecc/agents/fastapi-reviewer.md +79 -0
  82. package/bundled/upstream/ecc/agents/flutter-reviewer.md +9 -0
  83. package/bundled/upstream/ecc/agents/fsharp-reviewer.md +109 -0
  84. package/bundled/upstream/ecc/agents/gan-evaluator.md +9 -0
  85. package/bundled/upstream/ecc/agents/gan-generator.md +9 -0
  86. package/bundled/upstream/ecc/agents/gan-planner.md +9 -0
  87. package/bundled/upstream/ecc/agents/go-build-resolver.md +9 -0
  88. package/bundled/upstream/ecc/agents/go-reviewer.md +9 -0
  89. package/bundled/upstream/ecc/agents/harmonyos-app-resolver.md +182 -0
  90. package/bundled/upstream/ecc/agents/harness-optimizer.md +9 -0
  91. package/bundled/upstream/ecc/agents/healthcare-reviewer.md +9 -0
  92. package/bundled/upstream/ecc/agents/homelab-architect.md +107 -0
  93. package/bundled/upstream/ecc/agents/java-build-resolver.md +133 -11
  94. package/bundled/upstream/ecc/agents/java-reviewer.md +130 -32
  95. package/bundled/upstream/ecc/agents/kotlin-build-resolver.md +9 -0
  96. package/bundled/upstream/ecc/agents/kotlin-reviewer.md +9 -0
  97. package/bundled/upstream/ecc/agents/loop-operator.md +9 -0
  98. package/bundled/upstream/ecc/agents/mle-reviewer.md +162 -0
  99. package/bundled/upstream/ecc/agents/network-architect.md +106 -0
  100. package/bundled/upstream/ecc/agents/network-config-reviewer.md +106 -0
  101. package/bundled/upstream/ecc/agents/network-troubleshooter.md +128 -0
  102. package/bundled/upstream/ecc/agents/opensource-forker.md +9 -0
  103. package/bundled/upstream/ecc/agents/opensource-packager.md +9 -0
  104. package/bundled/upstream/ecc/agents/opensource-sanitizer.md +9 -0
  105. package/bundled/upstream/ecc/agents/performance-optimizer.md +9 -0
  106. package/bundled/upstream/ecc/agents/planner.md +9 -0
  107. package/bundled/upstream/ecc/agents/pr-test-analyzer.md +9 -0
  108. package/bundled/upstream/ecc/agents/python-reviewer.md +9 -0
  109. package/bundled/upstream/ecc/agents/pytorch-build-resolver.md +12 -3
  110. package/bundled/upstream/ecc/agents/refactor-cleaner.md +9 -0
  111. package/bundled/upstream/ecc/agents/rust-build-resolver.md +9 -0
  112. package/bundled/upstream/ecc/agents/rust-reviewer.md +9 -0
  113. package/bundled/upstream/ecc/agents/security-reviewer.md +9 -0
  114. package/bundled/upstream/ecc/agents/seo-specialist.md +10 -1
  115. package/bundled/upstream/ecc/agents/silent-failure-hunter.md +9 -0
  116. package/bundled/upstream/ecc/agents/swift-build-resolver.md +170 -0
  117. package/bundled/upstream/ecc/agents/swift-reviewer.md +116 -0
  118. package/bundled/upstream/ecc/agents/tdd-guide.md +9 -0
  119. package/bundled/upstream/ecc/agents/type-design-analyzer.md +10 -1
  120. package/bundled/upstream/ecc/agents/typescript-reviewer.md +9 -0
  121. package/bundled/upstream/ecc/commands/auto-update.md +28 -0
  122. package/bundled/upstream/ecc/commands/build-fix.md +4 -0
  123. package/bundled/upstream/ecc/commands/checkpoint.md +4 -0
  124. package/bundled/upstream/ecc/commands/code-review.md +3 -3
  125. package/bundled/upstream/ecc/commands/cost-report.md +107 -0
  126. package/bundled/upstream/ecc/commands/cpp-build.md +1 -1
  127. package/bundled/upstream/ecc/commands/cpp-test.md +1 -1
  128. package/bundled/upstream/ecc/commands/ecc-guide.md +93 -0
  129. package/bundled/upstream/ecc/commands/fastapi-review.md +39 -0
  130. package/bundled/upstream/ecc/commands/flutter-build.md +1 -1
  131. package/bundled/upstream/ecc/commands/flutter-test.md +1 -1
  132. package/bundled/upstream/ecc/commands/gan-build.md +4 -0
  133. package/bundled/upstream/ecc/commands/gan-design.md +4 -0
  134. package/bundled/upstream/ecc/commands/go-build.md +1 -1
  135. package/bundled/upstream/ecc/commands/go-test.md +1 -1
  136. package/bundled/upstream/ecc/commands/harness-audit.md +4 -0
  137. package/bundled/upstream/ecc/commands/jira.md +2 -2
  138. package/bundled/upstream/ecc/commands/kotlin-build.md +1 -1
  139. package/bundled/upstream/ecc/commands/kotlin-test.md +1 -1
  140. package/bundled/upstream/ecc/commands/learn.md +4 -0
  141. package/bundled/upstream/ecc/commands/loop-start.md +4 -0
  142. package/bundled/upstream/ecc/commands/loop-status.md +54 -1
  143. package/bundled/upstream/ecc/commands/model-route.md +4 -0
  144. package/bundled/upstream/ecc/commands/multi-backend.md +4 -0
  145. package/bundled/upstream/ecc/commands/multi-execute.md +4 -0
  146. package/bundled/upstream/ecc/commands/multi-frontend.md +4 -0
  147. package/bundled/upstream/ecc/commands/multi-plan.md +4 -0
  148. package/bundled/upstream/ecc/commands/multi-workflow.md +4 -0
  149. package/bundled/upstream/ecc/commands/plan-prd.md +160 -0
  150. package/bundled/upstream/ecc/commands/plan.md +96 -13
  151. package/bundled/upstream/ecc/commands/pm2.md +4 -0
  152. package/bundled/upstream/ecc/commands/pr.md +184 -0
  153. package/bundled/upstream/ecc/commands/project-init.md +86 -0
  154. package/bundled/upstream/ecc/commands/python-review.md +1 -1
  155. package/bundled/upstream/ecc/commands/quality-gate.md +4 -0
  156. package/bundled/upstream/ecc/commands/refactor-clean.md +4 -0
  157. package/bundled/upstream/ecc/commands/rust-build.md +1 -1
  158. package/bundled/upstream/ecc/commands/rust-test.md +1 -1
  159. package/bundled/upstream/ecc/commands/security-scan.md +92 -0
  160. package/bundled/upstream/ecc/commands/sessions.md +6 -6
  161. package/bundled/upstream/ecc/commands/skill-health.md +3 -3
  162. package/bundled/upstream/ecc/commands/test-coverage.md +4 -0
  163. package/bundled/upstream/ecc/commands/update-codemaps.md +4 -0
  164. package/bundled/upstream/ecc/commands/update-docs.md +4 -0
  165. package/bundled/upstream/ecc/skills/accessibility/SKILL.md +1 -1
  166. package/bundled/upstream/ecc/skills/agent-architecture-audit/SKILL.md +256 -0
  167. package/bundled/upstream/ecc/skills/agent-payment-x402/SKILL.md +49 -3
  168. package/bundled/upstream/ecc/skills/agentic-os/SKILL.md +387 -0
  169. package/bundled/upstream/ecc/skills/angular-developer/SKILL.md +154 -0
  170. package/bundled/upstream/ecc/skills/angular-developer/references/angular-animations.md +160 -0
  171. package/bundled/upstream/ecc/skills/angular-developer/references/angular-aria.md +410 -0
  172. package/bundled/upstream/ecc/skills/angular-developer/references/cli.md +86 -0
  173. package/bundled/upstream/ecc/skills/angular-developer/references/component-harnesses.md +59 -0
  174. package/bundled/upstream/ecc/skills/angular-developer/references/component-styling.md +91 -0
  175. package/bundled/upstream/ecc/skills/angular-developer/references/components.md +117 -0
  176. package/bundled/upstream/ecc/skills/angular-developer/references/creating-services.md +97 -0
  177. package/bundled/upstream/ecc/skills/angular-developer/references/data-resolvers.md +69 -0
  178. package/bundled/upstream/ecc/skills/angular-developer/references/define-routes.md +67 -0
  179. package/bundled/upstream/ecc/skills/angular-developer/references/defining-providers.md +72 -0
  180. package/bundled/upstream/ecc/skills/angular-developer/references/di-fundamentals.md +120 -0
  181. package/bundled/upstream/ecc/skills/angular-developer/references/e2e-testing.md +56 -0
  182. package/bundled/upstream/ecc/skills/angular-developer/references/effects.md +83 -0
  183. package/bundled/upstream/ecc/skills/angular-developer/references/hierarchical-injectors.md +43 -0
  184. package/bundled/upstream/ecc/skills/angular-developer/references/host-elements.md +80 -0
  185. package/bundled/upstream/ecc/skills/angular-developer/references/injection-context.md +63 -0
  186. package/bundled/upstream/ecc/skills/angular-developer/references/inputs.md +101 -0
  187. package/bundled/upstream/ecc/skills/angular-developer/references/linked-signal.md +59 -0
  188. package/bundled/upstream/ecc/skills/angular-developer/references/loading-strategies.md +61 -0
  189. package/bundled/upstream/ecc/skills/angular-developer/references/mcp.md +108 -0
  190. package/bundled/upstream/ecc/skills/angular-developer/references/navigate-to-routes.md +69 -0
  191. package/bundled/upstream/ecc/skills/angular-developer/references/outputs.md +86 -0
  192. package/bundled/upstream/ecc/skills/angular-developer/references/reactive-forms.md +122 -0
  193. package/bundled/upstream/ecc/skills/angular-developer/references/rendering-strategies.md +44 -0
  194. package/bundled/upstream/ecc/skills/angular-developer/references/resource.md +77 -0
  195. package/bundled/upstream/ecc/skills/angular-developer/references/route-animations.md +56 -0
  196. package/bundled/upstream/ecc/skills/angular-developer/references/route-guards.md +52 -0
  197. package/bundled/upstream/ecc/skills/angular-developer/references/router-lifecycle.md +45 -0
  198. package/bundled/upstream/ecc/skills/angular-developer/references/router-testing.md +87 -0
  199. package/bundled/upstream/ecc/skills/angular-developer/references/show-routes-with-outlets.md +68 -0
  200. package/bundled/upstream/ecc/skills/angular-developer/references/signal-forms.md +795 -0
  201. package/bundled/upstream/ecc/skills/angular-developer/references/signals-overview.md +94 -0
  202. package/bundled/upstream/ecc/skills/angular-developer/references/tailwind-css.md +69 -0
  203. package/bundled/upstream/ecc/skills/angular-developer/references/template-driven-forms.md +114 -0
  204. package/bundled/upstream/ecc/skills/angular-developer/references/testing-fundamentals.md +65 -0
  205. package/bundled/upstream/ecc/skills/autonomous-agent-harness/SKILL.md +6 -0
  206. package/bundled/upstream/ecc/skills/backend-patterns/SKILL.md +8 -45
  207. package/bundled/upstream/ecc/skills/cisco-ios-patterns/SKILL.md +163 -0
  208. package/bundled/upstream/ecc/skills/configure-ecc/SKILL.md +31 -14
  209. package/bundled/upstream/ecc/skills/continuous-learning/SKILL.md +10 -2
  210. package/bundled/upstream/ecc/skills/continuous-learning-v2/SKILL.md +19 -5
  211. package/bundled/upstream/ecc/skills/continuous-learning-v2/agents/observer-loop.sh +44 -4
  212. package/bundled/upstream/ecc/skills/continuous-learning-v2/agents/observer.md +4 -4
  213. package/bundled/upstream/ecc/skills/continuous-learning-v2/agents/start-observer.sh +5 -1
  214. package/bundled/upstream/ecc/skills/continuous-learning-v2/hooks/observe.sh +21 -5
  215. package/bundled/upstream/ecc/skills/continuous-learning-v2/scripts/detect-project.sh +58 -13
  216. package/bundled/upstream/ecc/skills/continuous-learning-v2/scripts/instinct-cli.py +97 -4
  217. package/bundled/upstream/ecc/skills/continuous-learning-v2/scripts/lib/homunculus-dir.sh +31 -0
  218. package/bundled/upstream/ecc/skills/continuous-learning-v2/scripts/migrate-homunculus.sh +62 -0
  219. package/bundled/upstream/ecc/skills/continuous-learning-v2/scripts/test_parse_instinct.py +34 -0
  220. package/bundled/upstream/ecc/skills/cost-tracking/SKILL.md +147 -0
  221. package/bundled/upstream/ecc/skills/deep-research/SKILL.md +4 -0
  222. package/bundled/upstream/ecc/skills/defi-amm-security/SKILL.md +6 -0
  223. package/bundled/upstream/ecc/skills/django-celery/SKILL.md +457 -0
  224. package/bundled/upstream/ecc/skills/ecc-guide/SKILL.md +189 -0
  225. package/bundled/upstream/ecc/skills/error-handling/SKILL.md +376 -0
  226. package/bundled/upstream/ecc/skills/exa-search/SKILL.md +4 -0
  227. package/bundled/upstream/ecc/skills/fal-ai-media/SKILL.md +4 -0
  228. package/bundled/upstream/ecc/skills/fastapi-patterns/SKILL.md +327 -0
  229. package/bundled/upstream/ecc/skills/flox-environments/SKILL.md +496 -0
  230. package/bundled/upstream/ecc/skills/frontend-design-direction/SKILL.md +92 -0
  231. package/bundled/upstream/ecc/skills/frontend-slides/animation-patterns.md +122 -0
  232. package/bundled/upstream/ecc/skills/frontend-slides/html-template.md +419 -0
  233. package/bundled/upstream/ecc/skills/frontend-slides/scripts/export-pdf.sh +418 -0
  234. package/bundled/upstream/ecc/skills/frontend-slides/scripts/extract-pptx.py +96 -0
  235. package/bundled/upstream/ecc/skills/frontend-slides/viewport-base.css +153 -0
  236. package/bundled/upstream/ecc/skills/fsharp-testing/SKILL.md +280 -0
  237. package/bundled/upstream/ecc/skills/gateguard/SKILL.md +4 -0
  238. package/bundled/upstream/ecc/skills/hermes-imports/SKILL.md +88 -0
  239. package/bundled/upstream/ecc/skills/homelab-network-readiness/SKILL.md +169 -0
  240. package/bundled/upstream/ecc/skills/homelab-network-setup/SKILL.md +129 -0
  241. package/bundled/upstream/ecc/skills/homelab-pihole-dns/SKILL.md +274 -0
  242. package/bundled/upstream/ecc/skills/homelab-vlan-segmentation/SKILL.md +311 -0
  243. package/bundled/upstream/ecc/skills/homelab-wireguard-vpn/SKILL.md +305 -0
  244. package/bundled/upstream/ecc/skills/ios-icon-gen/SKILL.md +157 -0
  245. package/bundled/upstream/ecc/skills/ios-icon-gen/scripts/generate_icons.swift +258 -0
  246. package/bundled/upstream/ecc/skills/ios-icon-gen/scripts/iconify_gen.sh +235 -0
  247. package/bundled/upstream/ecc/skills/java-coding-standards/SKILL.md +241 -5
  248. package/bundled/upstream/ecc/skills/make-interfaces-feel-better/SKILL.md +151 -0
  249. package/bundled/upstream/ecc/skills/mle-workflow/SKILL.md +346 -0
  250. package/bundled/upstream/ecc/skills/motion-advanced/SKILL.md +596 -0
  251. package/bundled/upstream/ecc/skills/motion-foundations/SKILL.md +299 -0
  252. package/bundled/upstream/ecc/skills/motion-patterns/SKILL.md +435 -0
  253. package/bundled/upstream/ecc/skills/motion-ui/SKILL.md +575 -0
  254. package/bundled/upstream/ecc/skills/mysql-patterns/SKILL.md +412 -0
  255. package/bundled/upstream/ecc/skills/netmiko-ssh-automation/SKILL.md +173 -0
  256. package/bundled/upstream/ecc/skills/network-bgp-diagnostics/SKILL.md +167 -0
  257. package/bundled/upstream/ecc/skills/network-config-validation/SKILL.md +210 -0
  258. package/bundled/upstream/ecc/skills/network-interface-health/SKILL.md +152 -0
  259. package/bundled/upstream/ecc/skills/openclaw-persona-forge/SKILL.md +1 -9
  260. package/bundled/upstream/ecc/skills/plan-orchestrate/SKILL.md +262 -0
  261. package/bundled/upstream/ecc/skills/prisma-patterns/SKILL.md +371 -0
  262. package/bundled/upstream/ecc/skills/production-audit/SKILL.md +206 -0
  263. package/bundled/upstream/ecc/skills/prompt-optimizer/SKILL.md +24 -400
  264. package/bundled/upstream/ecc/skills/quarkus-patterns/SKILL.md +722 -0
  265. package/bundled/upstream/ecc/skills/quarkus-security/SKILL.md +467 -0
  266. package/bundled/upstream/ecc/skills/quarkus-tdd/SKILL.md +811 -0
  267. package/bundled/upstream/ecc/skills/quarkus-verification/SKILL.md +479 -0
  268. package/bundled/upstream/ecc/skills/redis-patterns/SKILL.md +403 -0
  269. package/bundled/upstream/ecc/skills/scientific-db-pubmed-database/SKILL.md +175 -0
  270. package/bundled/upstream/ecc/skills/scientific-db-uspto-database/SKILL.md +177 -0
  271. package/bundled/upstream/ecc/skills/scientific-pkg-gget/SKILL.md +166 -0
  272. package/bundled/upstream/ecc/skills/scientific-thinking-literature-review/SKILL.md +192 -0
  273. package/bundled/upstream/ecc/skills/scientific-thinking-scholar-evaluation/SKILL.md +160 -0
  274. package/bundled/upstream/ecc/skills/search-first/SKILL.md +23 -2
  275. package/bundled/upstream/ecc/skills/security-review/SKILL.md +10 -2
  276. package/bundled/upstream/ecc/skills/skill-comply/scripts/runner.py +28 -3
  277. package/bundled/upstream/ecc/skills/skill-comply/tests/test_runner.py +172 -0
  278. package/bundled/upstream/ecc/skills/skill-scout/SKILL.md +140 -0
  279. package/bundled/upstream/ecc/skills/skill-stocktake/SKILL.md +1 -0
  280. package/bundled/upstream/ecc/skills/strategic-compact/SKILL.md +2 -2
  281. package/bundled/upstream/ecc/skills/tinystruct-patterns/SKILL.md +203 -0
  282. package/bundled/upstream/ecc/skills/tinystruct-patterns/references/architecture.md +90 -0
  283. package/bundled/upstream/ecc/skills/tinystruct-patterns/references/data-handling.md +60 -0
  284. package/bundled/upstream/ecc/skills/tinystruct-patterns/references/database.md +99 -0
  285. package/bundled/upstream/ecc/skills/tinystruct-patterns/references/routing.md +64 -0
  286. package/bundled/upstream/ecc/skills/tinystruct-patterns/references/system-usage.md +97 -0
  287. package/bundled/upstream/ecc/skills/tinystruct-patterns/references/testing.md +72 -0
  288. package/bundled/upstream/ecc/skills/ui-to-vue/SKILL.md +134 -0
  289. package/bundled/upstream/ecc/skills/vite-patterns/SKILL.md +449 -0
  290. package/bundled/upstream/ecc/skills/windows-desktop-e2e/SKILL.md +788 -0
  291. package/bundled/upstream/ecc/skills/x-api/SKILL.md +4 -0
  292. package/bundled/upstream/oh-my-claudecode/.omc-source/bundle.json +20 -0
  293. package/bundled/upstream/oh-my-claudecode/agents/analyst.md +2 -1
  294. package/bundled/upstream/oh-my-claudecode/agents/architect.md +2 -1
  295. package/bundled/upstream/oh-my-claudecode/agents/code-reviewer.md +26 -7
  296. package/bundled/upstream/oh-my-claudecode/agents/critic.md +2 -1
  297. package/bundled/upstream/oh-my-claudecode/agents/debugger.md +2 -1
  298. package/bundled/upstream/oh-my-claudecode/agents/designer.md +14 -1
  299. package/bundled/upstream/oh-my-claudecode/agents/document-specialist.md +1 -1
  300. package/bundled/upstream/oh-my-claudecode/agents/executor.md +2 -1
  301. package/bundled/upstream/oh-my-claudecode/agents/explore.md +2 -1
  302. package/bundled/upstream/oh-my-claudecode/agents/git-master.md +2 -1
  303. package/bundled/upstream/oh-my-claudecode/agents/planner.md +2 -1
  304. package/bundled/upstream/oh-my-claudecode/agents/qa-tester.md +2 -1
  305. package/bundled/upstream/oh-my-claudecode/agents/scientist.md +2 -1
  306. package/bundled/upstream/oh-my-claudecode/agents/security-reviewer.md +2 -1
  307. package/bundled/upstream/oh-my-claudecode/agents/test-engineer.md +2 -1
  308. package/bundled/upstream/oh-my-claudecode/agents/tracer.md +2 -1
  309. package/bundled/upstream/oh-my-claudecode/agents/verifier.md +2 -1
  310. package/bundled/upstream/oh-my-claudecode/agents/writer.md +2 -1
  311. package/bundled/upstream/oh-my-claudecode/skills/AGENTS.md +4 -3
  312. package/bundled/upstream/oh-my-claudecode/skills/ai-slop-cleaner/SKILL.md +12 -0
  313. package/bundled/upstream/oh-my-claudecode/skills/deep-dive/SKILL.md +69 -13
  314. package/bundled/upstream/oh-my-claudecode/skills/deep-interview/SKILL.md +176 -63
  315. package/bundled/upstream/oh-my-claudecode/skills/learner/SKILL.md +3 -1
  316. package/bundled/upstream/oh-my-claudecode/skills/omc-doctor/SKILL.md +22 -3
  317. package/bundled/upstream/oh-my-claudecode/skills/omc-reference/SKILL.md +1 -1
  318. package/bundled/upstream/oh-my-claudecode/skills/omc-setup/phases/01-install-claude-md.md +2 -2
  319. package/bundled/upstream/oh-my-claudecode/skills/omc-setup/phases/02-configure.md +45 -2
  320. package/bundled/upstream/oh-my-claudecode/skills/omc-setup/phases/03-integrations.md +46 -5
  321. package/bundled/upstream/oh-my-claudecode/skills/plan/SKILL.md +19 -17
  322. package/bundled/upstream/oh-my-claudecode/skills/project-session-manager/lib/config.sh +1 -1
  323. package/bundled/upstream/oh-my-claudecode/skills/project-session-manager/lib/parse.sh +1 -1
  324. package/bundled/upstream/oh-my-claudecode/skills/project-session-manager/lib/providers/azure-devops.sh +1 -1
  325. package/bundled/upstream/oh-my-claudecode/skills/project-session-manager/lib/providers/bitbucket.sh +1 -1
  326. package/bundled/upstream/oh-my-claudecode/skills/project-session-manager/lib/providers/gitea.sh +1 -1
  327. package/bundled/upstream/oh-my-claudecode/skills/project-session-manager/lib/providers/github.sh +1 -1
  328. package/bundled/upstream/oh-my-claudecode/skills/project-session-manager/lib/providers/gitlab.sh +1 -1
  329. package/bundled/upstream/oh-my-claudecode/skills/project-session-manager/lib/providers/interface.sh +1 -1
  330. package/bundled/upstream/oh-my-claudecode/skills/project-session-manager/lib/providers/jira.sh +1 -1
  331. package/bundled/upstream/oh-my-claudecode/skills/project-session-manager/lib/session.sh +1 -1
  332. package/bundled/upstream/oh-my-claudecode/skills/project-session-manager/lib/tmux.sh +1 -1
  333. package/bundled/upstream/oh-my-claudecode/skills/project-session-manager/lib/worktree.sh +1 -1
  334. package/bundled/upstream/oh-my-claudecode/skills/project-session-manager/psm.sh +1 -1
  335. package/bundled/upstream/oh-my-claudecode/skills/project-session-manager/tests/test-psm-prompt-injection.sh +1 -1
  336. package/bundled/upstream/oh-my-claudecode/skills/ralph/SKILL.md +8 -8
  337. package/bundled/upstream/oh-my-claudecode/skills/ralplan/SKILL.md +9 -5
  338. package/bundled/upstream/oh-my-claudecode/skills/skill/SKILL.md +6 -6
  339. package/bundled/upstream/oh-my-claudecode/skills/skillify/SKILL.md +19 -3
  340. package/bundled/upstream/oh-my-claudecode/skills/trace/SKILL.md +3 -1
  341. package/bundled/upstream/oh-my-claudecode/skills/ultrawork/SKILL.md +20 -7
  342. package/bundled/upstream/superpowers/.omc-source/bundle.json +21 -0
  343. package/bundled/upstream/superpowers/hooks/hooks-cursor.json +1 -1
  344. package/bundled/upstream/superpowers/skills/executing-plans/SKILL.md +1 -1
  345. package/bundled/upstream/superpowers/skills/finishing-a-development-branch/SKILL.md +93 -42
  346. package/bundled/upstream/superpowers/skills/requesting-code-review/SKILL.md +7 -9
  347. package/bundled/upstream/superpowers/skills/requesting-code-review/code-reviewer.md +107 -85
  348. package/bundled/upstream/superpowers/skills/subagent-driven-development/SKILL.md +3 -1
  349. package/bundled/upstream/superpowers/skills/subagent-driven-development/code-quality-reviewer-prompt.md +2 -3
  350. package/bundled/upstream/superpowers/skills/systematic-debugging/CREATION-LOG.md +1 -1
  351. package/bundled/upstream/superpowers/skills/systematic-debugging/root-cause-tracing.md +1 -1
  352. package/bundled/upstream/superpowers/skills/using-git-worktrees/SKILL.md +95 -98
  353. package/bundled/upstream/superpowers/skills/using-superpowers/references/codex-tools.md +7 -48
  354. package/bundled/upstream/superpowers/skills/using-superpowers/references/copilot-tools.md +1 -11
  355. package/bundled/upstream/superpowers/skills/using-superpowers/references/gemini-tools.md +21 -3
  356. package/bundled/upstream/superpowers/skills/writing-plans/SKILL.md +1 -1
  357. package/package.json +1 -1
  358. package/src/cli/index.js +1 -0
  359. package/src/cli/setup.js +9 -0
  360. package/src/cli/skill-index.js +209 -0
  361. package/src/cli/skill.js +4 -0
  362. package/bundled/upstream/anthropic-skills/skills/claude-api/python/agent-sdk/README.md +0 -355
  363. package/bundled/upstream/anthropic-skills/skills/claude-api/python/agent-sdk/patterns.md +0 -359
  364. package/bundled/upstream/anthropic-skills/skills/claude-api/typescript/agent-sdk/README.md +0 -297
  365. package/bundled/upstream/anthropic-skills/skills/claude-api/typescript/agent-sdk/patterns.md +0 -209
  366. package/bundled/upstream/ecc/commands/agent-sort.md +0 -23
  367. package/bundled/upstream/ecc/commands/claw.md +0 -23
  368. package/bundled/upstream/ecc/commands/context-budget.md +0 -23
  369. package/bundled/upstream/ecc/commands/devfleet.md +0 -23
  370. package/bundled/upstream/ecc/commands/docs.md +0 -23
  371. package/bundled/upstream/ecc/commands/e2e.md +0 -268
  372. package/bundled/upstream/ecc/commands/eval.md +0 -23
  373. package/bundled/upstream/ecc/commands/orchestrate.md +0 -135
  374. package/bundled/upstream/ecc/commands/prompt-optimize.md +0 -23
  375. package/bundled/upstream/ecc/commands/rules-distill.md +0 -20
  376. package/bundled/upstream/ecc/commands/tdd.md +0 -231
  377. package/bundled/upstream/ecc/commands/verify.md +0 -23
  378. package/bundled/upstream/ecc/skills/claude-api/SKILL.md +0 -337
  379. package/bundled/upstream/ecc/skills/frontend-design/SKILL.md +0 -145
  380. package/bundled/upstream/superpowers/agents/code-reviewer.md +0 -48
  381. package/bundled/upstream/superpowers/commands/brainstorm.md +0 -5
  382. package/bundled/upstream/superpowers/commands/execute-plan.md +0 -5
  383. package/bundled/upstream/superpowers/commands/write-plan.md +0 -5
@@ -20,6 +20,10 @@ Use this skill when:
20
20
 
21
21
  ```
22
22
  ┌─────────────────────────────────────────────┐
23
+ │ 0. TOOL AVAILABILITY PREFLIGHT │
24
+ │ Check search channels before relying on │
25
+ │ them; report skipped channels honestly │
26
+ ├─────────────────────────────────────────────┤
23
27
  │ 1. NEED ANALYSIS │
24
28
  │ Define what functionality is needed │
25
29
  │ Identify language/framework constraints │
@@ -57,6 +61,19 @@ Use this skill when:
57
61
 
58
62
  ## How to Use
59
63
 
64
+ ### Step 0: Tool Availability Preflight
65
+
66
+ This is agent guidance, not an executable setup script. Check only the channels
67
+ that are relevant to the task and project in front of you.
68
+
69
+ | Channel | Check | If missing |
70
+ |---------|-------|------------|
71
+ | Repository search | `rg --files` and targeted `rg` queries | State that only visible files were inspected |
72
+ | Package registry | `npm --version`, `python -m pip --version`, or project package manager | Use web/docs search and avoid claiming registry coverage |
73
+ | GitHub CLI | `gh auth status` | Use public web or local git history only |
74
+ | MCP/docs tools | Available tool list or local MCP config | Fall back to official docs/web search |
75
+ | Skills directory | `ls ~/.claude/skills ~/.codex/skills` where applicable | Say no local skill catalog was available |
76
+
60
77
  ### Quick Mode (inline)
61
78
 
62
79
  Before writing a utility or adding functionality, mentally run through:
@@ -72,7 +89,7 @@ Before writing a utility or adding functionality, mentally run through:
72
89
  For non-trivial functionality, launch the researcher agent:
73
90
 
74
91
  ```
75
- Task(subagent_type="general-purpose", prompt="
92
+ Agent(subagent_type="general-purpose", prompt="
76
93
  Research existing tools for: [DESCRIPTION]
77
94
  Language/framework: [LANG]
78
95
  Constraints: [ANY]
@@ -82,6 +99,9 @@ Task(subagent_type="general-purpose", prompt="
82
99
  ")
83
100
  ```
84
101
 
102
+ Older Claude Code docs may call this `Task(...)`; use the current agent/subagent
103
+ tool name exposed by the active harness.
104
+
85
105
  ## Search Shortcuts by Category
86
106
 
87
107
  ### Development Tooling
@@ -96,7 +116,7 @@ Task(subagent_type="general-purpose", prompt="
96
116
  - Document processing → `unstructured`, `pdfplumber`, `mammoth`
97
117
 
98
118
  ### Data & APIs
99
- - HTTP clients → `httpx` (Python), `ky`/`got` (Node)
119
+ - HTTP clients → `httpx` (Python), `ky`/`undici` (Node)
100
120
  - Validation → `zod` (TS), `pydantic` (Python)
101
121
  - Database → Check for MCP servers first
102
122
 
@@ -157,5 +177,6 @@ Result: 1 package + 1 schema file, no custom validation logic
157
177
 
158
178
  - **Jumping to code**: Writing a utility without checking if one exists
159
179
  - **Ignoring MCP**: Not checking if an MCP server already provides the capability
180
+ - **Silent skipping**: Reporting "nothing found" when a search channel was unavailable
160
181
  - **Over-customizing**: Wrapping a library so heavily it loses its benefits
161
182
  - **Dependency bloat**: Installing a massive package for one small feature
@@ -208,6 +208,11 @@ function renderUserContent(html: string) {
208
208
  ```
209
209
 
210
210
  #### Content Security Policy
211
+
212
+ Start strict and loosen only with a documented removal plan. Do not default to
213
+ `'unsafe-inline'` or `'unsafe-eval'`; they neutralize much of CSP's protection
214
+ and should be treated as temporary compatibility debt.
215
+
211
216
  ```typescript
212
217
  // next.config.js
213
218
  const securityHeaders = [
@@ -215,8 +220,11 @@ const securityHeaders = [
215
220
  key: 'Content-Security-Policy',
216
221
  value: `
217
222
  default-src 'self';
218
- script-src 'self' 'unsafe-eval' 'unsafe-inline';
219
- style-src 'self' 'unsafe-inline';
223
+ base-uri 'self';
224
+ object-src 'none';
225
+ frame-ancestors 'none';
226
+ script-src 'self';
227
+ style-src 'self';
220
228
  img-src 'self' data: https:;
221
229
  font-src 'self';
222
230
  connect-src 'self' https://api.example.com;
@@ -15,6 +15,10 @@ from scripts.scenario_generator import Scenario
15
15
 
16
16
  SANDBOX_BASE = Path("/tmp/skill-comply-sandbox")
17
17
  ALLOWED_MODELS = frozenset({"haiku", "sonnet", "opus"})
18
+ # Shell builtins cannot be invoked via subprocess.run; cwd is already
19
+ # controlled by the cwd= keyword. Scenarios that include these in
20
+ # setup_commands (a common shell-style convention) must be tolerated.
21
+ SHELL_BUILTINS = frozenset({"cd", "pushd", "popd"})
18
22
 
19
23
 
20
24
  @dataclass(frozen=True)
@@ -53,9 +57,22 @@ def run_scenario(
53
57
  cwd=sandbox_dir,
54
58
  )
55
59
 
56
- if result.returncode != 0:
60
+ # claude -p returns rc=1 when --max-turns is reached, but the stream-json
61
+ # output is still complete and parseable. Treat this graceful termination
62
+ # as non-fatal so scenarios that hit the turn cap still produce usable
63
+ # observations.
64
+ nonfatal_max_turns = (
65
+ result.returncode == 1
66
+ and '"terminal_reason":"max_turns"' in result.stdout
67
+ )
68
+ if result.returncode != 0 and not nonfatal_max_turns:
69
+ # Include both stderr and stdout tails. claude -p often surfaces the
70
+ # actual failure context (model error JSON, partial stream-json) on
71
+ # stdout, while stderr carries generic transport / auth messages.
72
+ # Showing both dramatically reduces "rc=N: <empty>" debugging dead-ends.
57
73
  raise RuntimeError(
58
- f"claude -p failed (rc={result.returncode}): {result.stderr[:500]}"
74
+ f"claude -p failed (rc={result.returncode}): "
75
+ f"stderr={result.stderr[:500]!r} stdout_tail={result.stdout[-500:]!r}"
59
76
  )
60
77
 
61
78
  observations = _parse_stream_json(result.stdout)
@@ -86,7 +103,15 @@ def _setup_sandbox(sandbox_dir: Path, scenario: Scenario) -> None:
86
103
 
87
104
  for cmd in scenario.setup_commands:
88
105
  parts = shlex.split(cmd)
89
- subprocess.run(parts, cwd=sandbox_dir, capture_output=True)
106
+ if not parts or parts[0] in SHELL_BUILTINS:
107
+ # Shell builtins (cd/pushd/popd) cannot run as subprocess; skip.
108
+ continue
109
+ try:
110
+ subprocess.run(parts, cwd=sandbox_dir, capture_output=True)
111
+ except FileNotFoundError:
112
+ # Setup tool not installed in this environment; skip rather than
113
+ # crash the whole scenario. The compliance run continues.
114
+ continue
90
115
 
91
116
 
92
117
  def _parse_stream_json(stdout: str) -> list[ObservationEvent]:
@@ -0,0 +1,172 @@
1
+ """Tests for runner module — scenario execution + subprocess error handling."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import subprocess
6
+ from dataclasses import dataclass
7
+ from unittest.mock import MagicMock, patch
8
+
9
+ import pytest
10
+
11
+ from scripts.runner import _setup_sandbox, run_scenario
12
+
13
+
14
+ @dataclass(frozen=True)
15
+ class _FakeScenario:
16
+ """Minimal Scenario-like object for runner tests (avoids generator deps)."""
17
+
18
+ id: str
19
+ prompt: str = "do nothing"
20
+ setup_commands: tuple[str, ...] = ()
21
+
22
+
23
+ class TestSetupSandboxSkipsShellBuiltins:
24
+ """Setup commands containing shell builtins (cd/pushd/popd) must be skipped.
25
+
26
+ Regression: subprocess.run(["cd", ...]) raises FileNotFoundError because
27
+ cd is a shell builtin, not an external binary. Real-world scenarios often
28
+ include "cd subdir" in setup_commands assuming shell semantics, so the
29
+ runner must tolerate this rather than crashing the whole scenario.
30
+ """
31
+
32
+ def test_skips_cd(self, tmp_path):
33
+ scenario = _FakeScenario(
34
+ id="t1",
35
+ setup_commands=("cd subdir",),
36
+ )
37
+ called_args: list[list[str]] = []
38
+
39
+ def fake_run(args, **kwargs):
40
+ called_args.append(args)
41
+ return subprocess.CompletedProcess(args=args, returncode=0)
42
+
43
+ with patch("scripts.runner.subprocess.run", side_effect=fake_run):
44
+ _setup_sandbox(tmp_path, scenario)
45
+
46
+ # git init runs once; "cd subdir" must NOT be passed to subprocess
47
+ assert ["git", "init"] in called_args
48
+ assert ["cd", "subdir"] not in called_args
49
+
50
+ def test_skips_pushd_popd(self, tmp_path):
51
+ scenario = _FakeScenario(
52
+ id="t2",
53
+ setup_commands=("pushd dir", "popd"),
54
+ )
55
+ called_args: list[list[str]] = []
56
+
57
+ def fake_run(args, **kwargs):
58
+ called_args.append(args)
59
+ return subprocess.CompletedProcess(args=args, returncode=0)
60
+
61
+ with patch("scripts.runner.subprocess.run", side_effect=fake_run):
62
+ _setup_sandbox(tmp_path, scenario)
63
+
64
+ assert ["pushd", "dir"] not in called_args
65
+ assert ["popd"] not in called_args
66
+
67
+ def test_tolerates_missing_executable(self, tmp_path):
68
+ """A scenario referencing an unavailable tool must not crash setup."""
69
+ scenario = _FakeScenario(
70
+ id="t3",
71
+ setup_commands=("nonexistent-tool-xyz arg",),
72
+ )
73
+
74
+ def fake_run(args, **kwargs):
75
+ if args[0] == "nonexistent-tool-xyz":
76
+ raise FileNotFoundError(2, "No such file or directory")
77
+ return subprocess.CompletedProcess(args=args, returncode=0)
78
+
79
+ with patch("scripts.runner.subprocess.run", side_effect=fake_run):
80
+ # Must NOT raise — missing tools are skipped, not fatal
81
+ _setup_sandbox(tmp_path, scenario)
82
+
83
+ def test_real_commands_still_run(self, tmp_path):
84
+ """Skip logic must not break legitimate setup commands."""
85
+ scenario = _FakeScenario(
86
+ id="t4",
87
+ setup_commands=("touch file.txt", "cd ignored", "echo hi"),
88
+ )
89
+ called_args: list[list[str]] = []
90
+
91
+ def fake_run(args, **kwargs):
92
+ called_args.append(args)
93
+ return subprocess.CompletedProcess(args=args, returncode=0)
94
+
95
+ with patch("scripts.runner.subprocess.run", side_effect=fake_run):
96
+ _setup_sandbox(tmp_path, scenario)
97
+
98
+ # Real commands present, cd absent
99
+ assert ["touch", "file.txt"] in called_args
100
+ assert ["echo", "hi"] in called_args
101
+ assert ["cd", "ignored"] not in called_args
102
+
103
+
104
+ class TestRunScenarioMaxTurnsTermination:
105
+ """rc=1 with terminal_reason=max_turns is graceful termination, not failure.
106
+
107
+ claude -p returns rc=1 when --max-turns is reached, but the stream-json
108
+ output is still valid. Treating this as RuntimeError aborts scenarios
109
+ that would have produced useful observations. Detect the marker in stdout
110
+ and downgrade rc=1 + max_turns to non-fatal.
111
+ """
112
+
113
+ def test_rc1_with_max_turns_marker_returns_normally(self, tmp_path, monkeypatch):
114
+ scenario = _FakeScenario(id="mt1", prompt="long task", setup_commands=())
115
+
116
+ # Skip sandbox setup side effects
117
+ monkeypatch.setattr("scripts.runner._setup_sandbox", lambda *a, **kw: None)
118
+
119
+ max_turns_stdout = (
120
+ '{"type":"system","subtype":"init","session_id":"s1"}\n'
121
+ '{"type":"result","terminal_reason":"max_turns"}\n'
122
+ )
123
+
124
+ fake_result = subprocess.CompletedProcess(
125
+ args=["claude"], returncode=1, stdout=max_turns_stdout, stderr=""
126
+ )
127
+
128
+ with patch("scripts.runner.subprocess.run", return_value=fake_result):
129
+ # Must NOT raise — max_turns is graceful termination
130
+ run_scenario(scenario, model="haiku")
131
+
132
+ def test_rc1_without_max_turns_marker_still_raises(self, tmp_path, monkeypatch):
133
+ """Real failures (rc≠0 with no max_turns marker) must still raise."""
134
+ scenario = _FakeScenario(id="mt2", prompt="oops", setup_commands=())
135
+ monkeypatch.setattr("scripts.runner._setup_sandbox", lambda *a, **kw: None)
136
+
137
+ fake_result = subprocess.CompletedProcess(
138
+ args=["claude"], returncode=1, stdout="", stderr="auth error"
139
+ )
140
+
141
+ with patch("scripts.runner.subprocess.run", return_value=fake_result):
142
+ with pytest.raises(RuntimeError, match="claude -p failed"):
143
+ run_scenario(scenario, model="haiku")
144
+
145
+
146
+ class TestRunScenarioErrorIncludesStdoutTail:
147
+ """Error messages must include stdout tail, not only stderr.
148
+
149
+ When claude -p fails inside an LLM call, useful diagnostic context often
150
+ appears in stdout (partial stream-json events, model error JSON), not
151
+ stderr. Including stdout tail in the RuntimeError message dramatically
152
+ improves debug-ability without adding any new dependency.
153
+ """
154
+
155
+ def test_error_message_contains_stdout_tail(self, tmp_path, monkeypatch):
156
+ scenario = _FakeScenario(id="e1", prompt="x", setup_commands=())
157
+ monkeypatch.setattr("scripts.runner._setup_sandbox", lambda *a, **kw: None)
158
+
159
+ diagnostic_marker = "DIAG_STDOUT_MARKER_xyz123"
160
+ fake_result = subprocess.CompletedProcess(
161
+ args=["claude"],
162
+ returncode=2,
163
+ stdout=f"some context {diagnostic_marker} more text",
164
+ stderr="generic error",
165
+ )
166
+
167
+ with patch("scripts.runner.subprocess.run", return_value=fake_result):
168
+ with pytest.raises(RuntimeError) as excinfo:
169
+ run_scenario(scenario, model="haiku")
170
+
171
+ # Stdout marker MUST appear in the error message
172
+ assert diagnostic_marker in str(excinfo.value)
@@ -0,0 +1,140 @@
1
+ ---
2
+ name: skill-scout
3
+ description: Search existing local, marketplace, GitHub, and web skill sources before creating a new skill. Use when the user wants to create, build, fork, or find a skill for a workflow.
4
+ origin: community
5
+ ---
6
+
7
+ # Skill Scout
8
+
9
+ Use this skill before creating a new skill. The goal is to avoid duplicating
10
+ existing community or marketplace work, while still vetting anything external
11
+ before adoption.
12
+
13
+ Source: salvaged from stale community PR #1232 by `redminwang`.
14
+
15
+ ## When to Use
16
+
17
+ - The user says "create a skill", "build a skill", "make a skill", or "new
18
+ skill".
19
+ - The user asks "is there a skill for X?" or "does a skill exist that does Y?"
20
+ - The user describes a workflow and you are about to suggest creating a new
21
+ skill.
22
+ - The user wants to fork or extend an existing skill.
23
+
24
+ If the user explicitly says to skip search or create from scratch, acknowledge
25
+ that and proceed with the requested creation workflow.
26
+
27
+ ## How It Works
28
+
29
+ ### Step 1 - Capture Intent
30
+
31
+ Extract:
32
+
33
+ - The task the skill should perform.
34
+ - The trigger conditions for using it.
35
+ - The domain, tools, frameworks, or data sources involved.
36
+ - Three to five search keywords plus useful synonyms.
37
+
38
+ ### Step 2 - Search Local Sources
39
+
40
+ Search installed and marketplace skill names first. Local sources are preferred
41
+ because they are already part of the user's environment.
42
+
43
+ ```bash
44
+ find ~/.claude/skills -maxdepth 2 -name SKILL.md 2>/dev/null | grep -iE "keyword|synonym"
45
+ find ~/.claude/plugins/marketplaces -path '*/skills/*/SKILL.md' 2>/dev/null | grep -iE "keyword|synonym"
46
+ ```
47
+
48
+ Then search frontmatter descriptions:
49
+
50
+ ```bash
51
+ grep -RilE "keyword|synonym" ~/.claude/skills ~/.claude/plugins/marketplaces 2>/dev/null
52
+ ```
53
+
54
+ ### Step 3 - Search Remote Sources
55
+
56
+ Use available GitHub and web search tools. Prefer concise queries:
57
+
58
+ ```bash
59
+ gh search repos "claude code skill keyword" --limit 10 --sort stars
60
+ gh search code "name: keyword" --filename SKILL.md --limit 10
61
+ ```
62
+
63
+ For web search, use at most three targeted queries such as:
64
+
65
+ ```text
66
+ "claude code skill" keyword
67
+ "SKILL.md" keyword
68
+ "everything-claude-code" keyword
69
+ ```
70
+
71
+ ### Step 4 - Vet External Matches
72
+
73
+ Before recommending any external skill for adoption or forking:
74
+
75
+ - Read the `SKILL.md` frontmatter and instructions.
76
+ - Look for unexpected shell commands, file writes, network calls, credential
77
+ handling, or package installs.
78
+ - Check whether the repository appears maintained.
79
+ - Prefer copying into a fresh local branch and reviewing the diff over editing
80
+ marketplace originals.
81
+
82
+ ### Step 5 - Rank Results
83
+
84
+ Rank candidates by:
85
+
86
+ 1. Exact keyword match in the skill name.
87
+ 2. Keyword or synonym match in description.
88
+ 3. Local installed or marketplace source.
89
+ 4. Maintained GitHub source with recent activity.
90
+ 5. Web-only mention.
91
+
92
+ Cap the final list at 10 results.
93
+
94
+ ### Step 6 - Present Decision Options
95
+
96
+ Give the user a short table:
97
+
98
+ | Option | Meaning |
99
+ | --- | --- |
100
+ | Use existing | Invoke or install a matching skill as-is. |
101
+ | Fork or extend | Copy the closest skill and modify it. |
102
+ | Create fresh | Build a new skill after confirming no close match exists. |
103
+
104
+ Only create a new skill after the user chooses that path or after the search
105
+ finds no close match.
106
+
107
+ ## Examples
108
+
109
+ ### Result Table
110
+
111
+ ```markdown
112
+ | # | Skill | Source | Why it matches | Gap |
113
+ | --- | --- | --- | --- | --- |
114
+ | 1 | article-writing | Local ECC | Drafts articles and guides | Not focused on release notes |
115
+ | 2 | content-engine | Local ECC | Multi-format content workflow | Heavier than needed |
116
+ | 3 | blog-writer | GitHub | Blog writing skill with recent commits | Needs security review |
117
+ ```
118
+
119
+ ### User-Facing Summary
120
+
121
+ ```markdown
122
+ I found two close local matches and one external candidate. The closest fit is
123
+ `article-writing`; it covers drafting and revision, but it does not include the
124
+ release-note checklist you asked for. I can either use it as-is, fork it into a
125
+ release-note variant, or create a fresh skill.
126
+ ```
127
+
128
+ ## Anti-Patterns
129
+
130
+ - Do not jump directly to new skill creation when a search is reasonable.
131
+ - Do not install external skills without reading them first.
132
+ - Do not present a long unranked list of weak matches.
133
+ - Do not treat web-only mentions as trusted sources.
134
+ - Do not edit installed marketplace originals in place.
135
+
136
+ ## Related
137
+
138
+ - `search-first` - General search-before-building workflow.
139
+ - `skill-stocktake` - Audit installed skills for health, duplicates, and gaps.
140
+ - `agent-sort` - Categorize and organize existing agents and skills.
@@ -1,4 +1,5 @@
1
1
  ---
2
+ name: skill-stocktake
2
3
  description: "Use when auditing Claude skills and commands for quality. Supports Quick Scan (changed skills only) and Full Stocktake modes with sequential subagent batch evaluation."
3
4
  origin: ECC
4
5
  ---
@@ -46,11 +46,11 @@ Add to your `~/.claude/settings.json`:
46
46
  "PreToolUse": [
47
47
  {
48
48
  "matcher": "Edit",
49
- "hooks": [{ "type": "command", "command": "node ~/.claude/skills/strategic-compact/suggest-compact.js" }]
49
+ "hooks": [{ "type": "command", "command": "node ~/.claude/scripts/hooks/suggest-compact.js" }]
50
50
  },
51
51
  {
52
52
  "matcher": "Write",
53
- "hooks": [{ "type": "command", "command": "node ~/.claude/skills/strategic-compact/suggest-compact.js" }]
53
+ "hooks": [{ "type": "command", "command": "node ~/.claude/scripts/hooks/suggest-compact.js" }]
54
54
  }
55
55
  ]
56
56
  }
@@ -0,0 +1,203 @@
1
+ ---
2
+ name: tinystruct-patterns
3
+ description: Expert guidance for developing with the tinystruct Java framework. Use when working on the tinystruct codebase or any project built on tinystruct — including creating Application classes, @Action-mapped routes, unit tests, ActionRegistry, HTTP/CLI dual-mode handling, the built-in HTTP server, the event system, JSON with Builder/Builders, database persistence with AbstractData, POJO generation, Server-Sent Events (SSE), file uploads, and outbound HTTP networking.
4
+ origin: ECC
5
+ ---
6
+
7
+ # tinystruct Development Patterns
8
+
9
+ Architecture and implementation patterns for building modules with the **tinystruct** Java framework – a lightweight, high-performance framework that treats CLI and HTTP as equal citizens, requiring no `main()` method and minimal configuration.
10
+
11
+ ## Core Principle
12
+
13
+ **CLI and HTTP are equal citizens.** Every method annotated with `@Action` should ideally be runnable from both a terminal and a web browser without modification. This "dual-mode" capability is the core design philosophy of tinystruct.
14
+
15
+ ## When to Activate
16
+
17
+ ### When to Use
18
+
19
+ - Creating new `Application` modules by extending `AbstractApplication`.
20
+ - Defining routes and command-line actions using `@Action`.
21
+ - Handling per-request state via `Context`.
22
+ - Performing JSON serialization using the native `Builder` and `Builders` components.
23
+ - Working with database persistence via `AbstractData` POJOs.
24
+ - Generating POJOs from database tables using the `generate` command.
25
+ - Implementing Server-Sent Events (SSE) for real-time push.
26
+ - Handling file uploads via multipart data.
27
+ - Making outbound HTTP requests with `URLRequest` and `HTTPHandler`.
28
+ - Configuring database connections or system settings in `application.properties`.
29
+ - Debugging routing conflicts (Actions) or CLI argument parsing.
30
+
31
+ ## How It Works
32
+
33
+ The tinystruct framework treats any method annotated with `@Action` as a routable endpoint for both terminal and web environments. Applications are created by extending `AbstractApplication`, which provides core lifecycle hooks like `init()` and access to the request `Context`.
34
+
35
+ Routing is handled by the `ActionRegistry`, which automatically maps path segments to method arguments and injects dependencies. For data-only services, the native `Builder` and `Builders` components should be used for JSON serialization to maintain a zero-dependency footprint. The database layer uses `AbstractData` POJOs paired with XML mapping files for CRUD operations without external ORM libraries.
36
+
37
+ ## Examples
38
+
39
+ ### Basic Application (MyService)
40
+ ```java
41
+ public class MyService extends AbstractApplication {
42
+ @Override
43
+ public void init() {
44
+ this.setTemplateRequired(false); // Disable .view lookup for data/API apps
45
+ }
46
+
47
+ @Override public String version() { return "1.0.0"; }
48
+
49
+ @Action("greet")
50
+ public String greet() {
51
+ return "Hello from tinystruct!";
52
+ }
53
+
54
+ // Path parameter: GET /?q=greet/James OR bin/dispatcher greet/James
55
+ @Action("greet")
56
+ public String greet(String name) {
57
+ return "Hello, " + name + "!";
58
+ }
59
+ }
60
+ ```
61
+
62
+ ### HTTP Mode Disambiguation (login)
63
+ ```java
64
+ @Action(value = "login", mode = Mode.HTTP_POST)
65
+ public String doLogin(Request<?, ?> request) throws ApplicationException {
66
+ request.getSession().setAttribute("userId", "42");
67
+ return "Logged in";
68
+ }
69
+ ```
70
+
71
+ ### Native JSON Data Handling (Builder + Builders)
72
+ ```java
73
+ import org.tinystruct.data.component.Builder;
74
+ import org.tinystruct.data.component.Builders;
75
+
76
+ @Action("api/data")
77
+ public String getData() throws ApplicationException {
78
+ Builders dataList = new Builders();
79
+ Builder item = new Builder();
80
+ item.put("id", 1);
81
+ item.put("name", "James");
82
+ dataList.add(item);
83
+
84
+ Builder response = new Builder();
85
+ response.put("status", "success");
86
+ response.put("data", dataList);
87
+ return response.toString(); // {"status":"success","data":[{"id":1,"name":"James"}]}
88
+ }
89
+ ```
90
+
91
+ ### SSE (Server-Sent Events)
92
+ ```java
93
+ import org.tinystruct.http.SSEPushManager;
94
+
95
+ @Action("sse/connect")
96
+ public String connect() {
97
+ return "{\"type\":\"connect\",\"message\":\"Connected to SSE\"}";
98
+ }
99
+
100
+ // Push to a specific client
101
+ String sessionId = getContext().getId();
102
+ Builder msg = new Builder();
103
+ msg.put("text", "Hello, user!");
104
+ SSEPushManager.getInstance().push(sessionId, msg);
105
+
106
+ // Broadcast to all
107
+ // Broadcast to all
108
+ SSEPushManager.getInstance().broadcast(msg);
109
+ ```
110
+
111
+ ### File Upload
112
+ ```java
113
+ import org.tinystruct.data.FileEntity;
114
+
115
+ @Action(value = "upload", mode = Mode.HTTP_POST)
116
+ public String upload(Request<?, ?> request) throws ApplicationException {
117
+ List<FileEntity> files = request.getAttachments();
118
+ if (files != null) {
119
+ for (FileEntity file : files) {
120
+ System.out.println("Uploaded: " + file.getFilename());
121
+ }
122
+ }
123
+ return "Upload OK";
124
+ }
125
+ ```
126
+
127
+ ## Configuration
128
+
129
+ Settings are managed in `src/main/resources/application.properties`.
130
+
131
+ ```properties
132
+ # Database
133
+ driver=org.h2.Driver
134
+ database.url=jdbc:h2:~/mydb
135
+ database.user=sa
136
+ database.password=
137
+
138
+ # Server
139
+ default.home.page=hello
140
+ server.port=8080
141
+
142
+ # Locale
143
+ default.language=en_US
144
+
145
+ # Session (Redis for clustered environments)
146
+ # default.session.repository=org.tinystruct.http.RedisSessionRepository
147
+ # redis.host=127.0.0.1
148
+ # redis.port=6379
149
+ ```
150
+
151
+ Access config values in your application:
152
+ ```java
153
+ String port = this.getConfiguration("server.port");
154
+ ```
155
+
156
+ ## Red Flags & Anti-patterns
157
+
158
+ | Symptom | Correct Pattern |
159
+ |---|---|
160
+ | Importing `com.google.gson` or `com.fasterxml.jackson` | Use `org.tinystruct.data.component.Builder` / `Builders`. |
161
+ | Using `List<Builder>` for JSON arrays | Use `Builders` to avoid generic type erasure issues. |
162
+ | `ApplicationRuntimeException: template not found` | Call `setTemplateRequired(false)` in `init()` for API-only apps. |
163
+ | Annotating `private` methods with `@Action` | Actions must be `public` to be registered by the framework. |
164
+ | Hardcoding `main(String[] args)` in apps | Use `bin/dispatcher` as the entry point for all modules. |
165
+ | Manual `ActionRegistry` registration | Prefer the `@Action` annotation for automatic discovery. |
166
+ | Action not found at runtime | Ensure class is imported via `--import` or listed in `application.properties`. |
167
+ | CLI arg not visible | Pass with `--key value`; access via `getContext().getAttribute("--key")`. |
168
+ | Two methods same path, wrong one fires | Set explicit `mode` (e.g., `HTTP_GET` vs `HTTP_POST`) to disambiguate. |
169
+
170
+ ## Best Practices
171
+
172
+ 1. **Granular Applications**: Break logic into smaller, focused applications rather than one monolithic class.
173
+ 2. **Setup in `init()`**: Leverage `init()` for setup (config, DB) rather than the constructor. Do NOT call `setAction()` — use `@Action` annotation.
174
+ 3. **Mode Awareness**: Use the `Mode` parameter in `@Action` to restrict sensitive operations to `CLI` only or specific HTTP methods.
175
+ 4. **Context over Params**: For optional CLI flags, use `getContext().getAttribute("--flag")` rather than adding parameters to the method signature.
176
+ 5. **Asynchronous Events**: For heavy tasks triggered by events, use `CompletableFuture.runAsync()` inside the event handler.
177
+
178
+ ## Technical Reference
179
+
180
+ Detailed guides are available in the `references/` directory:
181
+
182
+ - [Architecture & Config](references/architecture.md) — Abstractions, Package Map, Properties
183
+ - [Routing & @Action](references/routing.md) — Annotation details, Modes, Parameters
184
+ - [Data Handling](references/data-handling.md) — Builder, Builders, JSON serialization & parsing
185
+ - [Database Persistence](references/database.md) — AbstractData POJOs, CRUD, mapping XML, POJO generation
186
+ - [System & Usage](references/system-usage.md) — Context, Sessions, SSE, File Uploads, Events, Networking
187
+ - [Testing Patterns](references/testing.md) — JUnit 5 unit and HTTP integration testing
188
+
189
+ ## Reference Source Files (Internal)
190
+
191
+ - `src/main/java/org/tinystruct/AbstractApplication.java` — Core base class with lifecycle hooks
192
+ - `src/main/java/org/tinystruct/system/annotation/Action.java` — Annotation & Modes
193
+ - `src/main/java/org/tinystruct/application/ActionRegistry.java` — Routing Engine
194
+ - `src/main/java/org/tinystruct/data/component/Builder.java` — JSON object serializer
195
+ - `src/main/java/org/tinystruct/data/component/Builders.java` — JSON array serializer
196
+ - `src/main/java/org/tinystruct/data/component/AbstractData.java` — Base POJO class with CRUD
197
+ - `src/main/java/org/tinystruct/data/Mapping.java` — Mapping XML parser
198
+ - `src/main/java/org/tinystruct/data/tools/MySQLGenerator.java` — POJO generator reference
199
+ - `src/main/java/org/tinystruct/data/component/FieldType.java` — SQL-to-Java type mappings
200
+ - `src/main/java/org/tinystruct/data/component/Condition.java` — Fluent SQL query builder
201
+ - `src/main/java/org/tinystruct/http/SSEPushManager.java` — SSE connection management
202
+ - `src/test/java/org/tinystruct/application/ActionRegistryTest.java` — Registry test examples
203
+ - `src/test/java/org/tinystruct/system/HttpServerHttpModeTest.java` — HTTP integration test patterns