@rubix0270/arboris 1.0.2 → 1.0.4

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 +25 -37
  2. package/run.mjs +10 -0
  3. package/dist/cli.mjs +0 -383
  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,340 +0,0 @@
1
- ---
2
- name: android-clean-architecture
3
- description: Clean Architecture patterns for Android and Kotlin Multiplatform projects — module structure, dependency rules, UseCases, Repositories, and data layer patterns.
4
- metadata:
5
- origin: ECC
6
- ---
7
-
8
- # Android Clean Architecture
9
-
10
- Clean Architecture patterns for Android and KMP projects. Covers module boundaries, dependency inversion, UseCase/Repository patterns, and data layer design with Room, SQLDelight, and Ktor.
11
-
12
- ## When to Activate
13
-
14
- - Structuring Android or KMP project modules
15
- - Implementing UseCases, Repositories, or DataSources
16
- - Designing data flow between layers (domain, data, presentation)
17
- - Setting up dependency injection with Koin or Hilt
18
- - Working with Room, SQLDelight, or Ktor in a layered architecture
19
-
20
- ## Module Structure
21
-
22
- ### Recommended Layout
23
-
24
- ```
25
- project/
26
- ├── app/ # Android entry point, DI wiring, Application class
27
- ├── core/ # Shared utilities, base classes, error types
28
- ├── domain/ # UseCases, domain models, repository interfaces (pure Kotlin)
29
- ├── data/ # Repository implementations, DataSources, DB, network
30
- ├── presentation/ # Screens, ViewModels, UI models, navigation
31
- ├── design-system/ # Reusable Compose components, theme, typography
32
- └── feature/ # Feature modules (optional, for larger projects)
33
- ├── auth/
34
- ├── settings/
35
- └── profile/
36
- ```
37
-
38
- ### Dependency Rules
39
-
40
- ```
41
- app → presentation, domain, data, core
42
- presentation → domain, design-system, core
43
- data → domain, core
44
- domain → core (or no dependencies)
45
- core → (nothing)
46
- ```
47
-
48
- **Critical**: `domain` must NEVER depend on `data`, `presentation`, or any framework. It contains pure Kotlin only.
49
-
50
- ## Domain Layer
51
-
52
- ### UseCase Pattern
53
-
54
- Each UseCase represents one business operation. Use `operator fun invoke` for clean call sites:
55
-
56
- ```kotlin
57
- class GetItemsByCategoryUseCase(
58
- private val repository: ItemRepository
59
- ) {
60
- suspend operator fun invoke(category: String): Result<List<Item>> {
61
- return repository.getItemsByCategory(category)
62
- }
63
- }
64
-
65
- // Flow-based UseCase for reactive streams
66
- class ObserveUserProgressUseCase(
67
- private val repository: UserRepository
68
- ) {
69
- operator fun invoke(userId: String): Flow<UserProgress> {
70
- return repository.observeProgress(userId)
71
- }
72
- }
73
- ```
74
-
75
- ### Domain Models
76
-
77
- Domain models are plain Kotlin data classes — no framework annotations:
78
-
79
- ```kotlin
80
- data class Item(
81
- val id: String,
82
- val title: String,
83
- val description: String,
84
- val tags: List<String>,
85
- val status: Status,
86
- val category: String
87
- )
88
-
89
- enum class Status { DRAFT, ACTIVE, ARCHIVED }
90
- ```
91
-
92
- ### Repository Interfaces
93
-
94
- Defined in domain, implemented in data:
95
-
96
- ```kotlin
97
- interface ItemRepository {
98
- suspend fun getItemsByCategory(category: String): Result<List<Item>>
99
- suspend fun saveItem(item: Item): Result<Unit>
100
- fun observeItems(): Flow<List<Item>>
101
- }
102
- ```
103
-
104
- ## Data Layer
105
-
106
- ### Repository Implementation
107
-
108
- Coordinates between local and remote data sources:
109
-
110
- ```kotlin
111
- class ItemRepositoryImpl(
112
- private val localDataSource: ItemLocalDataSource,
113
- private val remoteDataSource: ItemRemoteDataSource
114
- ) : ItemRepository {
115
-
116
- override suspend fun getItemsByCategory(category: String): Result<List<Item>> {
117
- return runCatching {
118
- val remote = remoteDataSource.fetchItems(category)
119
- localDataSource.insertItems(remote.map { it.toEntity() })
120
- localDataSource.getItemsByCategory(category).map { it.toDomain() }
121
- }
122
- }
123
-
124
- override suspend fun saveItem(item: Item): Result<Unit> {
125
- return runCatching {
126
- localDataSource.insertItems(listOf(item.toEntity()))
127
- }
128
- }
129
-
130
- override fun observeItems(): Flow<List<Item>> {
131
- return localDataSource.observeAll().map { entities ->
132
- entities.map { it.toDomain() }
133
- }
134
- }
135
- }
136
- ```
137
-
138
- ### Mapper Pattern
139
-
140
- Keep mappers as extension functions near the data models:
141
-
142
- ```kotlin
143
- // In data layer
144
- fun ItemEntity.toDomain() = Item(
145
- id = id,
146
- title = title,
147
- description = description,
148
- tags = tags.split("|"),
149
- status = Status.valueOf(status),
150
- category = category
151
- )
152
-
153
- fun ItemDto.toEntity() = ItemEntity(
154
- id = id,
155
- title = title,
156
- description = description,
157
- tags = tags.joinToString("|"),
158
- status = status,
159
- category = category
160
- )
161
- ```
162
-
163
- ### Room Database (Android)
164
-
165
- ```kotlin
166
- @Entity(tableName = "items")
167
- data class ItemEntity(
168
- @PrimaryKey val id: String,
169
- val title: String,
170
- val description: String,
171
- val tags: String,
172
- val status: String,
173
- val category: String
174
- )
175
-
176
- @Dao
177
- interface ItemDao {
178
- @Query("SELECT * FROM items WHERE category = :category")
179
- suspend fun getByCategory(category: String): List<ItemEntity>
180
-
181
- @Upsert
182
- suspend fun upsert(items: List<ItemEntity>)
183
-
184
- @Query("SELECT * FROM items")
185
- fun observeAll(): Flow<List<ItemEntity>>
186
- }
187
- ```
188
-
189
- ### SQLDelight (KMP)
190
-
191
- ```sql
192
- -- Item.sq
193
- CREATE TABLE ItemEntity (
194
- id TEXT NOT NULL PRIMARY KEY,
195
- title TEXT NOT NULL,
196
- description TEXT NOT NULL,
197
- tags TEXT NOT NULL,
198
- status TEXT NOT NULL,
199
- category TEXT NOT NULL
200
- );
201
-
202
- getByCategory:
203
- SELECT * FROM ItemEntity WHERE category = ?;
204
-
205
- upsert:
206
- INSERT OR REPLACE INTO ItemEntity (id, title, description, tags, status, category)
207
- VALUES (?, ?, ?, ?, ?, ?);
208
-
209
- observeAll:
210
- SELECT * FROM ItemEntity;
211
- ```
212
-
213
- ### Ktor Network Client (KMP)
214
-
215
- ```kotlin
216
- class ItemRemoteDataSource(private val client: HttpClient) {
217
-
218
- suspend fun fetchItems(category: String): List<ItemDto> {
219
- return client.get("api/items") {
220
- parameter("category", category)
221
- }.body()
222
- }
223
- }
224
-
225
- // HttpClient setup with content negotiation
226
- val httpClient = HttpClient {
227
- install(ContentNegotiation) { json(Json { ignoreUnknownKeys = true }) }
228
- install(Logging) { level = LogLevel.HEADERS }
229
- defaultRequest { url("https://api.example.com/") }
230
- }
231
- ```
232
-
233
- ## Dependency Injection
234
-
235
- ### Koin (KMP-friendly)
236
-
237
- ```kotlin
238
- // Domain module
239
- val domainModule = module {
240
- factory { GetItemsByCategoryUseCase(get()) }
241
- factory { ObserveUserProgressUseCase(get()) }
242
- }
243
-
244
- // Data module
245
- val dataModule = module {
246
- single<ItemRepository> { ItemRepositoryImpl(get(), get()) }
247
- single { ItemLocalDataSource(get()) }
248
- single { ItemRemoteDataSource(get()) }
249
- }
250
-
251
- // Presentation module
252
- val presentationModule = module {
253
- viewModelOf(::ItemListViewModel)
254
- viewModelOf(::DashboardViewModel)
255
- }
256
- ```
257
-
258
- ### Hilt (Android-only)
259
-
260
- ```kotlin
261
- @Module
262
- @InstallIn(SingletonComponent::class)
263
- abstract class RepositoryModule {
264
- @Binds
265
- abstract fun bindItemRepository(impl: ItemRepositoryImpl): ItemRepository
266
- }
267
-
268
- @HiltViewModel
269
- class ItemListViewModel @Inject constructor(
270
- private val getItems: GetItemsByCategoryUseCase
271
- ) : ViewModel()
272
- ```
273
-
274
- ## Error Handling
275
-
276
- ### Result/Try Pattern
277
-
278
- Use `Result<T>` or a custom sealed type for error propagation:
279
-
280
- ```kotlin
281
- sealed interface Try<out T> {
282
- data class Success<T>(val value: T) : Try<T>
283
- data class Failure(val error: AppError) : Try<Nothing>
284
- }
285
-
286
- sealed interface AppError {
287
- data class Network(val message: String) : AppError
288
- data class Database(val message: String) : AppError
289
- data object Unauthorized : AppError
290
- }
291
-
292
- // In ViewModel — map to UI state
293
- viewModelScope.launch {
294
- when (val result = getItems(category)) {
295
- is Try.Success -> _state.update { it.copy(items = result.value, isLoading = false) }
296
- is Try.Failure -> _state.update { it.copy(error = result.error.toMessage(), isLoading = false) }
297
- }
298
- }
299
- ```
300
-
301
- ## Convention Plugins (Gradle)
302
-
303
- For KMP projects, use convention plugins to reduce build file duplication:
304
-
305
- ```kotlin
306
- // build-logic/src/main/kotlin/kmp-library.gradle.kts
307
- plugins {
308
- id("org.jetbrains.kotlin.multiplatform")
309
- }
310
-
311
- kotlin {
312
- androidTarget()
313
- iosX64(); iosArm64(); iosSimulatorArm64()
314
- sourceSets {
315
- commonMain.dependencies { /* shared deps */ }
316
- commonTest.dependencies { implementation(kotlin("test")) }
317
- }
318
- }
319
- ```
320
-
321
- Apply in modules:
322
-
323
- ```kotlin
324
- // domain/build.gradle.kts
325
- plugins { id("kmp-library") }
326
- ```
327
-
328
- ## Anti-Patterns to Avoid
329
-
330
- - Importing Android framework classes in `domain` — keep it pure Kotlin
331
- - Exposing database entities or DTOs to the UI layer — always map to domain models
332
- - Putting business logic in ViewModels — extract to UseCases
333
- - Using `GlobalScope` or unstructured coroutines — use `viewModelScope` or structured concurrency
334
- - Fat repository implementations — split into focused DataSources
335
- - Circular module dependencies — if A depends on B, B must not depend on A
336
-
337
- ## References
338
-
339
- See skill: `compose-multiplatform-patterns` for UI patterns.
340
- See skill: `kotlin-coroutines-flows` for async patterns.
@@ -1,155 +0,0 @@
1
- ---
2
- name: angular-developer
3
- description: Generates Angular code and provides architectural guidance. Trigger when creating projects, components, or services, or for best practices on reactivity (signals, linkedSignal, resource), forms, dependency injection, routing, SSR, accessibility (ARIA), animations, styling (component styles, Tailwind CSS), testing, or CLI tooling.
4
- metadata:
5
- origin: ECC
6
- ---
7
-
8
- # Angular Developer Guidelines
9
-
10
- ## When to Activate
11
-
12
- - Working in any Angular project or codebase
13
- - Creating or scaffolding a new Angular project, application, or library
14
- - Generating components, services, directives, pipes, guards, or resolvers
15
- - Implementing reactivity with Angular Signals, `linkedSignal`, or `resource`
16
- - Working with Angular forms (signal forms, reactive forms, or template-driven)
17
- - Setting up dependency injection, routing, lazy loading, or route guards
18
- - Adding accessibility (ARIA), animations, or component styling
19
- - Writing or debugging Angular-specific tests (unit, component harness, E2E)
20
- - Configuring Angular CLI tooling or the Angular MCP server
21
-
22
- 1. Always analyze the project's Angular version before providing guidance, as best practices and available features can vary significantly between versions. If creating a new project with Angular CLI, do not specify a version unless prompted by the user.
23
-
24
- 2. When generating code, follow Angular's style guide and best practices for maintainability and performance. Use the Angular CLI for scaffolding components, services, directives, pipes, and routes to ensure consistency.
25
-
26
- 3. Once you finish generating code, run `ng build` to ensure there are no build errors. If there are errors, analyze the error messages and fix them before proceeding. Do not skip this step, as it is critical for ensuring the generated code is correct and functional.
27
-
28
- ## Creating New Projects
29
-
30
- If no guidelines are provided by the user, use these defaults when creating a new Angular project:
31
-
32
- 1. Use the latest stable version of Angular unless the user specifies otherwise.
33
- 2. Prefer Signal Forms for new projects only when the target Angular version supports them. [Find out more](references/signal-forms.md).
34
-
35
- **Execution Rules for `ng new`:**
36
- When asked to create a new Angular project, you must determine the correct execution command by following these strict steps:
37
-
38
- **Step 1: Check for an explicit user version.**
39
-
40
- - **IF** the user requests a specific version (e.g., Angular 15), bypass local installations and strictly use `npx`.
41
- - **Command:** `npx @angular/cli@<requested_version> new <project-name>`
42
-
43
- **Step 2: Check for an existing Angular installation.**
44
-
45
- - **IF** no specific version is requested, run `ng version` in the terminal to check if the Angular CLI is already installed on the system.
46
- - **IF** the command succeeds and returns an installed version, use the local/global installation directly.
47
- - **Command:** `ng new <project-name>`
48
-
49
- **Step 3: Fallback to Latest.**
50
-
51
- - **IF** no specific version is requested AND the `ng version` command fails (indicating no Angular installation exists), you must use `npx` to fetch the latest version.
52
- - **Command:** `npx @angular/cli@latest new <project-name>`
53
-
54
- ## Components
55
-
56
- When working with Angular components, consult the following references based on the task:
57
-
58
- - **Fundamentals**: Anatomy, metadata, core concepts, and template control flow (@if, @for, @switch). Read [components.md](references/components.md)
59
- - **Inputs**: Signal-based inputs, transforms, and model inputs. Read [inputs.md](references/inputs.md)
60
- - **Outputs**: Signal-based outputs and custom event best practices. Read [outputs.md](references/outputs.md)
61
- - **Host Elements**: Host bindings and attribute injection. Read [host-elements.md](references/host-elements.md)
62
-
63
- If you require deeper documentation not found in the references above, read the documentation at `https://angular.dev/guide/components`.
64
-
65
- ## Reactivity and Data Management
66
-
67
- When managing state and data reactivity, use Angular Signals and consult the following references:
68
-
69
- - **Signals Overview**: Core signal concepts (`signal`, `computed`), reactive contexts, and `untracked`. Read [signals-overview.md](references/signals-overview.md)
70
- - **Dependent State (`linkedSignal`)**: Creating writable state linked to source signals. Read [linked-signal.md](references/linked-signal.md)
71
- - **Async Reactivity (`resource`)**: Fetching asynchronous data directly into signal state. Read [resource.md](references/resource.md)
72
- - **Side Effects (`effect`)**: Logging, third-party DOM manipulation (`afterRenderEffect`), and when NOT to use effects. Read [effects.md](references/effects.md)
73
-
74
- ## Forms
75
-
76
- In most cases for new apps, **prefer signal forms**. When making a forms decision, analyze the project and consider the following guidelines:
77
-
78
- - If the application version supports Signal Forms and this is a new form, **prefer signal forms**.
79
- - For older applications or existing forms, match the application's current form strategy.
80
-
81
- - **Signal Forms**: Use signals for form state management. Read [signal-forms.md](references/signal-forms.md)
82
- - **Template-driven forms**: Use for simple forms. Read [template-driven-forms.md](references/template-driven-forms.md)
83
- - **Reactive forms**: Use for complex forms. Read [reactive-forms.md](references/reactive-forms.md)
84
-
85
- ## Dependency Injection
86
-
87
- When implementing dependency injection in Angular, follow these guidelines:
88
-
89
- - **Fundamentals**: Overview of Dependency Injection, services, and the `inject()` function. Read [di-fundamentals.md](references/di-fundamentals.md)
90
- - **Creating and Using Services**: Creating services, the `providedIn: 'root'` option, and injecting into components or other services. Read [creating-services.md](references/creating-services.md)
91
- - **Defining Dependency Providers**: Automatic vs manual provision, `InjectionToken`, `useClass`, `useValue`, `useFactory`, and scopes. Read [defining-providers.md](references/defining-providers.md)
92
- - **Injection Context**: Where `inject()` is allowed, `runInInjectionContext`, and `assertInInjectionContext`. Read [injection-context.md](references/injection-context.md)
93
- - **Hierarchical Injectors**: The `EnvironmentInjector` vs `ElementInjector`, resolution rules, modifiers (`optional`, `skipSelf`), and `providers` vs `viewProviders`. Read [hierarchical-injectors.md](references/hierarchical-injectors.md)
94
-
95
- ## Angular Aria
96
-
97
- When building accessible custom components for any of the following patterns: Accordion, Listbox, Combobox, Menu, Tabs, Toolbar, Tree, Grid, consult the following reference:
98
-
99
- - **Angular Aria Components**: Building headless, accessible components (Accordion, Listbox, Combobox, Menu, Tabs, Toolbar, Tree, Grid) and styling ARIA attributes. Read [angular-aria.md](references/angular-aria.md)
100
-
101
- ## Routing
102
-
103
- When implementing navigation in Angular, consult the following references:
104
-
105
- - **Define Routes**: URL paths, static vs dynamic segments, wildcards, and redirects. Read [define-routes.md](references/define-routes.md)
106
- - **Route Loading Strategies**: Eager vs lazy loading, and context-aware loading. Read [loading-strategies.md](references/loading-strategies.md)
107
- - **Show Routes with Outlets**: Using `<router-outlet>`, nested outlets, and named outlets. Read [show-routes-with-outlets.md](references/show-routes-with-outlets.md)
108
- - **Navigate to Routes**: Declarative navigation with `RouterLink` and programmatic navigation with `Router`. Read [navigate-to-routes.md](references/navigate-to-routes.md)
109
- - **Control Route Access with Guards**: Implementing `CanActivate`, `CanMatch`, and other guards for security. Read [route-guards.md](references/route-guards.md)
110
- - **Data Resolvers**: Pre-fetching data before route activation with `ResolveFn`. Read [data-resolvers.md](references/data-resolvers.md)
111
- - **Router Lifecycle and Events**: Chronological order of navigation events and debugging. Read [router-lifecycle.md](references/router-lifecycle.md)
112
- - **Rendering Strategies**: CSR, SSG (Prerendering), and SSR with hydration. Read [rendering-strategies.md](references/rendering-strategies.md)
113
- - **Route Transition Animations**: Enabling and customizing the View Transitions API. Read [route-animations.md](references/route-animations.md)
114
-
115
- If you require deeper documentation or more context, visit the [official Angular Routing guide](https://angular.dev/guide/routing).
116
-
117
- ## Styling and Animations
118
-
119
- When implementing styling and animations in Angular, consult the following references:
120
-
121
- - **Using Tailwind CSS with Angular**: Integrating Tailwind CSS into Angular projects. Read [tailwind-css.md](references/tailwind-css.md)
122
- - **Angular Animations**: Using native CSS (recommended) or the legacy DSL for dynamic effects. Read [angular-animations.md](references/angular-animations.md)
123
- - **Styling components**: Best practices for component styles and encapsulation. Read [component-styling.md](references/component-styling.md)
124
-
125
- ## Testing
126
-
127
- When writing or updating tests, consult the following references based on the task:
128
-
129
- - **Fundamentals**: Best practices for unit testing, async patterns, and `TestBed`. Read [testing-fundamentals.md](references/testing-fundamentals.md)
130
- - **Component Harnesses**: Standard patterns for robust component interaction. Read [component-harnesses.md](references/component-harnesses.md)
131
- - **Router Testing**: Using `RouterTestingHarness` for reliable navigation tests. Read [router-testing.md](references/router-testing.md)
132
- - **End-to-End (E2E) Testing**: Best practices for E2E tests with Cypress or Playwright. Read [e2e-testing.md](references/e2e-testing.md)
133
-
134
- ## Tooling
135
-
136
- When working with Angular tooling, consult the following references:
137
-
138
- - **Angular CLI**: Creating applications, generating code (components, routes, services), serving, and building. Read [cli.md](references/cli.md)
139
- - **Angular MCP Server**: Available tools, configuration, and experimental features. Read [mcp.md](references/mcp.md)
140
-
141
- ## Anti-Patterns
142
-
143
- - Using `null` or `undefined` as initial signal form field values — use `''`, `0`, or `[]` instead
144
- - Accessing form field state flags without calling the field first: `form.field.valid()` — use `form.field().valid()`
145
- - Starting new forms with older form APIs when the target Angular version supports Signal Forms
146
- - Setting `min`, `max`, `value`, `disabled`, or `readonly` HTML attributes on `[formField]` inputs — define these as schema rules instead
147
- - Calling `inject()` outside an injection context — use `runInInjectionContext` when needed
148
- - Using `effect()` for derived state that should use `computed()`
149
- - Referencing `$parent.$index` in nested `@for` loops — Angular does not support `$parent`; use `let outerIdx = $index` instead
150
-
151
- ## Related Skills
152
-
153
- - `tdd-workflow` — test-driven development workflow applicable to Angular components and services
154
- - `security-review` — security checklist for web applications including Angular-specific concerns
155
- - `frontend-patterns` — general frontend patterns for context on React/Next.js approaches
@@ -1,160 +0,0 @@
1
- # Angular Animations
2
-
3
- When animating elements in Angular, **first analyze the project's Angular version** in `package.json`.
4
- For modern applications (**Angular v20.2 and above**), prefer using native CSS with `animate.enter` and `animate.leave`. For older applications, you may need to use the deprecated `@angular/animations` package.
5
-
6
- ## 1. Native CSS Animations (v20.2+ Recommended)
7
-
8
- Modern Angular provides `animate.enter` and `animate.leave` to animate elements as they enter or leave the DOM. They apply CSS classes at the appropriate times.
9
-
10
- ### `animate.enter` and `animate.leave`
11
-
12
- Use these directly on elements to apply CSS classes during the enter or leave phase. Angular automatically removes the enter classes when the animation completes. For `animate.leave`, Angular waits for the animation to finish before removing the element from the DOM.
13
-
14
- `animate.enter` example:
15
-
16
- ```html
17
- @if (isShown()) {
18
- <div class="enter-container" animate.enter="enter-animation">
19
- <p>The box is entering.</p>
20
- </div>
21
- }
22
- ```
23
-
24
- ```css
25
- /* Ensure you have a starting style if using transitions instead of keyframes */
26
- .enter-container {
27
- border: 1px solid #dddddd;
28
- margin-top: 1em;
29
- padding: 20px;
30
- font-weight: bold;
31
- font-size: 20px;
32
- }
33
- .enter-container p {
34
- margin: 0;
35
- }
36
- .enter-animation {
37
- animation: slide-fade 1s;
38
- }
39
- @keyframes slide-fade {
40
- from {
41
- opacity: 0;
42
- transform: translateY(20px);
43
- }
44
- to {
45
- opacity: 1;
46
- transform: translateY(0);
47
- }
48
- }
49
- ```
50
-
51
- _Note: `animate.leave` may be added to child elements being removed._
52
-
53
- ### Event Bindings and Third-party Libraries
54
-
55
- You can bind to `(animate.enter)` and `(animate.leave)` to call functions or use JS libraries like GSAP.
56
-
57
- ```html
58
- @if(show()) {
59
- <div (animate.leave)="onLeave($event)">...</div>
60
- }
61
- ```
62
-
63
- ```ts
64
- import { AnimationCallbackEvent } from '@angular/core';
65
-
66
- onLeave(event: AnimationCallbackEvent) {
67
- // Custom animation logic here
68
- // CRITICAL: You MUST call animationComplete() when done so Angular removes the element!
69
- event.animationComplete();
70
- }
71
- ```
72
-
73
- ## 2. Advanced CSS Animations
74
-
75
- CSS offers robust tools for advanced animation sequences.
76
-
77
- ### Animating State and Styles
78
-
79
- Toggle CSS classes on elements using property binding to trigger transitions.
80
-
81
- ```html
82
- <div [class.open]="isOpen">...</div>
83
- ```
84
-
85
- ```css
86
- div {
87
- transition: height 0.3s ease-out;
88
- height: 100px;
89
- }
90
- div.open {
91
- height: 200px;
92
- }
93
- ```
94
-
95
- ### Animating Auto Height
96
-
97
- You can use `css-grid` to animate to auto height.
98
-
99
- ```css
100
- .container {
101
- display: grid;
102
- grid-template-rows: 0fr;
103
- transition: grid-template-rows 0.3s;
104
- }
105
- .container.open {
106
- grid-template-rows: 1fr;
107
- }
108
- .container > div {
109
- overflow: hidden;
110
- }
111
- ```
112
-
113
- ### Staggering and Parallel Animations
114
-
115
- - **Staggering**: Use `animation-delay` or `transition-delay` with different values for items in a list.
116
- - **Parallel**: Apply multiple animations in the `animation` shorthand (e.g., `animation: rotate 3s, fade-in 2s;`).
117
-
118
- ### Programmatic Control
119
-
120
- Retrieve animations directly using standard Web APIs:
121
-
122
- ```ts
123
- const animations = element.getAnimations();
124
- animations.forEach((anim) => anim.pause());
125
- ```
126
-
127
- ## 3. Legacy Animations DSL (Deprecated)
128
-
129
- For older projects (pre v20.2 or where `@angular/animations` is already heavily used), you use the component metadata DSL.
130
-
131
- **Important:** Do not mix legacy animations and `animate.enter`/`leave` in the same component.
132
-
133
- ### Setup
134
-
135
- ```ts
136
- bootstrapApplication(App, {
137
- providers: [provideAnimationsAsync()],
138
- });
139
- ```
140
-
141
- ### Defining Transitions
142
-
143
- ```ts
144
- import {signal} from '@angular/core';
145
- import {trigger, state, style, animate, transition} from '@angular/animations';
146
-
147
- @Component({
148
- animations: [
149
- trigger('openClose', [
150
- state('open', style({opacity: 1})),
151
- state('closed', style({opacity: 0})),
152
- transition('open <=> closed', [animate('0.5s')]),
153
- ]),
154
- ],
155
- template: `<div [@openClose]="isOpen() ? 'open' : 'closed'">...</div>`,
156
- })
157
- export class OpenClose {
158
- isOpen = signal(true);
159
- }
160
- ```