@rubix0270/arboris 1.0.1 → 1.0.3

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 (451) hide show
  1. package/package.json +8 -19
  2. package/run.mjs +10 -0
  3. package/dist/cli.mjs +0 -382
  4. package/manifest.json +0 -323
  5. package/prisma/skills/accessibility/SKILL.md +0 -147
  6. package/prisma/skills/agent-architecture-audit/SKILL.md +0 -257
  7. package/prisma/skills/agent-eval/SKILL.md +0 -146
  8. package/prisma/skills/agent-harness-construction/SKILL.md +0 -74
  9. package/prisma/skills/agent-introspection-debugging/SKILL.md +0 -154
  10. package/prisma/skills/agent-payment-x402/SKILL.md +0 -225
  11. package/prisma/skills/agent-self-evaluation/SKILL.md +0 -182
  12. package/prisma/skills/agent-self-evaluation/examples/high-score-example.md +0 -87
  13. package/prisma/skills/agent-self-evaluation/examples/low-score-example.md +0 -86
  14. package/prisma/skills/agent-self-evaluation/references/evaluation-criteria.md +0 -71
  15. package/prisma/skills/agent-self-evaluation/references/hook-integration.md +0 -64
  16. package/prisma/skills/agent-self-evaluation/scripts/evaluate.py +0 -408
  17. package/prisma/skills/agent-self-evaluation/templates/evaluation-report.md +0 -86
  18. package/prisma/skills/agent-sort/SKILL.md +0 -216
  19. package/prisma/skills/agentic-engineering/SKILL.md +0 -64
  20. package/prisma/skills/agentic-os/SKILL.md +0 -388
  21. package/prisma/skills/ai-first-engineering/SKILL.md +0 -52
  22. package/prisma/skills/ai-regression-testing/SKILL.md +0 -386
  23. package/prisma/skills/android-clean-architecture/SKILL.md +0 -340
  24. package/prisma/skills/angular-developer/SKILL.md +0 -155
  25. package/prisma/skills/angular-developer/references/angular-animations.md +0 -160
  26. package/prisma/skills/angular-developer/references/angular-aria.md +0 -410
  27. package/prisma/skills/angular-developer/references/cli.md +0 -86
  28. package/prisma/skills/angular-developer/references/component-harnesses.md +0 -59
  29. package/prisma/skills/angular-developer/references/component-styling.md +0 -91
  30. package/prisma/skills/angular-developer/references/components.md +0 -117
  31. package/prisma/skills/angular-developer/references/creating-services.md +0 -97
  32. package/prisma/skills/angular-developer/references/data-resolvers.md +0 -69
  33. package/prisma/skills/angular-developer/references/define-routes.md +0 -67
  34. package/prisma/skills/angular-developer/references/defining-providers.md +0 -72
  35. package/prisma/skills/angular-developer/references/di-fundamentals.md +0 -120
  36. package/prisma/skills/angular-developer/references/e2e-testing.md +0 -56
  37. package/prisma/skills/angular-developer/references/effects.md +0 -83
  38. package/prisma/skills/angular-developer/references/hierarchical-injectors.md +0 -43
  39. package/prisma/skills/angular-developer/references/host-elements.md +0 -80
  40. package/prisma/skills/angular-developer/references/injection-context.md +0 -63
  41. package/prisma/skills/angular-developer/references/inputs.md +0 -101
  42. package/prisma/skills/angular-developer/references/linked-signal.md +0 -59
  43. package/prisma/skills/angular-developer/references/loading-strategies.md +0 -61
  44. package/prisma/skills/angular-developer/references/mcp.md +0 -108
  45. package/prisma/skills/angular-developer/references/navigate-to-routes.md +0 -69
  46. package/prisma/skills/angular-developer/references/outputs.md +0 -86
  47. package/prisma/skills/angular-developer/references/reactive-forms.md +0 -122
  48. package/prisma/skills/angular-developer/references/rendering-strategies.md +0 -44
  49. package/prisma/skills/angular-developer/references/resource.md +0 -77
  50. package/prisma/skills/angular-developer/references/route-animations.md +0 -56
  51. package/prisma/skills/angular-developer/references/route-guards.md +0 -52
  52. package/prisma/skills/angular-developer/references/router-lifecycle.md +0 -45
  53. package/prisma/skills/angular-developer/references/router-testing.md +0 -87
  54. package/prisma/skills/angular-developer/references/show-routes-with-outlets.md +0 -68
  55. package/prisma/skills/angular-developer/references/signal-forms.md +0 -795
  56. package/prisma/skills/angular-developer/references/signals-overview.md +0 -94
  57. package/prisma/skills/angular-developer/references/tailwind-css.md +0 -69
  58. package/prisma/skills/angular-developer/references/template-driven-forms.md +0 -114
  59. package/prisma/skills/angular-developer/references/testing-fundamentals.md +0 -65
  60. package/prisma/skills/api-connector-builder/SKILL.md +0 -121
  61. package/prisma/skills/api-design/SKILL.md +0 -524
  62. package/prisma/skills/architecture-decision-records/SKILL.md +0 -180
  63. package/prisma/skills/article-writing/SKILL.md +0 -80
  64. package/prisma/skills/automation-audit-ops/SKILL.md +0 -143
  65. package/prisma/skills/autonomous-agent-harness/SKILL.md +0 -274
  66. package/prisma/skills/autonomous-loops/SKILL.md +0 -611
  67. package/prisma/skills/backend-patterns/SKILL.md +0 -562
  68. package/prisma/skills/benchmark/SKILL.md +0 -94
  69. package/prisma/skills/benchmark-methodology/SKILL.md +0 -190
  70. package/prisma/skills/benchmark-optimization-loop/SKILL.md +0 -70
  71. package/prisma/skills/blender-motion-state-inspection/SKILL.md +0 -165
  72. package/prisma/skills/blueprint/SKILL.md +0 -106
  73. package/prisma/skills/brand-discovery/SKILL.md +0 -145
  74. package/prisma/skills/brand-discovery/references/10_purpose-why.md +0 -40
  75. package/prisma/skills/brand-discovery/references/20_positioning.md +0 -44
  76. package/prisma/skills/brand-discovery/references/30_audience-niche.md +0 -52
  77. package/prisma/skills/brand-discovery/references/40_personality-archetype.md +0 -57
  78. package/prisma/skills/brand-discovery/references/50_voice-tone.md +0 -59
  79. package/prisma/skills/brand-discovery/references/60_narrative-story.md +0 -50
  80. package/prisma/skills/brand-discovery/references/70_founder-tension.md +0 -49
  81. package/prisma/skills/brand-discovery/references/90_SYNTHESIS.md +0 -133
  82. package/prisma/skills/brand-voice/SKILL.md +0 -98
  83. package/prisma/skills/brand-voice/references/voice-profile-schema.md +0 -55
  84. package/prisma/skills/browser-qa/SKILL.md +0 -105
  85. package/prisma/skills/bun-runtime/SKILL.md +0 -85
  86. package/prisma/skills/canary-watch/SKILL.md +0 -108
  87. package/prisma/skills/carrier-relationship-management/SKILL.md +0 -212
  88. package/prisma/skills/cisco-ios-patterns/SKILL.md +0 -164
  89. package/prisma/skills/ck/SKILL.md +0 -148
  90. package/prisma/skills/ck/commands/forget.mjs +0 -44
  91. package/prisma/skills/ck/commands/info.mjs +0 -24
  92. package/prisma/skills/ck/commands/init.mjs +0 -143
  93. package/prisma/skills/ck/commands/list.mjs +0 -40
  94. package/prisma/skills/ck/commands/migrate.mjs +0 -202
  95. package/prisma/skills/ck/commands/resume.mjs +0 -36
  96. package/prisma/skills/ck/commands/save.mjs +0 -210
  97. package/prisma/skills/ck/commands/shared.mjs +0 -387
  98. package/prisma/skills/ck/hooks/session-start.mjs +0 -224
  99. package/prisma/skills/claude-devfleet/SKILL.md +0 -112
  100. package/prisma/skills/click-path-audit/SKILL.md +0 -245
  101. package/prisma/skills/clickhouse-io/SKILL.md +0 -440
  102. package/prisma/skills/code-tour/SKILL.md +0 -254
  103. package/prisma/skills/codebase-onboarding/SKILL.md +0 -234
  104. package/prisma/skills/codehealth-mcp/SKILL.md +0 -167
  105. package/prisma/skills/coding-standards/SKILL.md +0 -551
  106. package/prisma/skills/competitive-platform-analysis/SKILL.md +0 -214
  107. package/prisma/skills/competitive-report-structure/SKILL.md +0 -162
  108. package/prisma/skills/compose-multiplatform-patterns/SKILL.md +0 -300
  109. package/prisma/skills/config-gc/SKILL.md +0 -120
  110. package/prisma/skills/configure-ecc/SKILL.md +0 -385
  111. package/prisma/skills/connections-optimizer/SKILL.md +0 -190
  112. package/prisma/skills/content-engine/SKILL.md +0 -132
  113. package/prisma/skills/content-hash-cache-pattern/SKILL.md +0 -162
  114. package/prisma/skills/context-budget/SKILL.md +0 -136
  115. package/prisma/skills/continuous-agent-loop/SKILL.md +0 -46
  116. package/prisma/skills/continuous-learning/SKILL.md +0 -132
  117. package/prisma/skills/continuous-learning/config.json +0 -18
  118. package/prisma/skills/continuous-learning/evaluate-session.sh +0 -69
  119. package/prisma/skills/continuous-learning-v2/SKILL.md +0 -361
  120. package/prisma/skills/continuous-learning-v2/agents/observer-loop.sh +0 -359
  121. package/prisma/skills/continuous-learning-v2/agents/observer.md +0 -189
  122. package/prisma/skills/continuous-learning-v2/agents/session-guardian.sh +0 -150
  123. package/prisma/skills/continuous-learning-v2/agents/start-observer.sh +0 -248
  124. package/prisma/skills/continuous-learning-v2/config.json +0 -8
  125. package/prisma/skills/continuous-learning-v2/hooks/observe.sh +0 -585
  126. package/prisma/skills/continuous-learning-v2/scripts/detect-project.sh +0 -322
  127. package/prisma/skills/continuous-learning-v2/scripts/instinct-cli.py +0 -1956
  128. package/prisma/skills/continuous-learning-v2/scripts/lib/homunculus-dir.sh +0 -31
  129. package/prisma/skills/continuous-learning-v2/scripts/migrate-homunculus.sh +0 -68
  130. package/prisma/skills/continuous-learning-v2/scripts/test_parse_instinct.py +0 -1421
  131. package/prisma/skills/cost-aware-llm-pipeline/SKILL.md +0 -184
  132. package/prisma/skills/cost-tracking/SKILL.md +0 -97
  133. package/prisma/skills/council/SKILL.md +0 -204
  134. package/prisma/skills/cpp-coding-standards/SKILL.md +0 -724
  135. package/prisma/skills/cpp-testing/SKILL.md +0 -325
  136. package/prisma/skills/crosspost/SKILL.md +0 -112
  137. package/prisma/skills/csharp-testing/SKILL.md +0 -322
  138. package/prisma/skills/customer-billing-ops/SKILL.md +0 -141
  139. package/prisma/skills/customs-trade-compliance/SKILL.md +0 -263
  140. package/prisma/skills/dart-flutter-patterns/SKILL.md +0 -564
  141. package/prisma/skills/dashboard-builder/SKILL.md +0 -109
  142. package/prisma/skills/data-scraper-agent/SKILL.md +0 -765
  143. package/prisma/skills/data-throughput-accelerator/SKILL.md +0 -73
  144. package/prisma/skills/database-migrations/SKILL.md +0 -430
  145. package/prisma/skills/deep-research/SKILL.md +0 -160
  146. package/prisma/skills/defi-amm-security/SKILL.md +0 -167
  147. package/prisma/skills/delivery-gate/SKILL.md +0 -126
  148. package/prisma/skills/delivery-gate/hooks/quality-gate.py +0 -220
  149. package/prisma/skills/deployment-patterns/SKILL.md +0 -428
  150. package/prisma/skills/design-system/SKILL.md +0 -83
  151. package/prisma/skills/django-celery/SKILL.md +0 -458
  152. package/prisma/skills/django-patterns/SKILL.md +0 -735
  153. package/prisma/skills/django-security/SKILL.md +0 -644
  154. package/prisma/skills/django-tdd/SKILL.md +0 -730
  155. package/prisma/skills/django-verification/SKILL.md +0 -470
  156. package/prisma/skills/dmux-workflows/SKILL.md +0 -192
  157. package/prisma/skills/docker-patterns/SKILL.md +0 -365
  158. package/prisma/skills/documentation-lookup/SKILL.md +0 -91
  159. package/prisma/skills/dotnet-patterns/SKILL.md +0 -322
  160. package/prisma/skills/dynamic-workflow-mode/SKILL.md +0 -124
  161. package/prisma/skills/e2e-testing/SKILL.md +0 -327
  162. package/prisma/skills/ecc-guide/SKILL.md +0 -190
  163. package/prisma/skills/ecc-recipes/SKILL.md +0 -149
  164. package/prisma/skills/ecc-tools-cost-audit/SKILL.md +0 -161
  165. package/prisma/skills/email-ops/SKILL.md +0 -122
  166. package/prisma/skills/energy-procurement/SKILL.md +0 -228
  167. package/prisma/skills/enterprise-agent-ops/SKILL.md +0 -51
  168. package/prisma/skills/error-handling/SKILL.md +0 -377
  169. package/prisma/skills/eval-harness/SKILL.md +0 -271
  170. package/prisma/skills/evm-token-decimals/SKILL.md +0 -131
  171. package/prisma/skills/exa-search/SKILL.md +0 -108
  172. package/prisma/skills/fal-ai-media/SKILL.md +0 -289
  173. package/prisma/skills/fastapi-patterns/SKILL.md +0 -514
  174. package/prisma/skills/finance-billing-ops/SKILL.md +0 -128
  175. package/prisma/skills/flox-environments/SKILL.md +0 -497
  176. package/prisma/skills/flutter-dart-code-review/SKILL.md +0 -436
  177. package/prisma/skills/foundation-models-on-device/SKILL.md +0 -243
  178. package/prisma/skills/frontend-a11y/SKILL.md +0 -446
  179. package/prisma/skills/frontend-design-direction/SKILL.md +0 -93
  180. package/prisma/skills/frontend-patterns/SKILL.md +0 -657
  181. package/prisma/skills/frontend-slides/SKILL.md +0 -185
  182. package/prisma/skills/frontend-slides/STYLE_PRESETS.md +0 -330
  183. package/prisma/skills/frontend-slides/animation-patterns.md +0 -122
  184. package/prisma/skills/frontend-slides/html-template.md +0 -419
  185. package/prisma/skills/frontend-slides/scripts/export-pdf.sh +0 -418
  186. package/prisma/skills/frontend-slides/scripts/extract-pptx.py +0 -96
  187. package/prisma/skills/frontend-slides/viewport-base.css +0 -153
  188. package/prisma/skills/fsharp-testing/SKILL.md +0 -281
  189. package/prisma/skills/gan-style-harness/SKILL.md +0 -279
  190. package/prisma/skills/gateguard/SKILL.md +0 -133
  191. package/prisma/skills/generating-python-installer/SKILL.md +0 -820
  192. package/prisma/skills/git-workflow/SKILL.md +0 -716
  193. package/prisma/skills/github-ops/SKILL.md +0 -145
  194. package/prisma/skills/golang-patterns/SKILL.md +0 -675
  195. package/prisma/skills/golang-testing/SKILL.md +0 -721
  196. package/prisma/skills/google-workspace-ops/SKILL.md +0 -96
  197. package/prisma/skills/growth-log/SKILL.md +0 -128
  198. package/prisma/skills/healthcare-cdss-patterns/SKILL.md +0 -246
  199. package/prisma/skills/healthcare-emr-patterns/SKILL.md +0 -160
  200. package/prisma/skills/healthcare-eval-harness/SKILL.md +0 -208
  201. package/prisma/skills/healthcare-phi-compliance/SKILL.md +0 -146
  202. package/prisma/skills/hermes-imports/SKILL.md +0 -89
  203. package/prisma/skills/hexagonal-architecture/SKILL.md +0 -277
  204. package/prisma/skills/hipaa-compliance/SKILL.md +0 -79
  205. package/prisma/skills/homelab-network-readiness/SKILL.md +0 -170
  206. package/prisma/skills/homelab-network-setup/SKILL.md +0 -130
  207. package/prisma/skills/homelab-pihole-dns/SKILL.md +0 -275
  208. package/prisma/skills/homelab-vlan-segmentation/SKILL.md +0 -312
  209. package/prisma/skills/homelab-wireguard-vpn/SKILL.md +0 -306
  210. package/prisma/skills/hookify-rules/SKILL.md +0 -128
  211. package/prisma/skills/inherit-legacy-style/SKILL.md +0 -157
  212. package/prisma/skills/intent-driven-development/SKILL.md +0 -360
  213. package/prisma/skills/inventory-demand-planning/SKILL.md +0 -247
  214. package/prisma/skills/investor-materials/SKILL.md +0 -97
  215. package/prisma/skills/investor-outreach/SKILL.md +0 -92
  216. package/prisma/skills/ios-icon-gen/SKILL.md +0 -158
  217. package/prisma/skills/ios-icon-gen/scripts/generate_icons.swift +0 -258
  218. package/prisma/skills/ios-icon-gen/scripts/iconify_gen.sh +0 -235
  219. package/prisma/skills/iterative-retrieval/SKILL.md +0 -212
  220. package/prisma/skills/ito-basket-compare/SKILL.md +0 -64
  221. package/prisma/skills/ito-data-atlas-agent/SKILL.md +0 -64
  222. package/prisma/skills/ito-market-intelligence/SKILL.md +0 -61
  223. package/prisma/skills/ito-trade-planner/SKILL.md +0 -68
  224. package/prisma/skills/java-coding-standards/SKILL.md +0 -384
  225. package/prisma/skills/jira-integration/SKILL.md +0 -303
  226. package/prisma/skills/jpa-patterns/SKILL.md +0 -152
  227. package/prisma/skills/knowledge-ops/SKILL.md +0 -155
  228. package/prisma/skills/kotlin-coroutines-flows/SKILL.md +0 -285
  229. package/prisma/skills/kotlin-exposed-patterns/SKILL.md +0 -720
  230. package/prisma/skills/kotlin-ktor-patterns/SKILL.md +0 -690
  231. package/prisma/skills/kotlin-patterns/SKILL.md +0 -712
  232. package/prisma/skills/kotlin-testing/SKILL.md +0 -825
  233. package/prisma/skills/kubernetes-patterns/SKILL.md +0 -756
  234. package/prisma/skills/laravel-patterns/SKILL.md +0 -416
  235. package/prisma/skills/laravel-plugin-discovery/SKILL.md +0 -230
  236. package/prisma/skills/laravel-security/SKILL.md +0 -948
  237. package/prisma/skills/laravel-tdd/SKILL.md +0 -675
  238. package/prisma/skills/laravel-verification/SKILL.md +0 -180
  239. package/prisma/skills/latency-critical-systems/SKILL.md +0 -74
  240. package/prisma/skills/lead-intelligence/SKILL.md +0 -322
  241. package/prisma/skills/lead-intelligence/agents/enrichment-agent.md +0 -85
  242. package/prisma/skills/lead-intelligence/agents/mutual-mapper.md +0 -75
  243. package/prisma/skills/lead-intelligence/agents/outreach-drafter.md +0 -98
  244. package/prisma/skills/lead-intelligence/agents/signal-scorer.md +0 -60
  245. package/prisma/skills/liquid-glass-design/SKILL.md +0 -279
  246. package/prisma/skills/llm-trading-agent-security/SKILL.md +0 -147
  247. package/prisma/skills/logistics-exception-management/SKILL.md +0 -222
  248. package/prisma/skills/loop-design-check/SKILL.md +0 -143
  249. package/prisma/skills/mailtrap-email-integration/SKILL.md +0 -77
  250. package/prisma/skills/make-interfaces-feel-better/SKILL.md +0 -152
  251. package/prisma/skills/manim-video/SKILL.md +0 -90
  252. package/prisma/skills/manim-video/assets/network_graph_scene.py +0 -52
  253. package/prisma/skills/market-research/SKILL.md +0 -76
  254. package/prisma/skills/marketing-campaign/SKILL.md +0 -114
  255. package/prisma/skills/mcp-server-patterns/SKILL.md +0 -70
  256. package/prisma/skills/messages-ops/SKILL.md +0 -105
  257. package/prisma/skills/ml-adoption-playbook/SKILL.md +0 -57
  258. package/prisma/skills/mle-workflow/SKILL.md +0 -347
  259. package/prisma/skills/motion-advanced/SKILL.md +0 -596
  260. package/prisma/skills/motion-foundations/SKILL.md +0 -299
  261. package/prisma/skills/motion-patterns/SKILL.md +0 -434
  262. package/prisma/skills/motion-ui/SKILL.md +0 -576
  263. package/prisma/skills/mysql-patterns/SKILL.md +0 -413
  264. package/prisma/skills/nanoclaw-repl/SKILL.md +0 -34
  265. package/prisma/skills/nestjs-patterns/SKILL.md +0 -231
  266. package/prisma/skills/netmiko-ssh-automation/SKILL.md +0 -174
  267. package/prisma/skills/network-bgp-diagnostics/SKILL.md +0 -168
  268. package/prisma/skills/network-config-validation/SKILL.md +0 -211
  269. package/prisma/skills/network-interface-health/SKILL.md +0 -153
  270. package/prisma/skills/nextjs-turbopack/SKILL.md +0 -58
  271. package/prisma/skills/nodejs-keccak256/SKILL.md +0 -103
  272. package/prisma/skills/nutrient-document-processing/SKILL.md +0 -168
  273. package/prisma/skills/nuxt4-patterns/SKILL.md +0 -101
  274. package/prisma/skills/openclaw-persona-forge/SKILL.md +0 -289
  275. package/prisma/skills/openclaw-persona-forge/gacha.py +0 -224
  276. package/prisma/skills/openclaw-persona-forge/gacha.sh +0 -5
  277. package/prisma/skills/openclaw-persona-forge/references/avatar-style.md +0 -124
  278. package/prisma/skills/openclaw-persona-forge/references/boundary-rules.md +0 -53
  279. package/prisma/skills/openclaw-persona-forge/references/error-handling.md +0 -53
  280. package/prisma/skills/openclaw-persona-forge/references/identity-tension.md +0 -48
  281. package/prisma/skills/openclaw-persona-forge/references/naming-system.md +0 -39
  282. package/prisma/skills/openclaw-persona-forge/references/output-template.md +0 -166
  283. package/prisma/skills/opensource-pipeline/SKILL.md +0 -256
  284. package/prisma/skills/orch-add-feature/SKILL.md +0 -45
  285. package/prisma/skills/orch-build-mvp/SKILL.md +0 -49
  286. package/prisma/skills/orch-change-feature/SKILL.md +0 -43
  287. package/prisma/skills/orch-fix-defect/SKILL.md +0 -43
  288. package/prisma/skills/orch-pipeline/SKILL.md +0 -121
  289. package/prisma/skills/orch-refine-code/SKILL.md +0 -44
  290. package/prisma/skills/parallel-execution-optimizer/SKILL.md +0 -73
  291. package/prisma/skills/perl-patterns/SKILL.md +0 -505
  292. package/prisma/skills/perl-security/SKILL.md +0 -504
  293. package/prisma/skills/perl-testing/SKILL.md +0 -476
  294. package/prisma/skills/plan-orchestrate/SKILL.md +0 -263
  295. package/prisma/skills/plankton-code-quality/SKILL.md +0 -237
  296. package/prisma/skills/postgres-patterns/SKILL.md +0 -148
  297. package/prisma/skills/prediction-market-oracle-research/SKILL.md +0 -64
  298. package/prisma/skills/prediction-market-risk-review/SKILL.md +0 -61
  299. package/prisma/skills/prisma-patterns/SKILL.md +0 -401
  300. package/prisma/skills/product-capability/SKILL.md +0 -142
  301. package/prisma/skills/product-lens/SKILL.md +0 -93
  302. package/prisma/skills/production-audit/SKILL.md +0 -207
  303. package/prisma/skills/production-scheduling/SKILL.md +0 -238
  304. package/prisma/skills/project-flow-ops/SKILL.md +0 -112
  305. package/prisma/skills/prompt-optimizer/SKILL.md +0 -398
  306. package/prisma/skills/python-patterns/SKILL.md +0 -751
  307. package/prisma/skills/python-testing/SKILL.md +0 -817
  308. package/prisma/skills/pytorch-patterns/SKILL.md +0 -397
  309. package/prisma/skills/quality-nonconformance/SKILL.md +0 -260
  310. package/prisma/skills/quarkus-patterns/SKILL.md +0 -723
  311. package/prisma/skills/quarkus-security/SKILL.md +0 -468
  312. package/prisma/skills/quarkus-tdd/SKILL.md +0 -812
  313. package/prisma/skills/quarkus-verification/SKILL.md +0 -480
  314. package/prisma/skills/ralphinho-rfc-pipeline/SKILL.md +0 -68
  315. package/prisma/skills/react-native-patterns/SKILL.md +0 -326
  316. package/prisma/skills/react-patterns/SKILL.md +0 -342
  317. package/prisma/skills/react-performance/SKILL.md +0 -575
  318. package/prisma/skills/react-testing/SKILL.md +0 -424
  319. package/prisma/skills/recsys-pipeline-architect/SKILL.md +0 -115
  320. package/prisma/skills/recursive-decision-ledger/SKILL.md +0 -80
  321. package/prisma/skills/redis-patterns/SKILL.md +0 -404
  322. package/prisma/skills/regex-vs-llm-structured-text/SKILL.md +0 -221
  323. package/prisma/skills/remotion-video-creation/SKILL.md +0 -43
  324. package/prisma/skills/remotion-video-creation/rules/3d.md +0 -86
  325. package/prisma/skills/remotion-video-creation/rules/animations.md +0 -29
  326. package/prisma/skills/remotion-video-creation/rules/assets/charts-bar-chart.tsx +0 -173
  327. package/prisma/skills/remotion-video-creation/rules/assets/text-animations-typewriter.tsx +0 -100
  328. package/prisma/skills/remotion-video-creation/rules/assets/text-animations-word-highlight.tsx +0 -108
  329. package/prisma/skills/remotion-video-creation/rules/assets.md +0 -78
  330. package/prisma/skills/remotion-video-creation/rules/audio.md +0 -172
  331. package/prisma/skills/remotion-video-creation/rules/calculate-metadata.md +0 -104
  332. package/prisma/skills/remotion-video-creation/rules/can-decode.md +0 -75
  333. package/prisma/skills/remotion-video-creation/rules/charts.md +0 -58
  334. package/prisma/skills/remotion-video-creation/rules/compositions.md +0 -146
  335. package/prisma/skills/remotion-video-creation/rules/display-captions.md +0 -126
  336. package/prisma/skills/remotion-video-creation/rules/extract-frames.md +0 -229
  337. package/prisma/skills/remotion-video-creation/rules/fonts.md +0 -152
  338. package/prisma/skills/remotion-video-creation/rules/get-audio-duration.md +0 -58
  339. package/prisma/skills/remotion-video-creation/rules/get-video-dimensions.md +0 -68
  340. package/prisma/skills/remotion-video-creation/rules/get-video-duration.md +0 -58
  341. package/prisma/skills/remotion-video-creation/rules/gifs.md +0 -138
  342. package/prisma/skills/remotion-video-creation/rules/images.md +0 -130
  343. package/prisma/skills/remotion-video-creation/rules/import-srt-captions.md +0 -67
  344. package/prisma/skills/remotion-video-creation/rules/lottie.md +0 -67
  345. package/prisma/skills/remotion-video-creation/rules/measuring-dom-nodes.md +0 -34
  346. package/prisma/skills/remotion-video-creation/rules/measuring-text.md +0 -143
  347. package/prisma/skills/remotion-video-creation/rules/sequencing.md +0 -106
  348. package/prisma/skills/remotion-video-creation/rules/tailwind.md +0 -11
  349. package/prisma/skills/remotion-video-creation/rules/text-animations.md +0 -20
  350. package/prisma/skills/remotion-video-creation/rules/timing.md +0 -179
  351. package/prisma/skills/remotion-video-creation/rules/transcribe-captions.md +0 -19
  352. package/prisma/skills/remotion-video-creation/rules/transitions.md +0 -122
  353. package/prisma/skills/remotion-video-creation/rules/trimming.md +0 -52
  354. package/prisma/skills/remotion-video-creation/rules/videos.md +0 -171
  355. package/prisma/skills/repo-scan/SKILL.md +0 -79
  356. package/prisma/skills/research-ops/SKILL.md +0 -113
  357. package/prisma/skills/returns-reverse-logistics/SKILL.md +0 -240
  358. package/prisma/skills/rules-distill/SKILL.md +0 -265
  359. package/prisma/skills/rules-distill/scripts/scan-rules.sh +0 -58
  360. package/prisma/skills/rules-distill/scripts/scan-skills.sh +0 -129
  361. package/prisma/skills/rust-patterns/SKILL.md +0 -500
  362. package/prisma/skills/rust-testing/SKILL.md +0 -501
  363. package/prisma/skills/safety-guard/SKILL.md +0 -76
  364. package/prisma/skills/santa-method/SKILL.md +0 -307
  365. package/prisma/skills/scientific-db-pubmed-database/SKILL.md +0 -176
  366. package/prisma/skills/scientific-db-uspto-database/SKILL.md +0 -178
  367. package/prisma/skills/scientific-pkg-gget/SKILL.md +0 -167
  368. package/prisma/skills/scientific-thinking-literature-review/SKILL.md +0 -193
  369. package/prisma/skills/scientific-thinking-scholar-evaluation/SKILL.md +0 -161
  370. package/prisma/skills/search-first/SKILL.md +0 -183
  371. package/prisma/skills/security-bounty-hunter/SKILL.md +0 -100
  372. package/prisma/skills/security-review/SKILL.md +0 -504
  373. package/prisma/skills/security-review/cloud-infrastructure-security.md +0 -361
  374. package/prisma/skills/security-scan/SKILL.md +0 -166
  375. package/prisma/skills/seo/SKILL.md +0 -155
  376. package/prisma/skills/skill-comply/SKILL.md +0 -59
  377. package/prisma/skills/skill-comply/fixtures/compliant_trace.jsonl +0 -5
  378. package/prisma/skills/skill-comply/fixtures/noncompliant_trace.jsonl +0 -3
  379. package/prisma/skills/skill-comply/fixtures/tdd_spec.yaml +0 -44
  380. package/prisma/skills/skill-comply/prompts/classifier.md +0 -24
  381. package/prisma/skills/skill-comply/prompts/scenario_generator.md +0 -62
  382. package/prisma/skills/skill-comply/prompts/spec_generator.md +0 -42
  383. package/prisma/skills/skill-comply/pyproject.toml +0 -15
  384. package/prisma/skills/skill-comply/scripts/__init__.py +0 -0
  385. package/prisma/skills/skill-comply/scripts/classifier.py +0 -85
  386. package/prisma/skills/skill-comply/scripts/grader.py +0 -124
  387. package/prisma/skills/skill-comply/scripts/parser.py +0 -107
  388. package/prisma/skills/skill-comply/scripts/report.py +0 -170
  389. package/prisma/skills/skill-comply/scripts/run.py +0 -127
  390. package/prisma/skills/skill-comply/scripts/runner.py +0 -194
  391. package/prisma/skills/skill-comply/scripts/scenario_generator.py +0 -70
  392. package/prisma/skills/skill-comply/scripts/spec_generator.py +0 -72
  393. package/prisma/skills/skill-comply/scripts/utils.py +0 -13
  394. package/prisma/skills/skill-comply/tests/test_grader.py +0 -197
  395. package/prisma/skills/skill-comply/tests/test_parser.py +0 -90
  396. package/prisma/skills/skill-comply/tests/test_runner.py +0 -172
  397. package/prisma/skills/skill-scout/SKILL.md +0 -141
  398. package/prisma/skills/skill-stocktake/SKILL.md +0 -195
  399. package/prisma/skills/skill-stocktake/scripts/quick-diff.sh +0 -87
  400. package/prisma/skills/skill-stocktake/scripts/save-results.sh +0 -56
  401. package/prisma/skills/skill-stocktake/scripts/scan.sh +0 -170
  402. package/prisma/skills/social-graph-ranker/SKILL.md +0 -155
  403. package/prisma/skills/social-publisher/SKILL.md +0 -130
  404. package/prisma/skills/springboot-patterns/SKILL.md +0 -315
  405. package/prisma/skills/springboot-security/SKILL.md +0 -273
  406. package/prisma/skills/springboot-tdd/SKILL.md +0 -159
  407. package/prisma/skills/springboot-verification/SKILL.md +0 -232
  408. package/prisma/skills/strategic-compact/SKILL.md +0 -136
  409. package/prisma/skills/swift-actor-persistence/SKILL.md +0 -144
  410. package/prisma/skills/swift-concurrency-6-2/SKILL.md +0 -216
  411. package/prisma/skills/swift-protocol-di-testing/SKILL.md +0 -191
  412. package/prisma/skills/swiftui-patterns/SKILL.md +0 -259
  413. package/prisma/skills/taste/SKILL.md +0 -264
  414. package/prisma/skills/taste/references/genre-taxonomy.md +0 -87
  415. package/prisma/skills/tdd-workflow/SKILL.md +0 -583
  416. package/prisma/skills/team-agent-orchestration/SKILL.md +0 -111
  417. package/prisma/skills/team-builder/SKILL.md +0 -169
  418. package/prisma/skills/terminal-ops/SKILL.md +0 -110
  419. package/prisma/skills/tinystruct-patterns/SKILL.md +0 -279
  420. package/prisma/skills/tinystruct-patterns/references/architecture.md +0 -90
  421. package/prisma/skills/tinystruct-patterns/references/data-handling.md +0 -60
  422. package/prisma/skills/tinystruct-patterns/references/database.md +0 -99
  423. package/prisma/skills/tinystruct-patterns/references/routing.md +0 -64
  424. package/prisma/skills/tinystruct-patterns/references/system-usage.md +0 -97
  425. package/prisma/skills/tinystruct-patterns/references/testing.md +0 -72
  426. package/prisma/skills/token-budget-advisor/SKILL.md +0 -134
  427. package/prisma/skills/ui-demo/SKILL.md +0 -466
  428. package/prisma/skills/ui-to-vue/SKILL.md +0 -135
  429. package/prisma/skills/uncloud/SKILL.md +0 -344
  430. package/prisma/skills/unified-notifications-ops/SKILL.md +0 -188
  431. package/prisma/skills/verification-loop/SKILL.md +0 -127
  432. package/prisma/skills/video-editing/SKILL.md +0 -311
  433. package/prisma/skills/videodb/SKILL.md +0 -375
  434. package/prisma/skills/videodb/reference/api-reference.md +0 -550
  435. package/prisma/skills/videodb/reference/capture-reference.md +0 -407
  436. package/prisma/skills/videodb/reference/capture.md +0 -101
  437. package/prisma/skills/videodb/reference/editor.md +0 -443
  438. package/prisma/skills/videodb/reference/generative.md +0 -331
  439. package/prisma/skills/videodb/reference/rtstream-reference.md +0 -564
  440. package/prisma/skills/videodb/reference/rtstream.md +0 -65
  441. package/prisma/skills/videodb/reference/search.md +0 -230
  442. package/prisma/skills/videodb/reference/streaming.md +0 -406
  443. package/prisma/skills/videodb/reference/use-cases.md +0 -118
  444. package/prisma/skills/videodb/scripts/ws_listener.py +0 -282
  445. package/prisma/skills/visa-doc-translate/README.md +0 -86
  446. package/prisma/skills/visa-doc-translate/SKILL.md +0 -117
  447. package/prisma/skills/vite-patterns/SKILL.md +0 -450
  448. package/prisma/skills/vue-patterns/SKILL.md +0 -471
  449. package/prisma/skills/windows-desktop-e2e/SKILL.md +0 -888
  450. package/prisma/skills/workspace-surface-audit/SKILL.md +0 -126
  451. package/prisma/skills/x-api/SKILL.md +0 -235
@@ -1,64 +0,0 @@
1
- ---
2
- name: prediction-market-oracle-research
3
- description: Research prediction markets as data sources or oracle signals for products, agents, dashboards, and corporate decision intelligence. Use for source-grounded analysis of market-implied probabilities, caveats, and integration patterns without investment advice.
4
- metadata:
5
- origin: ECC
6
- ---
7
-
8
- # Prediction Market Oracle Research
9
-
10
- Use this skill when prediction markets are being considered as a data source,
11
- forecasting input, oracle-like signal, or decision-intelligence layer.
12
-
13
- ## Guardrails
14
-
15
- - Do not treat market prices as objective truth.
16
- - Do not provide investment advice or trading recommendations.
17
- - Separate venue mechanics, liquidity, incentives, and resolution rules from the
18
- implied signal.
19
- - Call out manipulation, thin liquidity, stale markets, and ambiguous outcomes.
20
- - For on-chain or execution-linked systems, run `llm-trading-agent-security`
21
- before granting any write authority.
22
-
23
- ## Research Workflow
24
-
25
- 1. Define the decision the signal is meant to inform.
26
- 2. Find relevant markets, events, tags, and venues.
27
- 3. Record market-implied probabilities with timestamps and source links.
28
- 4. Evaluate signal quality:
29
- - liquidity
30
- - spread
31
- - market age
32
- - trader/incentive concentration if known
33
- - resolution authority
34
- - geography or account restrictions
35
- 5. Compare against non-market sources such as filings, news, polls, research,
36
- customer data, or internal KPIs.
37
- 6. Recommend whether the signal is usable, weak, or unsuitable for the stated
38
- decision.
39
-
40
- ## Integration Patterns
41
-
42
- - Research assistant: source-grounded context for a human analyst.
43
- - Dashboard signal: market-implied probability alongside internal metrics.
44
- - Agent memory input: a time-stamped signal that can be retrieved later.
45
- - Alerting input: notify when probabilities, spreads, or liquidity cross a
46
- threshold.
47
- - Scenario planning: compare multiple event outcomes without automating trades.
48
-
49
- ## Output Contract
50
-
51
- Use:
52
-
53
- 1. decision context
54
- 2. market sources
55
- 3. signal quality
56
- 4. comparison sources
57
- 5. integration recommendation
58
- 6. caveats
59
-
60
- End with:
61
-
62
- ```text
63
- Prediction-market signals are informational inputs, not investment advice.
64
- ```
@@ -1,61 +0,0 @@
1
- ---
2
- name: prediction-market-risk-review
3
- description: Review prediction-market, basket, oracle, and trading-agent workflows for compliance, safety, data-quality, privacy, and execution risk. Use before any workflow handles venue auth, user portfolio data, API keys, or trade planning.
4
- metadata:
5
- origin: ECC
6
- ---
7
-
8
- # Prediction Market Risk Review
9
-
10
- Use this skill before a prediction-market workflow touches user financial
11
- context, venue authentication, portfolio data, automation, or execution-capable
12
- tools.
13
-
14
- ## Review Gates
15
-
16
- ### Advice Boundary
17
-
18
- - Confirm the output is informational.
19
- - Remove buy/sell/hold/size recommendations.
20
- - Keep manual user decision points explicit.
21
-
22
- ### Venue And Regulatory Boundary
23
-
24
- - Identify venue terms, geography restrictions, account limits, and API rules.
25
- - Flag betting, derivatives, securities, or commodities ambiguity for legal
26
- review when relevant.
27
- - Do not bypass venue restrictions or rate limits.
28
-
29
- ### Data Quality
30
-
31
- - Check market liquidity, spread, resolution rules, stale prices, and source
32
- timestamps.
33
- - Separate public venue data from Itô gated data.
34
- - Do not mix public and private sources without labels.
35
-
36
- ### Security
37
-
38
- - Do not request or store private keys, seed phrases, or passwords.
39
- - Keep `ITO_API_KEY` and venue API keys out of logs and docs.
40
- - Use read-only scopes by default.
41
- - Require circuit breakers, spend limits, dry runs, and human approval before
42
- any private implementation adds execution.
43
-
44
- ### Privacy
45
-
46
- - Minimize user portfolio, financial, and knowledge-base data.
47
- - Redact private sources in public artifacts.
48
- - Preserve only the fields needed for the review.
49
-
50
- ## Output Contract
51
-
52
- Return:
53
-
54
- 1. scope reviewed
55
- 2. pass/warn/fail findings
56
- 3. blocked actions
57
- 4. required mitigations
58
- 5. safe next step
59
-
60
- If any execution-capable step is requested, require a separate implementation
61
- plan and explicit user approval.
@@ -1,401 +0,0 @@
1
- ---
2
- name: prisma-patterns
3
- description: Prisma ORM patterns for TypeScript backends — schema design, query optimization, transactions, pagination, and critical traps like updateMany returning count not records, $transaction timeouts, migrate dev resetting the DB, @updatedAt skipped on bulk writes, and serverless connection exhaustion.
4
- metadata:
5
- origin: ECC
6
- ---
7
-
8
- # Prisma Patterns
9
-
10
- Production patterns and non-obvious traps for Prisma ORM in TypeScript backends.
11
-
12
- > **Check your version before applying patterns.** The Prisma API surface has evolved across major releases:
13
- >
14
- > ```bash
15
- > npx prisma --version
16
- > ```
17
- >
18
- > Notable API differences across versions:
19
- > - `relationJoins` can load relations via JOIN rather than separate queries, but may cause row explosion on large 1:N relations or deep `include` — benchmark both approaches
20
- > - `omit` field modifier and `prisma.$extends` Client Extensions API were added
21
- > - **Newer installs**: the package may be named `prisma` instead of `@prisma/client`; `PrismaClient` may require a driver adapter (e.g. `@prisma/adapter-pg`); `datasource.url` may live in `prisma.config.ts` instead of `schema.prisma`
22
- > - CLI commands (`migrate dev`, `migrate deploy`, `generate`) are unchanged across versions
23
-
24
- ## When to Activate
25
-
26
- - Designing or modifying Prisma schema models and relations
27
- - Writing queries, transactions, or pagination logic
28
- - Using `updateMany`, `deleteMany`, or any bulk operation
29
- - Running or planning database migrations
30
- - Deploying to serverless environments (Vercel, Lambda, Cloudflare Workers)
31
- - Implementing soft delete or multi-tenant row filtering
32
-
33
- ## Core Concepts
34
-
35
- ### ID Strategy
36
-
37
- | Strategy | Use When | Avoid When |
38
- |---|---|---|
39
- | `@default(cuid())` | Default choice — URL-safe, sortable, no collisions | Sequential IDs needed for external systems |
40
- | `@default(uuid())` | Interoperability with non-Prisma systems required | High-write tables (random UUIDs fragment B-tree indexes) |
41
- | `@default(autoincrement())` | Internal join tables, audit logs | Public-facing IDs (exposes record count) |
42
-
43
- ### Schema Defaults
44
-
45
- ```prisma
46
- model User {
47
- id String @id @default(cuid())
48
- email String @unique // @unique already creates an index — no @@index needed
49
- name String
50
- role Role @default(USER)
51
- posts Post[]
52
- createdAt DateTime @default(now())
53
- updatedAt DateTime @updatedAt
54
- deletedAt DateTime?
55
-
56
- @@index([createdAt])
57
- @@index([deletedAt, createdAt]) // composite for soft-delete + sort queries
58
- }
59
- ```
60
-
61
- - Add `@@index` on every foreign key and column used in `WHERE` or `ORDER BY`.
62
- - Declare `deletedAt DateTime?` upfront when soft delete is a foreseeable requirement — adding it later requires a migration on a live table.
63
- - `updatedAt @updatedAt` is set automatically by Prisma on `update` and `upsert` only (see Anti-Patterns for bulk update trap).
64
-
65
- ### `include` vs `select`
66
-
67
- | | `include` | `select` |
68
- |---|---|---|
69
- | Returns | All scalar fields + specified relations | Only specified fields |
70
- | Use when | You need most fields plus a relation | Hot paths, large tables, avoiding over-fetch |
71
- | Performance | May over-fetch on wide tables | Minimal payload, faster on large datasets |
72
- | Prisma 5 note | Uses JOIN by default (`relationJoins`) | Same |
73
-
74
- ```ts
75
- // include — all columns + relation
76
- const user = await prisma.user.findUnique({
77
- where: { id },
78
- include: { posts: { select: { id: true, title: true } } },
79
- });
80
-
81
- // select — explicit allowlist
82
- const user = await prisma.user.findUnique({
83
- where: { id },
84
- select: { id: true, email: true, name: true },
85
- });
86
- ```
87
-
88
- Never return raw Prisma entities from API responses — map to response DTOs to control exposed fields:
89
-
90
- ```ts
91
- // BAD: leaks passwordHash, deletedAt, internal fields
92
- return await prisma.user.findUniqueOrThrow({ where: { id } });
93
-
94
- // GOOD: explicit DTO mapping
95
- const user = await prisma.user.findUniqueOrThrow({ where: { id } });
96
- return { id: user.id, name: user.name, email: user.email };
97
- ```
98
-
99
- ### Transaction Form Selection
100
-
101
- | Situation | Use |
102
- |---|---|
103
- | Independent operations, no inter-dependency | Array form |
104
- | Later step depends on earlier result | Interactive form |
105
- | External calls (email, HTTP) involved | Outside transaction entirely |
106
-
107
- ```ts
108
- // Array form — batched in one round trip
109
- const [user, post] = await prisma.$transaction([
110
- prisma.user.update({ where: { id }, data: { name } }),
111
- prisma.post.create({ data: { title, authorId: id } }),
112
- ]);
113
-
114
- // Interactive form — use tx client only, never the outer prisma client
115
- const post = await prisma.$transaction(async (tx) => {
116
- const user = await tx.user.findUniqueOrThrow({ where: { id } });
117
- if (user.role !== 'ADMIN') throw new Error('Forbidden');
118
- return tx.post.create({ data: { title, authorId: user.id } });
119
- });
120
- ```
121
-
122
- ### PrismaClient Singleton
123
-
124
- Each `PrismaClient` instance opens its own connection pool. Instantiate once.
125
-
126
- ```ts
127
- // lib/prisma.ts
128
-
129
- // Option A — adapter-based initialization (required by newer Prisma installs)
130
- import { PrismaClient } from '@prisma/client'; // or the generated client path for your setup
131
- import { PrismaPg } from '@prisma/adapter-pg';
132
-
133
- function createPrismaClient() {
134
- const adapter = new PrismaPg({
135
- connectionString: process.env.DATABASE_URL!,
136
- });
137
- return new PrismaClient({
138
- adapter,
139
- log: process.env.NODE_ENV === 'development' ? ['query', 'error'] : ['error'],
140
- });
141
- }
142
-
143
- const globalForPrisma = globalThis as unknown as { prisma?: PrismaClient };
144
-
145
- export const prisma = globalForPrisma.prisma ?? createPrismaClient();
146
-
147
- if (process.env.NODE_ENV !== 'production') globalForPrisma.prisma = prisma;
148
-
149
- // Option B — direct initialization (older installs, no adapter needed)
150
- // import { PrismaClient } from '@prisma/client';
151
- // export const prisma = globalForPrisma.prisma ?? new PrismaClient({ ... });
152
- ```
153
-
154
- Use Option A if your Prisma install requires an `adapter` argument in the `PrismaClient` constructor.
155
- Use Option B if `new PrismaClient()` works without arguments. Let the compiler tell you which is correct.
156
-
157
- The `globalThis` pattern prevents duplicate instances during hot reload (Next.js, nodemon, ts-node-dev).
158
-
159
- ### N+1 Problem
160
-
161
- Loading relations inside a loop issues one query per row.
162
-
163
- ```ts
164
- // BAD: N+1 — one extra query per user
165
- const users = await prisma.user.findMany();
166
- for (const user of users) {
167
- const posts = await prisma.post.findMany({ where: { authorId: user.id } });
168
- }
169
-
170
- // GOOD: single query
171
- const users = await prisma.user.findMany({ include: { posts: true } });
172
- ```
173
-
174
- With Prisma 5+ `relationJoins`, the `include` form uses a single JOIN. On large 1:N sets this may increase result set size — benchmark both approaches if the relation can return many rows per parent.
175
-
176
- ## Code Examples
177
-
178
- ### Cursor Pagination (preferred for feeds and large datasets)
179
-
180
- ```ts
181
- async function getPosts(cursor?: string, limit = 20) {
182
- const items = await prisma.post.findMany({
183
- where: { published: true },
184
- orderBy: [
185
- { createdAt: 'desc' },
186
- { id: 'desc' }, // secondary sort prevents unstable pagination on duplicate timestamps
187
- ],
188
- take: limit + 1,
189
- ...(cursor && { cursor: { id: cursor }, skip: 1 }),
190
- });
191
-
192
- const hasNextPage = items.length > limit;
193
- if (hasNextPage) items.pop();
194
-
195
- return { items, nextCursor: hasNextPage ? items[items.length - 1].id : null };
196
- }
197
- ```
198
-
199
- Fetch `limit + 1` and pop — canonical way to detect `hasNextPage` without an extra count query. Always include a unique field (e.g. `id`) as a secondary `orderBy` to prevent unstable pagination when multiple rows share the same timestamp. Use offset pagination only when users need to jump to arbitrary pages (admin tables).
200
-
201
- ### Soft Delete
202
-
203
- ```ts
204
- // Always filter explicitly — do not rely on middleware (hides behavior, hard to debug)
205
- const activeUsers = await prisma.user.findMany({ where: { deletedAt: null } });
206
-
207
- await prisma.user.update({ where: { id }, data: { deletedAt: new Date() } });
208
- await prisma.user.update({ where: { id }, data: { deletedAt: null } }); // restore
209
- ```
210
-
211
- ### Error Handling
212
-
213
- ```ts
214
- import { Prisma } from '@prisma/client'; // or the generated client path for your setup
215
-
216
- try {
217
- await prisma.user.create({ data: { email } });
218
- } catch (e) {
219
- if (e instanceof Prisma.PrismaClientKnownRequestError) {
220
- if (e.code === 'P2002') throw new ConflictError('Email already exists');
221
- if (e.code === 'P2025') throw new NotFoundError('Record not found');
222
- if (e.code === 'P2003') throw new BadRequestError('Referenced record does not exist');
223
- }
224
- throw e;
225
- }
226
- ```
227
-
228
- Common codes: `P2002` unique violation · `P2025` not found · `P2003` foreign key violation.
229
-
230
- Catch at the service boundary and translate to domain errors. Never expose raw Prisma messages to API consumers.
231
-
232
- ### Connection Pool — Serverless
233
-
234
- Embed connection params directly in `DATABASE_URL` — string concatenation breaks if the URL already has query parameters (e.g. `?schema=public`):
235
-
236
- ```bash
237
- # .env — preferred: embed params in the URL
238
- DATABASE_URL="postgresql://user:pass@host/db?connection_limit=1&pool_timeout=20"
239
-
240
- # With an external pooler (PgBouncer, Supabase pooler)
241
- DATABASE_URL="postgresql://user:pass@host/db?pgbouncer=true&connection_limit=1"
242
- ```
243
-
244
- ```ts
245
- // Vercel, AWS Lambda, and similar serverless runtimes:
246
- // cap pool to 1 per instance; connection_limit and pool_timeout controlled via DATABASE_URL
247
-
248
- // Adapter-based setup (if your Prisma install requires an adapter):
249
- import { PrismaClient } from '@prisma/client';
250
- import { PrismaPg } from '@prisma/adapter-pg';
251
-
252
- const prisma = new PrismaClient({
253
- adapter: new PrismaPg({ connectionString: process.env.DATABASE_URL }),
254
- });
255
-
256
- // Direct setup (if your Prisma install does not require an adapter):
257
- // const prisma = new PrismaClient();
258
- ```
259
-
260
- ## Anti-Patterns
261
-
262
- ### `updateMany` returns a count, not records
263
-
264
- ```ts
265
- // BAD: result is { count: 2 } — users[0] is undefined
266
- const users = await prisma.user.updateMany({ where: { role: 'GUEST' }, data: { role: 'USER' } });
267
-
268
- // GOOD: capture IDs first, then update, then fetch only the affected rows
269
- const targets = await prisma.user.findMany({
270
- where: { role: 'GUEST' },
271
- select: { id: true },
272
- });
273
- const ids = targets.map((u) => u.id);
274
- await prisma.user.updateMany({ where: { id: { in: ids } }, data: { role: 'USER' } });
275
- const updated = await prisma.user.findMany({ where: { id: { in: ids } } });
276
- ```
277
-
278
- Same applies to `deleteMany` — returns `{ count: n }`, never the deleted rows.
279
-
280
- ### `$transaction` interactive form times out after 5 seconds
281
-
282
- ```ts
283
- // BAD: external call inside transaction exceeds 5s default → "Transaction already closed"
284
- await prisma.$transaction(async (tx) => {
285
- const user = await tx.user.findUniqueOrThrow({ where: { id } });
286
- await sendWelcomeEmail(user.email); // external call
287
- await tx.user.update({ where: { id }, data: { emailSent: true } });
288
- });
289
-
290
- // GOOD: external calls outside the transaction
291
- const user = await prisma.user.findUniqueOrThrow({ where: { id } });
292
- await sendWelcomeEmail(user.email);
293
- await prisma.user.update({ where: { id }, data: { emailSent: true } });
294
-
295
- // Only raise timeout when bulk processing genuinely needs it
296
- await prisma.$transaction(async (tx) => { ... }, { timeout: 30_000 });
297
- ```
298
-
299
- ### `migrate dev` can reset the database
300
-
301
- `migrate dev` detects schema drift and may prompt to reset the DB, dropping all data.
302
-
303
- ```bash
304
- # NEVER on shared dev, staging, or production
305
- npx prisma migrate dev --name add_column
306
-
307
- # Safe everywhere except local solo dev
308
- npx prisma migrate deploy
309
-
310
- # Check drift without applying
311
- npx prisma migrate diff \
312
- --from-migrations ./prisma/migrations \
313
- --to-schema-datamodel ./prisma/schema.prisma \
314
- --shadow-database-url "$SHADOW_DATABASE_URL"
315
- ```
316
-
317
- ### Manually editing a migration file breaks future deploys
318
-
319
- Prisma checksums every migration file. Editing after apply causes `P3006 checksum mismatch` on every environment where the original already ran. Create a new migration instead.
320
-
321
- ### Breaking schema changes require multi-step migration
322
-
323
- Adding `NOT NULL` to an existing column or renaming a column in one migration will lock the table or drop data. Use expand-and-contract:
324
-
325
- ```bash
326
- # Step 1: create migration locally, then deploy
327
- npx prisma migrate dev --name add_new_column # local only
328
- npx prisma migrate deploy # staging / production
329
- ```
330
-
331
- ```ts
332
- // Step 2: backfill data (run in a script or migration job, not in the shell)
333
- await prisma.user.updateMany({ data: { newColumn: derivedValue } });
334
- ```
335
-
336
- ```bash
337
- # Step 3: create the NOT NULL constraint migration locally, then deploy
338
- npx prisma migrate dev --name make_new_column_required # local only
339
- npx prisma migrate deploy # staging / production
340
- ```
341
-
342
- ### `@updatedAt` does not fire on `updateMany`
343
-
344
- `@updatedAt` is set automatically only on `update` and `upsert`. Bulk writes leave it stale.
345
-
346
- ```ts
347
- // BAD: updatedAt stays at its old value
348
- await prisma.post.updateMany({ where: { authorId }, data: { published: true } });
349
-
350
- // GOOD
351
- await prisma.post.updateMany({
352
- where: { authorId },
353
- data: { published: true, updatedAt: new Date() },
354
- });
355
- ```
356
-
357
- ### Soft delete + `findUniqueOrThrow` leaks deleted records
358
-
359
- `findUniqueOrThrow` throws `P2025` only when the row does not exist in the DB. Soft-deleted rows still exist and are returned without error.
360
-
361
- `findUniqueOrThrow` requires a unique constraint field in `where` — adding `deletedAt: null` alongside `id` breaks the type because `{ id, deletedAt }` is not a compound unique constraint. Use `findFirstOrThrow` instead.
362
-
363
- ```ts
364
- // BAD: returns soft-deleted user
365
- const user = await prisma.user.findUniqueOrThrow({ where: { id } });
366
-
367
- // BAD: Prisma type error — { id, deletedAt } is not a unique constraint
368
- const user = await prisma.user.findUniqueOrThrow({ where: { id, deletedAt: null } });
369
-
370
- // GOOD: findFirstOrThrow supports arbitrary where conditions
371
- const user = await prisma.user.findFirstOrThrow({ where: { id, deletedAt: null } });
372
- ```
373
-
374
- ### `deleteMany` without `where` deletes every row
375
-
376
- ```ts
377
- // BAD: silently wipes the table
378
- await prisma.post.deleteMany();
379
-
380
- // GOOD
381
- await prisma.post.deleteMany({ where: { authorId: userId } });
382
- ```
383
-
384
- ## Best Practices
385
-
386
- | Rule | Reason |
387
- |---|---|
388
- | `migrate deploy` in CI/CD, `migrate dev` only locally | `migrate dev` can reset the DB on drift |
389
- | Map entities to response DTOs | Prevents leaking internal fields |
390
- | Catch `PrismaClientKnownRequestError` at service boundary | Translate to domain errors |
391
- | Prefer `*OrThrow` methods over manual null checks | Throws P2025 automatically; use `findFirstOrThrow` when filtering non-unique fields |
392
- | `connection_limit=1` + external pooler in serverless | Prevents connection exhaustion |
393
- | Always provide `where` on `deleteMany` | Prevents accidental table wipe |
394
- | Set `updatedAt: new Date()` manually in `updateMany` | `@updatedAt` skips bulk writes |
395
-
396
- ## Related Skills
397
-
398
- - `nestjs-patterns` — NestJS service layer that integrates Prisma
399
- - `postgres-patterns` — PostgreSQL-level indexing and connection tuning
400
- - `database-migrations` — multi-step migration planning for production
401
- - `backend-patterns` — general API and service layer design
@@ -1,142 +0,0 @@
1
- ---
2
- name: product-capability
3
- description: Translate PRD intent, roadmap asks, or product discussions into an implementation-ready capability plan that exposes constraints, invariants, interfaces, and unresolved decisions before multi-service work starts. Use when the user needs an ECC-native PRD-to-SRS lane instead of vague planning prose.
4
- metadata:
5
- origin: ECC
6
- ---
7
-
8
- # Product Capability
9
-
10
- This skill turns product intent into explicit engineering constraints.
11
-
12
- Use it when the gap is not "what should we build?" but "what exactly must be true before implementation starts?"
13
-
14
- ## When to Use
15
-
16
- - A PRD, roadmap item, discussion, or founder note exists, but the implementation constraints are still implicit
17
- - A feature crosses multiple services, repos, or teams and needs a capability contract before coding
18
- - Product intent is clear, but architecture, data, lifecycle, or policy implications are still fuzzy
19
- - Senior engineers keep restating the same hidden assumptions during review
20
- - You need a reusable artifact that can survive across harnesses and sessions
21
-
22
- ## Canonical Artifact
23
-
24
- If the repo has a durable product-context file such as `PRODUCT.md`, `docs/product/`, or a program-spec directory, update it there.
25
-
26
- If no capability manifest exists yet, create one using the template at:
27
-
28
- - `docs/examples/product-capability-template.md`
29
-
30
- The goal is not to create another planning stack. The goal is to make hidden capability constraints durable and reusable.
31
-
32
- ## Non-Negotiable Rules
33
-
34
- - Do not invent product truth. Mark unresolved questions explicitly.
35
- - Separate user-visible promises from implementation details.
36
- - Call out what is fixed policy, what is architecture preference, and what is still open.
37
- - If the request conflicts with existing repo constraints, say so clearly instead of smoothing it over.
38
- - Prefer one reusable capability artifact over scattered ad hoc notes.
39
-
40
- ## Inputs
41
-
42
- Read only what is needed:
43
-
44
- 1. Product intent
45
- - issue, discussion, PRD, roadmap note, founder message
46
- 2. Current architecture
47
- - relevant repo docs, contracts, schemas, routes, existing workflows
48
- 3. Existing capability context
49
- - `PRODUCT.md`, design docs, RFCs, migration notes, operating-model docs
50
- 4. Delivery constraints
51
- - auth, billing, compliance, rollout, backwards compatibility, performance, review policy
52
-
53
- ## Core Workflow
54
-
55
- ### 1. Restate the capability
56
-
57
- Compress the ask into one precise statement:
58
-
59
- - who the user or operator is
60
- - what new capability exists after this ships
61
- - what outcome changes because of it
62
-
63
- If this statement is weak, the implementation will drift.
64
-
65
- ### 2. Resolve capability constraints
66
-
67
- Extract the constraints that must hold before implementation:
68
-
69
- - business rules
70
- - scope boundaries
71
- - invariants
72
- - trust boundaries
73
- - data ownership
74
- - lifecycle transitions
75
- - rollout / migration requirements
76
- - failure and recovery expectations
77
-
78
- These are the things that often live only in senior-engineer memory.
79
-
80
- ### 3. Define the implementation-facing contract
81
-
82
- Produce an SRS-style capability plan with:
83
-
84
- - capability summary
85
- - explicit non-goals
86
- - actors and surfaces
87
- - required states and transitions
88
- - interfaces / inputs / outputs
89
- - data model implications
90
- - security / billing / policy constraints
91
- - observability and operator requirements
92
- - open questions blocking implementation
93
-
94
- ### 4. Translate into execution
95
-
96
- End with the exact handoff:
97
-
98
- - ready for direct implementation
99
- - needs architecture review first
100
- - needs product clarification first
101
-
102
- If useful, point to the next ECC-native lane:
103
-
104
- - `project-flow-ops`
105
- - `workspace-surface-audit`
106
- - `api-connector-builder`
107
- - `dashboard-builder`
108
- - `tdd-workflow`
109
- - `verification-loop`
110
-
111
- ## Output Format
112
-
113
- Return the result in this order:
114
-
115
- ```text
116
- CAPABILITY
117
- - one-paragraph restatement
118
-
119
- CONSTRAINTS
120
- - fixed rules, invariants, and boundaries
121
-
122
- IMPLEMENTATION CONTRACT
123
- - actors
124
- - surfaces
125
- - states and transitions
126
- - interface/data implications
127
-
128
- NON-GOALS
129
- - what this lane explicitly does not own
130
-
131
- OPEN QUESTIONS
132
- - blockers or product decisions still required
133
-
134
- HANDOFF
135
- - what should happen next and which ECC lane should take it
136
- ```
137
-
138
- ## Good Outcomes
139
-
140
- - Product intent is now concrete enough to implement without rediscovering hidden constraints mid-PR.
141
- - Engineering review has a durable artifact instead of relying on memory or Slack context.
142
- - The resulting plan is reusable across Claude Code, Codex, Cursor, OpenCode, and ECC 2.0 planning surfaces.