@ngxtm/devkit 3.4.0 → 3.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (344) hide show
  1. package/package.json +2 -1
  2. package/rules/README.md +141 -0
  3. package/rules/dart/best-practices/SKILL.md +23 -0
  4. package/rules/dart/language/SKILL.md +52 -0
  5. package/rules/dart/tooling/SKILL.md +43 -0
  6. package/rules/dotnet/aspnet-core/SKILL.md +92 -0
  7. package/rules/dotnet/aspnet-core/references/REFERENCE.md +335 -0
  8. package/rules/dotnet/best-practices/SKILL.md +101 -0
  9. package/rules/dotnet/best-practices/references/REFERENCE.md +256 -0
  10. package/rules/dotnet/blazor/SKILL.md +146 -0
  11. package/rules/dotnet/blazor/references/REFERENCE.md +392 -0
  12. package/rules/dotnet/language/SKILL.md +82 -0
  13. package/rules/dotnet/language/references/REFERENCE.md +222 -0
  14. package/rules/dotnet/patterns.rule.md +388 -0
  15. package/rules/dotnet/razor-pages/SKILL.md +124 -0
  16. package/rules/dotnet/razor-pages/references/REFERENCE.md +321 -0
  17. package/rules/dotnet/security/SKILL.md +89 -0
  18. package/rules/dotnet/security/references/REFERENCE.md +295 -0
  19. package/rules/dotnet/tooling/SKILL.md +92 -0
  20. package/rules/dotnet/tooling/references/REFERENCE.md +300 -0
  21. package/rules/flutter/auto-route-navigation/SKILL.md +43 -0
  22. package/rules/flutter/auto-route-navigation/references/REFERENCE.md +19 -0
  23. package/rules/flutter/auto-route-navigation/references/router-config.md +62 -0
  24. package/rules/flutter/bloc-state-management/SKILL.md +64 -0
  25. package/rules/flutter/bloc-state-management/references/REFERENCE.md +20 -0
  26. package/rules/flutter/bloc-state-management/references/auth-bloc-example.md +52 -0
  27. package/rules/flutter/bloc-state-management/references/equatable-usage.md +56 -0
  28. package/rules/flutter/bloc-state-management/references/property-based-state.md +68 -0
  29. package/rules/flutter/bloc.rule.md +76 -0
  30. package/rules/flutter/cicd/SKILL.md +48 -0
  31. package/rules/flutter/cicd/references/advanced-workflow.md +66 -0
  32. package/rules/flutter/cicd/references/fastlane.md +139 -0
  33. package/rules/flutter/cicd/references/github-actions.md +59 -0
  34. package/rules/flutter/dependency-injection/SKILL.md +42 -0
  35. package/rules/flutter/dependency-injection/references/REFERENCE.md +15 -0
  36. package/rules/flutter/dependency-injection/references/modules.md +37 -0
  37. package/rules/flutter/error-handling/SKILL.md +32 -0
  38. package/rules/flutter/error-handling/references/REFERENCE.md +19 -0
  39. package/rules/flutter/error-handling/references/error-mapping.md +31 -0
  40. package/rules/flutter/feature-based-clean-architecture/SKILL.md +46 -0
  41. package/rules/flutter/feature-based-clean-architecture/references/REFERENCE.md +14 -0
  42. package/rules/flutter/feature-based-clean-architecture/references/folder-structure.md +36 -0
  43. package/rules/flutter/getx-navigation/SKILL.md +70 -0
  44. package/rules/flutter/getx-navigation/references/app-pages.md +40 -0
  45. package/rules/flutter/getx-navigation/references/middleware-example.md +29 -0
  46. package/rules/flutter/getx-state-management/SKILL.md +76 -0
  47. package/rules/flutter/getx-state-management/references/binding-example.md +32 -0
  48. package/rules/flutter/getx-state-management/references/reactive-vs-simple.md +39 -0
  49. package/rules/flutter/go-router-navigation/SKILL.md +57 -0
  50. package/rules/flutter/idiomatic-flutter/SKILL.md +20 -0
  51. package/rules/flutter/layer-based-clean-architecture/SKILL.md +50 -0
  52. package/rules/flutter/layer-based-clean-architecture/references/REFERENCE.md +60 -0
  53. package/rules/flutter/layer-based-clean-architecture/references/repository-mapping.md +50 -0
  54. package/rules/flutter/localization/SKILL.md +50 -0
  55. package/rules/flutter/localization/references/REFERENCE.md +48 -0
  56. package/rules/flutter/localization/references/sheet-loader.md +33 -0
  57. package/rules/flutter/navigator-v1-navigation/SKILL.md +71 -0
  58. package/rules/flutter/navigator-v1-navigation/references/on-generate-route.md +48 -0
  59. package/rules/flutter/performance/SKILL.md +24 -0
  60. package/rules/flutter/retrofit-networking/SKILL.md +51 -0
  61. package/rules/flutter/retrofit-networking/references/REFERENCE.md +19 -0
  62. package/rules/flutter/retrofit-networking/references/token-refresh.md +40 -0
  63. package/rules/flutter/riverpod-state-management/SKILL.md +53 -0
  64. package/rules/flutter/riverpod-state-management/references/architecture.md +124 -0
  65. package/rules/flutter/riverpod-state-management/references/best-practices.md +89 -0
  66. package/rules/flutter/riverpod-state-management/references/testing.md +73 -0
  67. package/rules/flutter/riverpod.rule.md +78 -0
  68. package/rules/flutter/security/SKILL.md +33 -0
  69. package/rules/flutter/security/references/REFERENCE.md +15 -0
  70. package/rules/flutter/security/references/network-security.md +28 -0
  71. package/rules/flutter/testing/SKILL.md +44 -0
  72. package/rules/flutter/testing/references/REFERENCE.md +21 -0
  73. package/rules/flutter/testing/references/bloc-testing.md +38 -0
  74. package/rules/flutter/testing/references/integration-testing.md +128 -0
  75. package/rules/flutter/testing/references/robot-pattern.md +82 -0
  76. package/rules/flutter/testing/references/unit-testing.md +130 -0
  77. package/rules/flutter/testing/references/widget-testing.md +120 -0
  78. package/rules/flutter/widgets/SKILL.md +37 -0
  79. package/rules/golang/chi-router/SKILL.md +219 -0
  80. package/rules/golang/chi-router/references/REFERENCE.md +13 -0
  81. package/rules/golang/chi-router/references/routing-patterns.md +205 -0
  82. package/rules/golang/cobra-cli/SKILL.md +227 -0
  83. package/rules/golang/cobra-cli/references/REFERENCE.md +13 -0
  84. package/rules/golang/cobra-cli/references/command-patterns.md +224 -0
  85. package/rules/golang/core/SKILL.md +210 -0
  86. package/rules/golang/core/references/REFERENCE.md +14 -0
  87. package/rules/golang/core/references/concurrency-patterns.md +114 -0
  88. package/rules/golang/core/references/error-handling.md +87 -0
  89. package/rules/golang/echo-framework/SKILL.md +215 -0
  90. package/rules/golang/echo-framework/references/REFERENCE.md +14 -0
  91. package/rules/golang/echo-framework/references/middleware-patterns.md +141 -0
  92. package/rules/golang/echo-framework/references/routing-patterns.md +140 -0
  93. package/rules/golang/ent-orm/SKILL.md +239 -0
  94. package/rules/golang/ent-orm/references/REFERENCE.md +13 -0
  95. package/rules/golang/ent-orm/references/schema-patterns.md +255 -0
  96. package/rules/golang/fiber-framework/SKILL.md +196 -0
  97. package/rules/golang/fiber-framework/references/REFERENCE.md +13 -0
  98. package/rules/golang/fiber-framework/references/routing-patterns.md +191 -0
  99. package/rules/golang/gin-framework/SKILL.md +205 -0
  100. package/rules/golang/gin-framework/references/REFERENCE.md +14 -0
  101. package/rules/golang/gin-framework/references/middleware-patterns.md +119 -0
  102. package/rules/golang/gorm-orm/SKILL.md +196 -0
  103. package/rules/golang/gorm-orm/references/REFERENCE.md +14 -0
  104. package/rules/golang/gorm-orm/references/model-definitions.md +167 -0
  105. package/rules/golang/gorm-orm/references/query-patterns.md +161 -0
  106. package/rules/golang/grpc/SKILL.md +231 -0
  107. package/rules/golang/grpc/references/REFERENCE.md +13 -0
  108. package/rules/golang/grpc/references/service-patterns.md +276 -0
  109. package/rules/golang/testify/SKILL.md +239 -0
  110. package/rules/golang/testify/references/REFERENCE.md +13 -0
  111. package/rules/golang/testify/references/assert-patterns.md +170 -0
  112. package/rules/golang/validator/SKILL.md +234 -0
  113. package/rules/golang/validator/references/REFERENCE.md +13 -0
  114. package/rules/golang/validator/references/validation-tags.md +211 -0
  115. package/rules/golang/viper-config/SKILL.md +244 -0
  116. package/rules/golang/viper-config/references/REFERENCE.md +13 -0
  117. package/rules/golang/viper-config/references/config-loading.md +181 -0
  118. package/rules/golang/wire-di/SKILL.md +243 -0
  119. package/rules/golang/wire-di/references/REFERENCE.md +13 -0
  120. package/rules/golang/wire-di/references/provider-patterns.md +193 -0
  121. package/rules/golang/zap-logging/SKILL.md +203 -0
  122. package/rules/golang/zap-logging/references/REFERENCE.md +13 -0
  123. package/rules/golang/zap-logging/references/logger-config.md +165 -0
  124. package/rules/java/build-gradle/SKILL.md +92 -0
  125. package/rules/java/build-gradle/references/REFERENCE.md +14 -0
  126. package/rules/java/build-gradle/references/kotlin-dsl.md +118 -0
  127. package/rules/java/build-gradle/references/task-configuration.md +132 -0
  128. package/rules/java/build-maven/SKILL.md +86 -0
  129. package/rules/java/build-maven/references/REFERENCE.md +14 -0
  130. package/rules/java/build-maven/references/dependency-management.md +111 -0
  131. package/rules/java/build-maven/references/lifecycle-phases.md +114 -0
  132. package/rules/java/graalvm-native/SKILL.md +105 -0
  133. package/rules/java/graalvm-native/references/REFERENCE.md +12 -0
  134. package/rules/java/java-collections-streams/SKILL.md +148 -0
  135. package/rules/java/java-collections-streams/references/REFERENCE.md +15 -0
  136. package/rules/java/java-collections-streams/references/collectors-patterns.md +178 -0
  137. package/rules/java/java-collections-streams/references/stream-pipelines.md +165 -0
  138. package/rules/java/java-concurrency/SKILL.md +187 -0
  139. package/rules/java/java-concurrency/references/REFERENCE.md +17 -0
  140. package/rules/java/java-concurrency/references/completable-future.md +165 -0
  141. package/rules/java/java-concurrency/references/executor-patterns.md +176 -0
  142. package/rules/java/java-concurrency/references/virtual-threads.md +190 -0
  143. package/rules/java/java-core-language/SKILL.md +121 -0
  144. package/rules/java/java-core-language/references/REFERENCE.md +15 -0
  145. package/rules/java/java-core-language/references/jvm-memory-model.md +160 -0
  146. package/rules/java/java-core-language/references/modern-java-features.md +168 -0
  147. package/rules/java/java-project-structure/SKILL.md +195 -0
  148. package/rules/java/java-project-structure/references/REFERENCE.md +15 -0
  149. package/rules/java/java-project-structure/references/maven-project-layout.md +199 -0
  150. package/rules/java/java-project-structure/references/module-system.md +159 -0
  151. package/rules/java/micronaut-core/SKILL.md +99 -0
  152. package/rules/java/micronaut-core/references/REFERENCE.md +12 -0
  153. package/rules/java/micronaut-reactive/SKILL.md +68 -0
  154. package/rules/java/micronaut-reactive/references/REFERENCE.md +12 -0
  155. package/rules/java/quarkus-core/SKILL.md +85 -0
  156. package/rules/java/quarkus-core/references/REFERENCE.md +12 -0
  157. package/rules/java/quarkus-reactive/SKILL.md +67 -0
  158. package/rules/java/quarkus-reactive/references/REFERENCE.md +12 -0
  159. package/rules/java/spring-batch/SKILL.md +102 -0
  160. package/rules/java/spring-batch/references/REFERENCE.md +12 -0
  161. package/rules/java/spring-boot-architecture/SKILL.md +206 -0
  162. package/rules/java/spring-boot-architecture/references/REFERENCE.md +15 -0
  163. package/rules/java/spring-boot-architecture/references/auto-configuration.md +158 -0
  164. package/rules/java/spring-boot-architecture/references/configuration-properties.md +202 -0
  165. package/rules/java/spring-boot-web/SKILL.md +217 -0
  166. package/rules/java/spring-boot-web/references/REFERENCE.md +17 -0
  167. package/rules/java/spring-cloud/SKILL.md +109 -0
  168. package/rules/java/spring-cloud/references/REFERENCE.md +13 -0
  169. package/rules/java/spring-data-jpa/SKILL.md +241 -0
  170. package/rules/java/spring-data-jpa/references/REFERENCE.md +16 -0
  171. package/rules/java/spring-security/SKILL.md +161 -0
  172. package/rules/java/spring-security/references/REFERENCE.md +16 -0
  173. package/rules/java/spring-security/references/jwt-auth-flow.md +213 -0
  174. package/rules/java/testing-junit-mockito/SKILL.md +135 -0
  175. package/rules/java/testing-junit-mockito/references/REFERENCE.md +15 -0
  176. package/rules/java/testing-junit-mockito/references/junit5-patterns.md +159 -0
  177. package/rules/java/testing-junit-mockito/references/mockito-patterns.md +148 -0
  178. package/rules/java/testing-junit-mockito/references/spring-boot-testing.md +152 -0
  179. package/rules/javascript/best-practices/SKILL.md +64 -0
  180. package/rules/javascript/best-practices/references/REFERENCE.md +91 -0
  181. package/rules/javascript/language/SKILL.md +71 -0
  182. package/rules/javascript/language/references/REFERENCE.md +106 -0
  183. package/rules/javascript/tooling/SKILL.md +60 -0
  184. package/rules/javascript/tooling/references/REFERENCE.md +107 -0
  185. package/rules/metadata.json +54 -0
  186. package/rules/nestjs/api-standards/SKILL.md +47 -0
  187. package/rules/nestjs/api-standards/references/pagination-wrapper.md +87 -0
  188. package/rules/nestjs/architecture/SKILL.md +68 -0
  189. package/rules/nestjs/architecture/references/dynamic-module.md +53 -0
  190. package/rules/nestjs/caching/SKILL.md +51 -0
  191. package/rules/nestjs/caching/references/REFERENCE.md +13 -0
  192. package/rules/nestjs/caching/references/cache-patterns.md +183 -0
  193. package/rules/nestjs/configuration/SKILL.md +41 -0
  194. package/rules/nestjs/configuration/references/REFERENCE.md +13 -0
  195. package/rules/nestjs/configuration/references/config-patterns.md +184 -0
  196. package/rules/nestjs/controllers-services/SKILL.md +63 -0
  197. package/rules/nestjs/controllers-services/references/REFERENCE.md +14 -0
  198. package/rules/nestjs/controllers-services/references/controller-patterns.md +119 -0
  199. package/rules/nestjs/controllers-services/references/service-patterns.md +129 -0
  200. package/rules/nestjs/database/SKILL.md +102 -0
  201. package/rules/nestjs/database/references/REFERENCE.md +14 -0
  202. package/rules/nestjs/database/references/typeorm-patterns.md +156 -0
  203. package/rules/nestjs/deployment/SKILL.md +36 -0
  204. package/rules/nestjs/deployment/references/REFERENCE.md +13 -0
  205. package/rules/nestjs/deployment/references/deployment-patterns.md +140 -0
  206. package/rules/nestjs/documentation/SKILL.md +64 -0
  207. package/rules/nestjs/documentation/references/REFERENCE.md +13 -0
  208. package/rules/nestjs/documentation/references/swagger-patterns.md +139 -0
  209. package/rules/nestjs/error-handling/SKILL.md +55 -0
  210. package/rules/nestjs/error-handling/references/REFERENCE.md +13 -0
  211. package/rules/nestjs/error-handling/references/exception-filters.md +152 -0
  212. package/rules/nestjs/file-uploads/SKILL.md +35 -0
  213. package/rules/nestjs/file-uploads/references/REFERENCE.md +13 -0
  214. package/rules/nestjs/file-uploads/references/upload-patterns.md +125 -0
  215. package/rules/nestjs/observability/SKILL.md +39 -0
  216. package/rules/nestjs/observability/references/REFERENCE.md +13 -0
  217. package/rules/nestjs/observability/references/logging-metrics.md +175 -0
  218. package/rules/nestjs/performance/SKILL.md +60 -0
  219. package/rules/nestjs/performance/references/REFERENCE.md +13 -0
  220. package/rules/nestjs/performance/references/performance-patterns.md +107 -0
  221. package/rules/nestjs/real-time/SKILL.md +45 -0
  222. package/rules/nestjs/real-time/references/REFERENCE.md +13 -0
  223. package/rules/nestjs/real-time/references/websocket-patterns.md +121 -0
  224. package/rules/nestjs/scheduling/SKILL.md +39 -0
  225. package/rules/nestjs/scheduling/references/REFERENCE.md +13 -0
  226. package/rules/nestjs/scheduling/references/scheduling-patterns.md +137 -0
  227. package/rules/nestjs/search/SKILL.md +41 -0
  228. package/rules/nestjs/search/references/REFERENCE.md +13 -0
  229. package/rules/nestjs/search/references/search-patterns.md +137 -0
  230. package/rules/nestjs/security/SKILL.md +87 -0
  231. package/rules/nestjs/security/references/REFERENCE.md +14 -0
  232. package/rules/nestjs/security/references/authentication.md +151 -0
  233. package/rules/nestjs/testing/SKILL.md +40 -0
  234. package/rules/nestjs/testing/references/REFERENCE.md +14 -0
  235. package/rules/nestjs/testing/references/unit-testing.md +179 -0
  236. package/rules/nestjs/transport/SKILL.md +45 -0
  237. package/rules/nestjs/transport/references/REFERENCE.md +13 -0
  238. package/rules/nestjs/transport/references/microservices-patterns.md +170 -0
  239. package/rules/nextjs/app-router/SKILL.md +46 -0
  240. package/rules/nextjs/app-router/references/REFERENCE.md +14 -0
  241. package/rules/nextjs/app-router/references/routing-patterns.md +182 -0
  242. package/rules/nextjs/architecture/SKILL.md +44 -0
  243. package/rules/nextjs/architecture/references/fsd-structure.md +77 -0
  244. package/rules/nextjs/authentication/SKILL.md +29 -0
  245. package/rules/nextjs/authentication/references/auth-implementation.md +73 -0
  246. package/rules/nextjs/caching/SKILL.md +66 -0
  247. package/rules/nextjs/caching/references/REFERENCE.md +13 -0
  248. package/rules/nextjs/caching/references/cache-strategies.md +168 -0
  249. package/rules/nextjs/data-access-layer/SKILL.md +33 -0
  250. package/rules/nextjs/data-access-layer/references/patterns.md +66 -0
  251. package/rules/nextjs/data-fetching/SKILL.md +59 -0
  252. package/rules/nextjs/data-fetching/references/REFERENCE.md +13 -0
  253. package/rules/nextjs/data-fetching/references/fetch-patterns.md +160 -0
  254. package/rules/nextjs/internationalization/SKILL.md +105 -0
  255. package/rules/nextjs/internationalization/references/REFERENCE.md +13 -0
  256. package/rules/nextjs/internationalization/references/i18n-patterns.md +180 -0
  257. package/rules/nextjs/optimization/SKILL.md +64 -0
  258. package/rules/nextjs/optimization/references/REFERENCE.md +13 -0
  259. package/rules/nextjs/optimization/references/optimization-patterns.md +190 -0
  260. package/rules/nextjs/rendering/SKILL.md +91 -0
  261. package/rules/nextjs/rendering/references/REFERENCE.md +13 -0
  262. package/rules/nextjs/rendering/references/rendering-modes.md +163 -0
  263. package/rules/nextjs/server-actions/SKILL.md +46 -0
  264. package/rules/nextjs/server-actions/references/REFERENCE.md +13 -0
  265. package/rules/nextjs/server-actions/references/action-patterns.md +188 -0
  266. package/rules/nextjs/server-components/SKILL.md +52 -0
  267. package/rules/nextjs/server-components/references/REFERENCE.md +13 -0
  268. package/rules/nextjs/server-components/references/component-patterns.md +175 -0
  269. package/rules/nextjs/state-management/SKILL.md +73 -0
  270. package/rules/nextjs/state-management/references/REFERENCE.md +13 -0
  271. package/rules/nextjs/state-management/references/state-patterns.md +218 -0
  272. package/rules/nextjs/styling/SKILL.md +31 -0
  273. package/rules/nextjs/styling/references/implementation.md +56 -0
  274. package/rules/react/component-patterns/SKILL.md +66 -0
  275. package/rules/react/component-patterns/references/REFERENCE.md +126 -0
  276. package/rules/react/hooks/SKILL.md +60 -0
  277. package/rules/react/hooks/references/REFERENCE.md +132 -0
  278. package/rules/react/hooks.rule.md +79 -0
  279. package/rules/react/performance/SKILL.md +69 -0
  280. package/rules/react/performance/references/REFERENCE.md +143 -0
  281. package/rules/react/security/SKILL.md +46 -0
  282. package/rules/react/security/references/REFERENCE.md +170 -0
  283. package/rules/react/state-management/SKILL.md +56 -0
  284. package/rules/react/state-management/references/REFERENCE.md +137 -0
  285. package/rules/react/testing/SKILL.md +45 -0
  286. package/rules/react/testing/references/REFERENCE.md +149 -0
  287. package/rules/react/tooling/SKILL.md +39 -0
  288. package/rules/react/typescript/SKILL.md +53 -0
  289. package/rules/rust/actix-web/SKILL.md +160 -0
  290. package/rules/rust/actix-web/references/REFERENCE.md +13 -0
  291. package/rules/rust/actix-web/references/handler-patterns.md +198 -0
  292. package/rules/rust/async-graphql/SKILL.md +228 -0
  293. package/rules/rust/async-graphql/references/REFERENCE.md +13 -0
  294. package/rules/rust/async-graphql/references/schema-patterns.md +215 -0
  295. package/rules/rust/axum/SKILL.md +161 -0
  296. package/rules/rust/axum/references/REFERENCE.md +14 -0
  297. package/rules/rust/axum/references/handler-patterns.md +97 -0
  298. package/rules/rust/bevy/SKILL.md +206 -0
  299. package/rules/rust/bevy/references/REFERENCE.md +13 -0
  300. package/rules/rust/bevy/references/ecs-patterns.md +226 -0
  301. package/rules/rust/clap/SKILL.md +217 -0
  302. package/rules/rust/clap/references/REFERENCE.md +13 -0
  303. package/rules/rust/clap/references/derive-patterns.md +205 -0
  304. package/rules/rust/core/SKILL.md +154 -0
  305. package/rules/rust/core/references/REFERENCE.md +14 -0
  306. package/rules/rust/core/references/error-handling.md +92 -0
  307. package/rules/rust/diesel-orm/SKILL.md +176 -0
  308. package/rules/rust/diesel-orm/references/REFERENCE.md +13 -0
  309. package/rules/rust/diesel-orm/references/schema-patterns.md +206 -0
  310. package/rules/rust/rocket/SKILL.md +182 -0
  311. package/rules/rust/rocket/references/REFERENCE.md +13 -0
  312. package/rules/rust/rocket/references/handler-patterns.md +209 -0
  313. package/rules/rust/sea-orm/SKILL.md +230 -0
  314. package/rules/rust/sea-orm/references/REFERENCE.md +13 -0
  315. package/rules/rust/sea-orm/references/entity-patterns.md +221 -0
  316. package/rules/rust/serde-serialization/SKILL.md +150 -0
  317. package/rules/rust/serde-serialization/references/REFERENCE.md +13 -0
  318. package/rules/rust/serde-serialization/references/serialization-patterns.md +199 -0
  319. package/rules/rust/sqlx-database/SKILL.md +140 -0
  320. package/rules/rust/sqlx-database/references/REFERENCE.md +13 -0
  321. package/rules/rust/sqlx-database/references/query-patterns.md +210 -0
  322. package/rules/rust/tauri/SKILL.md +180 -0
  323. package/rules/rust/tauri/references/REFERENCE.md +13 -0
  324. package/rules/rust/tauri/references/command-patterns.md +209 -0
  325. package/rules/rust/tokio-runtime/SKILL.md +167 -0
  326. package/rules/rust/tokio-runtime/references/REFERENCE.md +14 -0
  327. package/rules/rust/tokio-runtime/references/async-patterns.md +137 -0
  328. package/rules/rust/tokio-runtime/references/synchronization.md +152 -0
  329. package/rules/rust/tonic/SKILL.md +231 -0
  330. package/rules/rust/tonic/references/REFERENCE.md +13 -0
  331. package/rules/rust/tonic/references/service-patterns.md +213 -0
  332. package/rules/rust/tracing/SKILL.md +214 -0
  333. package/rules/rust/tracing/references/REFERENCE.md +13 -0
  334. package/rules/rust/tracing/references/instrumentation.md +187 -0
  335. package/rules/typescript/best-practices/SKILL.md +108 -0
  336. package/rules/typescript/best-practices/references/REFERENCE.md +68 -0
  337. package/rules/typescript/language/SKILL.md +72 -0
  338. package/rules/typescript/language/references/REFERENCE.md +67 -0
  339. package/rules/typescript/patterns.rule.md +85 -0
  340. package/rules/typescript/security/SKILL.md +59 -0
  341. package/rules/typescript/security/references/REFERENCE.md +113 -0
  342. package/rules/typescript/tooling/SKILL.md +52 -0
  343. package/rules/typescript/tooling/references/REFERENCE.md +110 -0
  344. package/skills/learn/SKILL.md +476 -0
@@ -0,0 +1,68 @@
1
+ ---
2
+ name: Micronaut Reactive
3
+ description: Reactive types, HTTP clients, and non-blocking patterns.
4
+ metadata:
5
+ labels: [java, micronaut, reactive]
6
+ triggers:
7
+ files: ['**/*.java']
8
+ keywords: [Flux, Mono, Reactive, HttpClient, '@Client', Publisher, Flowable]
9
+ ---
10
+
11
+ # Micronaut Reactive Standards
12
+
13
+ ## Reactive Controllers
14
+
15
+ ```java
16
+ @Controller("/users")
17
+ public class UserController {
18
+
19
+ @Get("/{id}")
20
+ public Mono<User> findById(Long id) {
21
+ return userService.findById(id);
22
+ }
23
+
24
+ @Get(produces = MediaType.TEXT_EVENT_STREAM)
25
+ public Flux<User> stream() {
26
+ return userService.streamAll();
27
+ }
28
+ }
29
+ ```
30
+
31
+ ## Declarative HTTP Client
32
+
33
+ ```java
34
+ @Client("order-service")
35
+ public interface OrderClient {
36
+
37
+ @Get("/orders/{userId}")
38
+ Flux<Order> getOrders(Long userId);
39
+
40
+ @Post("/orders")
41
+ Mono<Order> createOrder(@Body CreateOrderRequest request);
42
+ }
43
+ ```
44
+
45
+ ## Low-Level Client
46
+
47
+ ```java
48
+ @Singleton
49
+ public class ExternalApiService {
50
+
51
+ private final HttpClient httpClient;
52
+
53
+ public ExternalApiService(@Client("https://api.external.com") HttpClient httpClient) {
54
+ this.httpClient = httpClient;
55
+ }
56
+
57
+ public Mono<ExternalData> fetchData(String id) {
58
+ return Mono.from(httpClient.retrieve(
59
+ HttpRequest.GET("/data/" + id),
60
+ ExternalData.class
61
+ ));
62
+ }
63
+ }
64
+ ```
65
+
66
+ ## References
67
+
68
+ - [HTTP Client Patterns](references/http-client-patterns.md) - Retry, fallback, timeout
@@ -0,0 +1,12 @@
1
+ # Micronaut Reactive References
2
+
3
+ ## References
4
+
5
+ - [**HTTP Client Patterns**](http-client-patterns.md) - Declarative clients, retry, fallback
6
+
7
+ ## Quick Checks
8
+
9
+ - [ ] Use @Client for declarative HTTP clients
10
+ - [ ] Mono for single values, Flux for streams
11
+ - [ ] Configure timeouts and retries
12
+ - [ ] Non-blocking I/O throughout
@@ -0,0 +1,85 @@
1
+ ---
2
+ name: Quarkus Core
3
+ description: CDI dependency injection, configuration, dev mode, and extensions.
4
+ metadata:
5
+ labels: [java, quarkus, di, configuration]
6
+ triggers:
7
+ files: ['**/*.java', 'application.properties', 'pom.xml']
8
+ keywords: [Quarkus, '@Inject', '@ApplicationScoped', '@ConfigProperty', Arc, QuarkusApplication]
9
+ ---
10
+
11
+ # Quarkus Core Standards
12
+
13
+ ## CDI (ArC) Dependency Injection
14
+
15
+ ```java
16
+ @ApplicationScoped
17
+ public class UserService {
18
+
19
+ @Inject
20
+ UserRepository userRepository;
21
+
22
+ @Inject
23
+ @ConfigProperty(name = "app.max-users", defaultValue = "1000")
24
+ int maxUsers;
25
+
26
+ public User findById(Long id) {
27
+ return userRepository.findById(id);
28
+ }
29
+ }
30
+
31
+ // Bean scopes
32
+ @ApplicationScoped // Single instance per application
33
+ @RequestScoped // Per HTTP request
34
+ @Singleton // Like ApplicationScoped but not proxied
35
+ @Dependent // New instance each injection
36
+ ```
37
+
38
+ ## Configuration
39
+
40
+ ```java
41
+ @ConfigMapping(prefix = "app")
42
+ public interface AppConfig {
43
+ String name();
44
+ int maxConnections();
45
+ Optional<String> description();
46
+ DatabaseConfig database();
47
+
48
+ interface DatabaseConfig {
49
+ String url();
50
+ String username();
51
+ }
52
+ }
53
+
54
+ // Usage
55
+ @Inject
56
+ AppConfig config;
57
+ ```
58
+
59
+ ```properties
60
+ # application.properties
61
+ app.name=MyApp
62
+ app.max-connections=100
63
+ app.database.url=jdbc:postgresql://localhost/db
64
+ app.database.username=admin
65
+
66
+ # Profile-specific
67
+ %dev.app.database.url=jdbc:h2:mem:test
68
+ %prod.app.database.url=${DB_URL}
69
+ ```
70
+
71
+ ## Dev Mode
72
+
73
+ ```bash
74
+ # Live reload
75
+ ./mvnw quarkus:dev
76
+
77
+ # Continuous testing
78
+ ./mvnw quarkus:dev -Dquarkus.test.continuous-testing=enabled
79
+
80
+ # Dev UI at http://localhost:8080/q/dev
81
+ ```
82
+
83
+ ## References
84
+
85
+ - [CDI Patterns](references/cdi-patterns.md) - Producers, qualifiers, interceptors
@@ -0,0 +1,12 @@
1
+ # Quarkus Core References
2
+
3
+ ## References
4
+
5
+ - [**CDI Patterns**](cdi-patterns.md) - Producers, qualifiers, interceptors, events
6
+
7
+ ## Quick Checks
8
+
9
+ - [ ] Use @ApplicationScoped for services (not @Singleton)
10
+ - [ ] Use @ConfigMapping for type-safe configuration
11
+ - [ ] Profile configs with %dev, %prod prefixes
12
+ - [ ] Dev mode for live reload during development
@@ -0,0 +1,67 @@
1
+ ---
2
+ name: Quarkus Reactive
3
+ description: Mutiny reactive types, reactive routes, and non-blocking I/O.
4
+ metadata:
5
+ labels: [java, quarkus, reactive, mutiny]
6
+ triggers:
7
+ files: ['**/*.java']
8
+ keywords: [Mutiny, Uni, Multi, '@Route', reactive, SmallRye, '@NonBlocking']
9
+ ---
10
+
11
+ # Quarkus Reactive Standards
12
+
13
+ ## Mutiny Types
14
+
15
+ ```java
16
+ // Uni - 0 or 1 item (like CompletableFuture)
17
+ public Uni<User> findById(Long id) {
18
+ return Uni.createFrom().item(() -> repository.findById(id))
19
+ .onFailure().recoverWithItem(User.unknown());
20
+ }
21
+
22
+ // Multi - 0 to N items (like Stream)
23
+ public Multi<User> streamAll() {
24
+ return Multi.createFrom().items(repository.findAll().stream())
25
+ .filter(User::isActive);
26
+ }
27
+
28
+ // Transformations
29
+ Uni<String> name = findById(1L)
30
+ .map(User::getName)
31
+ .onItem().ifNull().failWith(new NotFoundException());
32
+
33
+ // Combining
34
+ Uni<UserProfile> profile = Uni.combine().all()
35
+ .unis(findUser(id), findOrders(id), findPreferences(id))
36
+ .with((user, orders, prefs) -> new UserProfile(user, orders, prefs));
37
+ ```
38
+
39
+ ## Reactive REST Endpoints
40
+
41
+ ```java
42
+ @Path("/users")
43
+ public class UserResource {
44
+
45
+ @GET
46
+ @Path("/{id}")
47
+ public Uni<User> get(@PathParam("id") Long id) {
48
+ return userService.findById(id);
49
+ }
50
+
51
+ @GET
52
+ @Produces(MediaType.SERVER_SENT_EVENTS)
53
+ public Multi<User> stream() {
54
+ return userService.streamAll();
55
+ }
56
+
57
+ @POST
58
+ public Uni<Response> create(CreateUserRequest request) {
59
+ return userService.create(request)
60
+ .map(user -> Response.created(URI.create("/users/" + user.id())).build());
61
+ }
62
+ }
63
+ ```
64
+
65
+ ## References
66
+
67
+ - [Mutiny Patterns](references/mutiny-patterns.md) - Error handling, timeouts, combining
@@ -0,0 +1,12 @@
1
+ # Quarkus Reactive References
2
+
3
+ ## References
4
+
5
+ - [**Mutiny Patterns**](mutiny-patterns.md) - Combining Uni/Multi, error handling, timeouts
6
+
7
+ ## Quick Checks
8
+
9
+ - [ ] Use Uni for single async result
10
+ - [ ] Use Multi for streaming
11
+ - [ ] Non-blocking for I/O operations
12
+ - [ ] Proper error recovery with onFailure()
@@ -0,0 +1,102 @@
1
+ ---
2
+ name: Spring Batch
3
+ description: Job configuration, chunk processing, readers, writers, processors, and job execution.
4
+ metadata:
5
+ labels: [java, spring-boot, batch, etl]
6
+ triggers:
7
+ files: ['**/*Batch*.java', '**/*Job*.java', '**/*Step*.java']
8
+ keywords: [Job, Step, ItemReader, ItemWriter, ItemProcessor, JobBuilder, StepBuilder, Chunk, Tasklet]
9
+ ---
10
+
11
+ # Spring Batch Standards
12
+
13
+ ## Job Configuration
14
+
15
+ ```java
16
+ @Configuration
17
+ @RequiredArgsConstructor
18
+ public class UserExportJobConfig {
19
+
20
+ private final JobRepository jobRepository;
21
+ private final PlatformTransactionManager transactionManager;
22
+
23
+ @Bean
24
+ public Job userExportJob(Step exportStep) {
25
+ return new JobBuilder("userExportJob", jobRepository)
26
+ .incrementer(new RunIdIncrementer())
27
+ .start(exportStep)
28
+ .build();
29
+ }
30
+
31
+ @Bean
32
+ public Step exportStep(
33
+ ItemReader<User> reader,
34
+ ItemProcessor<User, UserDto> processor,
35
+ ItemWriter<UserDto> writer) {
36
+ return new StepBuilder("exportStep", jobRepository)
37
+ .<User, UserDto>chunk(100, transactionManager)
38
+ .reader(reader)
39
+ .processor(processor)
40
+ .writer(writer)
41
+ .faultTolerant()
42
+ .skipLimit(10)
43
+ .skip(DataAccessException.class)
44
+ .build();
45
+ }
46
+ }
47
+ ```
48
+
49
+ ## Reader/Processor/Writer
50
+
51
+ ```java
52
+ @Bean
53
+ public JpaPagingItemReader<User> userReader(EntityManagerFactory emf) {
54
+ return new JpaPagingItemReaderBuilder<User>()
55
+ .name("userReader")
56
+ .entityManagerFactory(emf)
57
+ .queryString("SELECT u FROM User u WHERE u.status = 'ACTIVE'")
58
+ .pageSize(100)
59
+ .build();
60
+ }
61
+
62
+ @Bean
63
+ public ItemProcessor<User, UserDto> userProcessor() {
64
+ return user -> new UserDto(user.getId(), user.getName(), user.getEmail());
65
+ }
66
+
67
+ @Bean
68
+ public FlatFileItemWriter<UserDto> userWriter() {
69
+ return new FlatFileItemWriterBuilder<UserDto>()
70
+ .name("userWriter")
71
+ .resource(new FileSystemResource("output/users.csv"))
72
+ .delimited()
73
+ .names("id", "name", "email")
74
+ .build();
75
+ }
76
+ ```
77
+
78
+ ## Job Execution
79
+
80
+ ```java
81
+ @Service
82
+ @RequiredArgsConstructor
83
+ public class JobLauncherService {
84
+
85
+ private final JobLauncher jobLauncher;
86
+ private final Job userExportJob;
87
+
88
+ public void runExport(String date) throws Exception {
89
+ JobParameters params = new JobParametersBuilder()
90
+ .addString("date", date)
91
+ .addLong("time", System.currentTimeMillis())
92
+ .toJobParameters();
93
+
94
+ JobExecution execution = jobLauncher.run(userExportJob, params);
95
+ log.info("Job status: {}", execution.getStatus());
96
+ }
97
+ }
98
+ ```
99
+
100
+ ## References
101
+
102
+ - [Chunk Processing](references/chunk-processing.md) - Sizing, transactions, error handling
@@ -0,0 +1,12 @@
1
+ # Spring Batch References
2
+
3
+ ## References
4
+
5
+ - [**Chunk Processing**](chunk-processing.md) - Chunk sizing, transaction boundaries, skip/retry
6
+
7
+ ## Quick Checks
8
+
9
+ - [ ] Use JobBuilder/StepBuilder (not deprecated *BuilderFactory)
10
+ - [ ] Set appropriate chunk size (100-1000)
11
+ - [ ] Configure skip/retry for fault tolerance
12
+ - [ ] Use RunIdIncrementer for re-runnable jobs
@@ -0,0 +1,206 @@
1
+ ---
2
+ name: Spring Boot Architecture
3
+ description: Application structure, auto-configuration, profiles, bean lifecycle, and configuration properties.
4
+ metadata:
5
+ labels: [java, spring-boot, architecture, configuration]
6
+ triggers:
7
+ files: ['**/Application.java', '**/*Configuration.java', 'application.yml', 'application.properties', 'application-*.yml']
8
+ keywords: [SpringBootApplication, Configuration, Bean, Profile, AutoConfiguration, ConfigurationProperties, EnableAutoConfiguration]
9
+ ---
10
+
11
+ # Spring Boot Architecture Standards
12
+
13
+ ## Application Entry Point
14
+
15
+ ```java
16
+ @SpringBootApplication
17
+ public class Application {
18
+ public static void main(String[] args) {
19
+ SpringApplication.run(Application.class, args);
20
+ }
21
+ }
22
+
23
+ // @SpringBootApplication combines:
24
+ // @Configuration - source of bean definitions
25
+ // @EnableAutoConfiguration - auto-configure based on classpath
26
+ // @ComponentScan - scan for components in this package and below
27
+ ```
28
+
29
+ ## Configuration Classes
30
+
31
+ ```java
32
+ @Configuration
33
+ public class AppConfig {
34
+
35
+ @Bean
36
+ public RestTemplate restTemplate(RestTemplateBuilder builder) {
37
+ return builder
38
+ .setConnectTimeout(Duration.ofSeconds(5))
39
+ .setReadTimeout(Duration.ofSeconds(30))
40
+ .build();
41
+ }
42
+
43
+ @Bean
44
+ @ConditionalOnProperty(name = "app.feature.enabled", havingValue = "true")
45
+ public FeatureService featureService() {
46
+ return new FeatureServiceImpl();
47
+ }
48
+ }
49
+
50
+ // Conditional beans
51
+ @ConditionalOnProperty(...) // Based on property
52
+ @ConditionalOnClass(...) // Based on class presence
53
+ @ConditionalOnMissingBean(...) // If no other bean exists
54
+ @ConditionalOnBean(...) // If another bean exists
55
+ @ConditionalOnExpression(...) // SpEL expression
56
+ ```
57
+
58
+ ## Configuration Properties
59
+
60
+ ```java
61
+ @ConfigurationProperties(prefix = "app")
62
+ @Validated
63
+ public record AppProperties(
64
+ @NotBlank String name,
65
+ @NotNull Duration timeout,
66
+ @Valid DatabaseProperties database
67
+ ) {
68
+ public record DatabaseProperties(
69
+ String host,
70
+ int port,
71
+ @NotBlank String username
72
+ ) {}
73
+ }
74
+
75
+ // Enable in configuration
76
+ @Configuration
77
+ @EnableConfigurationProperties(AppProperties.class)
78
+ public class AppConfig {}
79
+
80
+ // Usage
81
+ @Service
82
+ public class MyService {
83
+ private final AppProperties props;
84
+
85
+ public MyService(AppProperties props) {
86
+ this.props = props;
87
+ }
88
+ }
89
+ ```
90
+
91
+ ```yaml
92
+ # application.yml
93
+ app:
94
+ name: my-application
95
+ timeout: 30s
96
+ database:
97
+ host: localhost
98
+ port: 5432
99
+ username: admin
100
+ ```
101
+
102
+ ## Profiles
103
+
104
+ ```yaml
105
+ # application.yml (default)
106
+ spring:
107
+ profiles:
108
+ active: dev
109
+
110
+ ---
111
+ spring:
112
+ config:
113
+ activate:
114
+ on-profile: dev
115
+ server:
116
+ port: 8080
117
+ logging:
118
+ level:
119
+ root: DEBUG
120
+
121
+ ---
122
+ spring:
123
+ config:
124
+ activate:
125
+ on-profile: prod
126
+ server:
127
+ port: 80
128
+ logging:
129
+ level:
130
+ root: INFO
131
+ ```
132
+
133
+ ```java
134
+ // Profile-specific beans
135
+ @Configuration
136
+ @Profile("dev")
137
+ public class DevConfig {
138
+ @Bean
139
+ public DataSource dataSource() {
140
+ return new EmbeddedDatabaseBuilder()
141
+ .setType(EmbeddedDatabaseType.H2)
142
+ .build();
143
+ }
144
+ }
145
+
146
+ @Configuration
147
+ @Profile("prod")
148
+ public class ProdConfig {
149
+ @Bean
150
+ public DataSource dataSource(DataSourceProperties props) {
151
+ return DataSourceBuilder.create()
152
+ .url(props.getUrl())
153
+ .username(props.getUsername())
154
+ .password(props.getPassword())
155
+ .build();
156
+ }
157
+ }
158
+ ```
159
+
160
+ ## Bean Lifecycle
161
+
162
+ ```java
163
+ @Component
164
+ public class MyComponent implements InitializingBean, DisposableBean {
165
+
166
+ @PostConstruct
167
+ public void init() {
168
+ // Called after dependency injection
169
+ }
170
+
171
+ @Override
172
+ public void afterPropertiesSet() {
173
+ // Called after properties set
174
+ }
175
+
176
+ @PreDestroy
177
+ public void cleanup() {
178
+ // Called before destruction
179
+ }
180
+
181
+ @Override
182
+ public void destroy() {
183
+ // Called on shutdown
184
+ }
185
+ }
186
+
187
+ // Or with @Bean
188
+ @Bean(initMethod = "init", destroyMethod = "cleanup")
189
+ public MyService myService() {
190
+ return new MyService();
191
+ }
192
+ ```
193
+
194
+ ## Best Practices
195
+
196
+ 1. **Use @ConfigurationProperties** over @Value for type-safe configuration
197
+ 2. **Profiles for environment-specific** config, not feature flags
198
+ 3. **Externalize configuration** - never hardcode secrets
199
+ 4. **Use record classes** for immutable configuration properties
200
+ 5. **Validate configuration** with @Validated and Jakarta constraints
201
+ 6. **Auto-configuration order** matters - use @AutoConfigureAfter/@AutoConfigureBefore
202
+
203
+ ## References
204
+
205
+ - [Auto-Configuration](references/auto-configuration.md) - Custom auto-config, conditions
206
+ - [Configuration Properties](references/configuration-properties.md) - Binding, validation, relaxed binding
@@ -0,0 +1,15 @@
1
+ # Spring Boot Architecture References
2
+
3
+ ## References
4
+
5
+ - [**Auto-Configuration**](auto-configuration.md) - Custom auto-config, conditional beans, ordering
6
+ - [**Configuration Properties**](configuration-properties.md) - Type-safe binding, validation, nested properties
7
+
8
+ ## Quick Checks
9
+
10
+ - [ ] @SpringBootApplication on main class
11
+ - [ ] Use @ConfigurationProperties over @Value
12
+ - [ ] Validate configuration with @Validated
13
+ - [ ] Use profiles for environment differences
14
+ - [ ] Never hardcode secrets - externalize configuration
15
+ - [ ] Use records for immutable configuration