@ngxtm/devkit 3.4.0 → 3.4.1

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 (343) 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
@@ -0,0 +1,195 @@
1
+ ---
2
+ name: Java Project Structure
3
+ description: Standard project layout, package conventions, module system, and layered architecture patterns.
4
+ metadata:
5
+ labels: [java, project, architecture, structure]
6
+ triggers:
7
+ files: ['pom.xml', 'build.gradle', 'build.gradle.kts', 'settings.gradle', 'module-info.java']
8
+ keywords: [src/main/java, src/test/java, module-info, package, module]
9
+ ---
10
+
11
+ # Java Project Structure Standards
12
+
13
+ ## Standard Maven/Gradle Layout
14
+
15
+ ```
16
+ project-root/
17
+ ├── src/
18
+ │ ├── main/
19
+ │ │ ├── java/ # Application source code
20
+ │ │ │ └── com/example/app/
21
+ │ │ │ ├── Application.java
22
+ │ │ │ ├── config/
23
+ │ │ │ ├── controller/
24
+ │ │ │ ├── service/
25
+ │ │ │ ├── repository/
26
+ │ │ │ ├── model/
27
+ │ │ │ └── exception/
28
+ │ │ └── resources/ # Configuration files
29
+ │ │ ├── application.yml
30
+ │ │ ├── application-dev.yml
31
+ │ │ ├── application-prod.yml
32
+ │ │ └── db/migration/
33
+ │ └── test/
34
+ │ ├── java/ # Test source code
35
+ │ │ └── com/example/app/
36
+ │ │ ├── controller/
37
+ │ │ ├── service/
38
+ │ │ └── repository/
39
+ │ └── resources/ # Test resources
40
+ │ └── application-test.yml
41
+ ├── pom.xml # Maven build
42
+ ├── build.gradle.kts # or Gradle build
43
+ └── README.md
44
+ ```
45
+
46
+ ## Package Naming Conventions
47
+
48
+ ```java
49
+ // Reverse domain name + project + layer
50
+ com.company.project.controller
51
+ com.company.project.service
52
+ com.company.project.repository
53
+ com.company.project.model
54
+ com.company.project.dto
55
+ com.company.project.exception
56
+ com.company.project.config
57
+ com.company.project.util
58
+
59
+ // Feature-based alternative
60
+ com.company.project.user.controller
61
+ com.company.project.user.service
62
+ com.company.project.order.controller
63
+ com.company.project.order.service
64
+ ```
65
+
66
+ ## Layered Architecture
67
+
68
+ ```
69
+ ┌─────────────────────────────────────────┐
70
+ │ Controller Layer │ ← HTTP handling, validation
71
+ ├─────────────────────────────────────────┤
72
+ │ Service Layer │ ← Business logic
73
+ ├─────────────────────────────────────────┤
74
+ │ Repository Layer │ ← Data access
75
+ ├─────────────────────────────────────────┤
76
+ │ Model/Entity │ ← Domain objects
77
+ └─────────────────────────────────────────┘
78
+
79
+ // Dependency rules:
80
+ // Controller → Service → Repository → Model
81
+ // NEVER: Repository → Service or Model → anything
82
+ ```
83
+
84
+ ```java
85
+ // Controller - handles HTTP
86
+ @RestController
87
+ @RequestMapping("/api/users")
88
+ public class UserController {
89
+ private final UserService userService;
90
+ // Only UserService, never UserRepository
91
+ }
92
+
93
+ // Service - business logic
94
+ @Service
95
+ public class UserService {
96
+ private final UserRepository userRepository;
97
+ private final EmailService emailService;
98
+ // Can use multiple repositories and services
99
+ }
100
+
101
+ // Repository - data access
102
+ @Repository
103
+ public interface UserRepository extends JpaRepository<User, Long> {
104
+ // Only data operations
105
+ }
106
+ ```
107
+
108
+ ## DTO Pattern
109
+
110
+ ```java
111
+ // Separate DTOs for request/response
112
+ public record CreateUserRequest(
113
+ @NotBlank String name,
114
+ @Email String email
115
+ ) {}
116
+
117
+ public record UserResponse(
118
+ Long id,
119
+ String name,
120
+ String email,
121
+ LocalDateTime createdAt
122
+ ) {
123
+ public static UserResponse from(User user) {
124
+ return new UserResponse(
125
+ user.getId(),
126
+ user.getName(),
127
+ user.getEmail(),
128
+ user.getCreatedAt()
129
+ );
130
+ }
131
+ }
132
+
133
+ // Mapper interface
134
+ public interface UserMapper {
135
+ User toEntity(CreateUserRequest request);
136
+ UserResponse toResponse(User user);
137
+ }
138
+ ```
139
+
140
+ ## Module System (JPMS)
141
+
142
+ ```java
143
+ // module-info.java
144
+ module com.example.app {
145
+ // Dependencies
146
+ requires java.sql;
147
+ requires spring.boot;
148
+ requires spring.boot.autoconfigure;
149
+ requires spring.web;
150
+
151
+ // What we export
152
+ exports com.example.app.api;
153
+ exports com.example.app.model;
154
+
155
+ // Internal packages (not exported)
156
+ // com.example.app.internal is hidden
157
+
158
+ // Reflection access for frameworks
159
+ opens com.example.app.model to spring.core;
160
+ opens com.example.app to spring.beans;
161
+ }
162
+ ```
163
+
164
+ ## Multi-Module Project
165
+
166
+ ```
167
+ parent-project/
168
+ ├── pom.xml # Parent POM
169
+ ├── core/ # Shared domain, utils
170
+ │ ├── pom.xml
171
+ │ └── src/main/java/
172
+ ├── api/ # REST API module
173
+ │ ├── pom.xml
174
+ │ └── src/main/java/
175
+ ├── service/ # Business logic
176
+ │ ├── pom.xml
177
+ │ └── src/main/java/
178
+ └── infrastructure/ # External integrations
179
+ ├── pom.xml
180
+ └── src/main/java/
181
+ ```
182
+
183
+ ## Best Practices
184
+
185
+ 1. **One class per file** - class name matches file name
186
+ 2. **Package by layer OR feature** - pick one, be consistent
187
+ 3. **Keep packages flat** - avoid deep nesting
188
+ 4. **Separate DTOs from entities** - never expose entities in API
189
+ 5. **module-info.java** for libraries, optional for applications
190
+ 6. **Resources alongside code** - feature-specific configs with feature
191
+
192
+ ## References
193
+
194
+ - [Maven Project Layout](references/maven-project-layout.md) - Complete structure, profiles
195
+ - [Module System](references/module-system.md) - JPMS patterns, migration
@@ -0,0 +1,15 @@
1
+ # Java Project Structure References
2
+
3
+ ## References
4
+
5
+ - [**Maven Project Layout**](maven-project-layout.md) - Standard directories, profiles, multi-module setup
6
+ - [**Module System**](module-system.md) - JPMS patterns, exports, opens, migration from classpath
7
+
8
+ ## Quick Checks
9
+
10
+ - [ ] Standard Maven/Gradle layout (src/main/java, src/test/java)
11
+ - [ ] Reverse domain package naming (com.company.project.layer)
12
+ - [ ] Layer dependencies flow downward only
13
+ - [ ] DTOs separate from entities
14
+ - [ ] Test packages mirror source packages
15
+ - [ ] Configuration in src/main/resources
@@ -0,0 +1,199 @@
1
+ # Maven Project Layout
2
+
3
+ ## Standard Directory Structure
4
+
5
+ ```
6
+ project/
7
+ ├── pom.xml
8
+ ├── src/
9
+ │ ├── main/
10
+ │ │ ├── java/ # Java source files
11
+ │ │ ├── resources/ # Resources bundled in JAR
12
+ │ │ │ ├── application.yml
13
+ │ │ │ ├── logback.xml
14
+ │ │ │ └── META-INF/
15
+ │ │ └── filters/ # Resource filter files
16
+ │ └── test/
17
+ │ ├── java/ # Test source files
18
+ │ └── resources/ # Test resources
19
+ │ └── application-test.yml
20
+ ├── target/ # Build output (generated)
21
+ └── .mvn/ # Maven wrapper
22
+ └── wrapper/
23
+ └── maven-wrapper.properties
24
+ ```
25
+
26
+ ## POM Structure
27
+
28
+ ```xml
29
+ <?xml version="1.0" encoding="UTF-8"?>
30
+ <project xmlns="http://maven.apache.org/POM/4.0.0">
31
+ <modelVersion>4.0.0</modelVersion>
32
+
33
+ <parent>
34
+ <groupId>org.springframework.boot</groupId>
35
+ <artifactId>spring-boot-starter-parent</artifactId>
36
+ <version>3.2.0</version>
37
+ </parent>
38
+
39
+ <groupId>com.example</groupId>
40
+ <artifactId>my-app</artifactId>
41
+ <version>1.0.0-SNAPSHOT</version>
42
+ <packaging>jar</packaging>
43
+
44
+ <properties>
45
+ <java.version>21</java.version>
46
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
47
+ </properties>
48
+
49
+ <dependencies>
50
+ <dependency>
51
+ <groupId>org.springframework.boot</groupId>
52
+ <artifactId>spring-boot-starter-web</artifactId>
53
+ </dependency>
54
+ <dependency>
55
+ <groupId>org.springframework.boot</groupId>
56
+ <artifactId>spring-boot-starter-test</artifactId>
57
+ <scope>test</scope>
58
+ </dependency>
59
+ </dependencies>
60
+
61
+ <build>
62
+ <plugins>
63
+ <plugin>
64
+ <groupId>org.springframework.boot</groupId>
65
+ <artifactId>spring-boot-maven-plugin</artifactId>
66
+ </plugin>
67
+ </plugins>
68
+ </build>
69
+
70
+ <profiles>
71
+ <profile>
72
+ <id>dev</id>
73
+ <activation>
74
+ <activeByDefault>true</activeByDefault>
75
+ </activation>
76
+ <properties>
77
+ <spring.profiles.active>dev</spring.profiles.active>
78
+ </properties>
79
+ </profile>
80
+ <profile>
81
+ <id>prod</id>
82
+ <properties>
83
+ <spring.profiles.active>prod</spring.profiles.active>
84
+ </properties>
85
+ </profile>
86
+ </profiles>
87
+ </project>
88
+ ```
89
+
90
+ ## Multi-Module Project
91
+
92
+ ```
93
+ parent/
94
+ ├── pom.xml # Parent POM
95
+ ├── common/
96
+ │ ├── pom.xml
97
+ │ └── src/main/java/
98
+ ├── api/
99
+ │ ├── pom.xml
100
+ │ └── src/main/java/
101
+ └── service/
102
+ ├── pom.xml
103
+ └── src/main/java/
104
+ ```
105
+
106
+ **Parent POM:**
107
+
108
+ ```xml
109
+ <project>
110
+ <groupId>com.example</groupId>
111
+ <artifactId>parent</artifactId>
112
+ <version>1.0.0</version>
113
+ <packaging>pom</packaging>
114
+
115
+ <modules>
116
+ <module>common</module>
117
+ <module>api</module>
118
+ <module>service</module>
119
+ </modules>
120
+
121
+ <dependencyManagement>
122
+ <dependencies>
123
+ <!-- Shared dependency versions -->
124
+ <dependency>
125
+ <groupId>com.example</groupId>
126
+ <artifactId>common</artifactId>
127
+ <version>${project.version}</version>
128
+ </dependency>
129
+ </dependencies>
130
+ </dependencyManagement>
131
+ </project>
132
+ ```
133
+
134
+ **Child POM:**
135
+
136
+ ```xml
137
+ <project>
138
+ <parent>
139
+ <groupId>com.example</groupId>
140
+ <artifactId>parent</artifactId>
141
+ <version>1.0.0</version>
142
+ </parent>
143
+
144
+ <artifactId>api</artifactId>
145
+
146
+ <dependencies>
147
+ <dependency>
148
+ <groupId>com.example</groupId>
149
+ <artifactId>common</artifactId>
150
+ </dependency>
151
+ </dependencies>
152
+ </project>
153
+ ```
154
+
155
+ ## Resource Filtering
156
+
157
+ ```xml
158
+ <!-- pom.xml -->
159
+ <build>
160
+ <resources>
161
+ <resource>
162
+ <directory>src/main/resources</directory>
163
+ <filtering>true</filtering>
164
+ </resource>
165
+ </resources>
166
+ </build>
167
+ ```
168
+
169
+ ```yaml
170
+ # application.yml
171
+ app:
172
+ version: @project.version@
173
+ build-time: @maven.build.timestamp@
174
+ ```
175
+
176
+ ## Common Commands
177
+
178
+ ```bash
179
+ # Build
180
+ mvn clean install
181
+
182
+ # Skip tests
183
+ mvn clean install -DskipTests
184
+
185
+ # Run specific profile
186
+ mvn clean install -Pprod
187
+
188
+ # Dependency tree
189
+ mvn dependency:tree
190
+
191
+ # Effective POM
192
+ mvn help:effective-pom
193
+
194
+ # Update versions
195
+ mvn versions:set -DnewVersion=2.0.0
196
+
197
+ # Check for dependency updates
198
+ mvn versions:display-dependency-updates
199
+ ```
@@ -0,0 +1,159 @@
1
+ # Java Module System (JPMS)
2
+
3
+ ## Module Declaration
4
+
5
+ ```java
6
+ // src/main/java/module-info.java
7
+ module com.example.myapp {
8
+ // Required modules (dependencies)
9
+ requires java.base; // Implicit, always available
10
+ requires java.sql; // JDK module
11
+ requires java.logging;
12
+ requires spring.boot; // Third-party module
13
+ requires spring.web;
14
+ requires transitive com.example.common; // Transitive dependency
15
+
16
+ // Exported packages (public API)
17
+ exports com.example.myapp.api;
18
+ exports com.example.myapp.model;
19
+ exports com.example.myapp.dto to com.example.client; // Qualified export
20
+
21
+ // Opened packages (for reflection)
22
+ opens com.example.myapp.model to spring.core, hibernate.core;
23
+ opens com.example.myapp to spring.beans;
24
+
25
+ // Service provider
26
+ provides com.example.spi.PaymentProcessor
27
+ with com.example.myapp.StripeProcessor;
28
+
29
+ // Service consumer
30
+ uses com.example.spi.NotificationService;
31
+ }
32
+ ```
33
+
34
+ ## Module Keywords
35
+
36
+ ```java
37
+ // requires - declare dependency
38
+ requires java.sql; // Regular dependency
39
+ requires transitive spring.core; // Transitive (consumers get it too)
40
+ requires static lombok; // Optional (compile-time only)
41
+
42
+ // exports - make packages accessible
43
+ exports com.example.api; // Export to all
44
+ exports com.example.internal to com.example.test; // Qualified export
45
+
46
+ // opens - allow reflection
47
+ opens com.example.model; // Open to all for reflection
48
+ opens com.example.entity to hibernate.core; // Qualified open
49
+
50
+ // open module - everything open for reflection
51
+ open module com.example.app {
52
+ requires spring.boot;
53
+ exports com.example.api;
54
+ }
55
+ ```
56
+
57
+ ## Automatic Modules
58
+
59
+ For JARs without module-info.java (most legacy libraries):
60
+
61
+ ```java
62
+ // Module name derived from JAR filename or Automatic-Module-Name manifest
63
+ // guava-31.1-jre.jar → guava
64
+ // commons-lang3-3.12.0.jar → commons.lang3
65
+
66
+ module com.example.app {
67
+ requires guava; // Automatic module
68
+ requires commons.lang3; // Automatic module
69
+ }
70
+ ```
71
+
72
+ **Manifest entry (recommended for libraries):**
73
+ ```
74
+ Automatic-Module-Name: com.google.guava
75
+ ```
76
+
77
+ ## Module Path vs Class Path
78
+
79
+ ```bash
80
+ # Module path (JPMS)
81
+ java --module-path mods -m com.example.app/com.example.Main
82
+
83
+ # Class path (traditional)
84
+ java -cp "lib/*:app.jar" com.example.Main
85
+
86
+ # Mixed (automatic modules on module path)
87
+ java --module-path mods --add-modules ALL-MODULE-PATH -cp legacy.jar com.example.Main
88
+ ```
89
+
90
+ ## Migration Strategy
91
+
92
+ ### 1. Bottom-up Migration
93
+
94
+ ```
95
+ 1. Identify leaf modules (no internal dependencies)
96
+ 2. Add module-info.java to leaf modules
97
+ 3. Move up the dependency tree
98
+ 4. Use automatic modules for unmigrated dependencies
99
+ ```
100
+
101
+ ### 2. Handling Reflection
102
+
103
+ ```java
104
+ // Spring/Hibernate need reflection access
105
+ module com.example.app {
106
+ // Open specific packages
107
+ opens com.example.entity to hibernate.core;
108
+ opens com.example.config to spring.core;
109
+
110
+ // Or open entire module
111
+ // open module com.example.app { ... }
112
+ }
113
+ ```
114
+
115
+ ### 3. Split Packages
116
+
117
+ ```java
118
+ // PROBLEM: Same package in multiple JARs
119
+ // javax.annotation in jsr305.jar AND java.annotation module
120
+
121
+ // SOLUTION: Exclude duplicate JAR or merge packages
122
+ // In Maven: use <exclusions>
123
+ ```
124
+
125
+ ## Compile and Run
126
+
127
+ ```bash
128
+ # Compile
129
+ javac -d out --module-source-path src $(find src -name "*.java")
130
+
131
+ # Package
132
+ jar --create --file mods/com.example.app.jar \
133
+ --main-class com.example.Main \
134
+ -C out/com.example.app .
135
+
136
+ # Run
137
+ java --module-path mods -m com.example.app
138
+
139
+ # With VM args
140
+ java --module-path mods \
141
+ --add-opens java.base/java.lang=com.example.app \
142
+ -m com.example.app
143
+ ```
144
+
145
+ ## Debugging Module Issues
146
+
147
+ ```bash
148
+ # Show module resolution
149
+ java --show-module-resolution -m com.example.app
150
+
151
+ # Describe module
152
+ jar --describe-module --file=app.jar
153
+
154
+ # List modules
155
+ java --list-modules
156
+
157
+ # Check for split packages
158
+ jdeps --multi-release 21 -s app.jar
159
+ ```
@@ -0,0 +1,99 @@
1
+ ---
2
+ name: Micronaut Core
3
+ description: Compile-time dependency injection, configuration, AOP, and startup optimization.
4
+ metadata:
5
+ labels: [java, micronaut, di, aot]
6
+ triggers:
7
+ files: ['**/*.java', 'application.yml', 'application.properties']
8
+ keywords: [Micronaut, '@Inject', '@Singleton', '@ConfigurationProperties', '@Factory', '@Controller']
9
+ ---
10
+
11
+ # Micronaut Core Standards
12
+
13
+ ## Compile-Time DI
14
+
15
+ ```java
16
+ @Singleton
17
+ public class UserService {
18
+
19
+ private final UserRepository repository;
20
+ private final EventPublisher eventPublisher;
21
+
22
+ // Constructor injection (preferred)
23
+ public UserService(UserRepository repository, EventPublisher eventPublisher) {
24
+ this.repository = repository;
25
+ this.eventPublisher = eventPublisher;
26
+ }
27
+ }
28
+
29
+ // Factory beans
30
+ @Factory
31
+ public class ClientFactory {
32
+
33
+ @Singleton
34
+ @Named("primary")
35
+ public HttpClient primaryClient() {
36
+ return HttpClient.create(URI.create("https://api.primary.com"));
37
+ }
38
+
39
+ @Singleton
40
+ @Named("fallback")
41
+ public HttpClient fallbackClient() {
42
+ return HttpClient.create(URI.create("https://api.fallback.com"));
43
+ }
44
+ }
45
+ ```
46
+
47
+ ## Configuration
48
+
49
+ ```java
50
+ @ConfigurationProperties("app")
51
+ public record AppConfig(
52
+ String name,
53
+ int maxConnections,
54
+ DatabaseConfig database
55
+ ) {
56
+ public record DatabaseConfig(
57
+ String url,
58
+ String username
59
+ ) {}
60
+ }
61
+ ```
62
+
63
+ ```yaml
64
+ app:
65
+ name: MyMicronautApp
66
+ max-connections: 100
67
+ database:
68
+ url: jdbc:postgresql://localhost/db
69
+ username: admin
70
+ ```
71
+
72
+ ## Controllers
73
+
74
+ ```java
75
+ @Controller("/users")
76
+ public class UserController {
77
+
78
+ private final UserService userService;
79
+
80
+ public UserController(UserService userService) {
81
+ this.userService = userService;
82
+ }
83
+
84
+ @Get("/{id}")
85
+ public User findById(Long id) {
86
+ return userService.findById(id);
87
+ }
88
+
89
+ @Post
90
+ @Status(HttpStatus.CREATED)
91
+ public User create(@Valid @Body CreateUserRequest request) {
92
+ return userService.create(request);
93
+ }
94
+ }
95
+ ```
96
+
97
+ ## References
98
+
99
+ - [Compile-Time DI](references/compile-time-di.md) - AOT benefits, introspection
@@ -0,0 +1,12 @@
1
+ # Micronaut Core References
2
+
3
+ ## References
4
+
5
+ - [**Compile-Time DI**](compile-time-di.md) - AOT benefits, bean introspection, startup time
6
+
7
+ ## Quick Checks
8
+
9
+ - [ ] Use @Singleton for services
10
+ - [ ] Constructor injection over field injection
11
+ - [ ] Use records for configuration properties
12
+ - [ ] No reflection - everything at compile time