@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,165 @@
1
+ # Zap Logger Configuration
2
+
3
+ ## Basic Setup
4
+
5
+ ```go
6
+ import "go.uber.org/zap"
7
+
8
+ func main() {
9
+ // Development (human-readable, debug level)
10
+ logger, _ := zap.NewDevelopment()
11
+ defer logger.Sync()
12
+
13
+ // Production (JSON, info level)
14
+ logger, _ := zap.NewProduction()
15
+ defer logger.Sync()
16
+
17
+ // Example logger (for tests)
18
+ logger := zap.NewExample()
19
+ }
20
+ ```
21
+
22
+ ## Standard Logger
23
+
24
+ ```go
25
+ logger, _ := zap.NewProduction()
26
+
27
+ // Typed fields - fast, type-safe
28
+ logger.Info("user logged in",
29
+ zap.String("user_id", "12345"),
30
+ zap.Int("attempt", 1),
31
+ zap.Duration("latency", time.Second),
32
+ zap.Time("timestamp", time.Now()),
33
+ zap.Any("metadata", map[string]string{"key": "value"}),
34
+ )
35
+
36
+ logger.Error("failed to process",
37
+ zap.Error(err),
38
+ zap.String("request_id", reqID),
39
+ )
40
+
41
+ // Log levels
42
+ logger.Debug("debug message")
43
+ logger.Info("info message")
44
+ logger.Warn("warning message")
45
+ logger.Error("error message")
46
+ logger.Fatal("fatal - calls os.Exit(1)")
47
+ logger.Panic("panic - calls panic()")
48
+ ```
49
+
50
+ ## Sugared Logger
51
+
52
+ ```go
53
+ logger, _ := zap.NewProduction()
54
+ sugar := logger.Sugar()
55
+ defer sugar.Sync()
56
+
57
+ // Printf-style (slower but convenient)
58
+ sugar.Infof("user %s logged in", userID)
59
+ sugar.Errorw("failed to process",
60
+ "error", err,
61
+ "request_id", reqID,
62
+ )
63
+
64
+ // Key-value pairs
65
+ sugar.Infow("user action",
66
+ "user_id", userID,
67
+ "action", "login",
68
+ "ip", clientIP,
69
+ )
70
+ ```
71
+
72
+ ## Custom Configuration
73
+
74
+ ```go
75
+ config := zap.Config{
76
+ Level: zap.NewAtomicLevelAt(zap.InfoLevel),
77
+ Development: false,
78
+ Encoding: "json", // or "console"
79
+ EncoderConfig: zapcore.EncoderConfig{
80
+ TimeKey: "timestamp",
81
+ LevelKey: "level",
82
+ NameKey: "logger",
83
+ CallerKey: "caller",
84
+ MessageKey: "message",
85
+ StacktraceKey: "stacktrace",
86
+ LineEnding: zapcore.DefaultLineEnding,
87
+ EncodeLevel: zapcore.LowercaseLevelEncoder,
88
+ EncodeTime: zapcore.ISO8601TimeEncoder,
89
+ EncodeDuration: zapcore.MillisDurationEncoder,
90
+ EncodeCaller: zapcore.ShortCallerEncoder,
91
+ },
92
+ OutputPaths: []string{"stdout", "/var/log/app.log"},
93
+ ErrorOutputPaths: []string{"stderr"},
94
+ }
95
+
96
+ logger, _ := config.Build()
97
+ ```
98
+
99
+ ## Child Loggers
100
+
101
+ ```go
102
+ logger, _ := zap.NewProduction()
103
+
104
+ // Add fields to all subsequent logs
105
+ requestLogger := logger.With(
106
+ zap.String("request_id", uuid.New().String()),
107
+ zap.String("user_id", userID),
108
+ )
109
+
110
+ requestLogger.Info("processing request")
111
+ requestLogger.Info("request completed") // includes request_id and user_id
112
+ ```
113
+
114
+ ## Sampling (High-Volume)
115
+
116
+ ```go
117
+ config := zap.NewProductionConfig()
118
+ config.Sampling = &zap.SamplingConfig{
119
+ Initial: 100, // log first 100 per second
120
+ Thereafter: 100, // then log every 100th
121
+ }
122
+
123
+ logger, _ := config.Build()
124
+ ```
125
+
126
+ ## Integration with Gin/Echo
127
+
128
+ ```go
129
+ // Gin middleware
130
+ func GinLogger(logger *zap.Logger) gin.HandlerFunc {
131
+ return func(c *gin.Context) {
132
+ start := time.Now()
133
+ path := c.Request.URL.Path
134
+
135
+ c.Next()
136
+
137
+ logger.Info("request",
138
+ zap.String("path", path),
139
+ zap.String("method", c.Request.Method),
140
+ zap.Int("status", c.Writer.Status()),
141
+ zap.Duration("latency", time.Since(start)),
142
+ )
143
+ }
144
+ }
145
+
146
+ // Echo middleware
147
+ func EchoLogger(logger *zap.Logger) echo.MiddlewareFunc {
148
+ return func(next echo.HandlerFunc) echo.HandlerFunc {
149
+ return func(c echo.Context) error {
150
+ start := time.Now()
151
+
152
+ err := next(c)
153
+
154
+ logger.Info("request",
155
+ zap.String("path", c.Path()),
156
+ zap.String("method", c.Request().Method),
157
+ zap.Int("status", c.Response().Status),
158
+ zap.Duration("latency", time.Since(start)),
159
+ )
160
+
161
+ return err
162
+ }
163
+ }
164
+ }
165
+ ```
@@ -0,0 +1,92 @@
1
+ ---
2
+ name: Gradle Build
3
+ description: Kotlin DSL, dependencies, tasks, plugins, and multi-project builds.
4
+ metadata:
5
+ labels: [java, gradle, build]
6
+ triggers:
7
+ files: ['build.gradle', 'build.gradle.kts', 'settings.gradle', 'settings.gradle.kts']
8
+ keywords: [dependencies, plugins, tasks, implementation, testImplementation, kotlin]
9
+ ---
10
+
11
+ # Gradle Build Standards
12
+
13
+ ## Kotlin DSL Structure
14
+
15
+ ```kotlin
16
+ // build.gradle.kts
17
+ plugins {
18
+ java
19
+ id("org.springframework.boot") version "3.2.0"
20
+ id("io.spring.dependency-management") version "1.1.4"
21
+ }
22
+
23
+ group = "com.example"
24
+ version = "1.0.0-SNAPSHOT"
25
+
26
+ java {
27
+ toolchain {
28
+ languageVersion = JavaLanguageVersion.of(21)
29
+ }
30
+ }
31
+
32
+ repositories {
33
+ mavenCentral()
34
+ }
35
+
36
+ dependencies {
37
+ implementation("org.springframework.boot:spring-boot-starter-web")
38
+ implementation("org.springframework.boot:spring-boot-starter-data-jpa")
39
+ runtimeOnly("org.postgresql:postgresql")
40
+
41
+ testImplementation("org.springframework.boot:spring-boot-starter-test")
42
+ testRuntimeOnly("org.junit.platform:junit-platform-launcher")
43
+ }
44
+
45
+ tasks.test {
46
+ useJUnitPlatform()
47
+ }
48
+ ```
49
+
50
+ ## Dependency Configurations
51
+
52
+ ```kotlin
53
+ dependencies {
54
+ implementation("...") // Compile + runtime, not exposed
55
+ api("...") // Compile + runtime, exposed to consumers
56
+ compileOnly("...") // Compile only (like Lombok)
57
+ runtimeOnly("...") // Runtime only (JDBC drivers)
58
+ testImplementation("...") // Test compile + runtime
59
+ annotationProcessor("...") // Annotation processing
60
+ }
61
+ ```
62
+
63
+ ## Custom Tasks
64
+
65
+ ```kotlin
66
+ tasks.register("hello") {
67
+ group = "custom"
68
+ description = "Prints hello"
69
+ doLast {
70
+ println("Hello, Gradle!")
71
+ }
72
+ }
73
+
74
+ tasks.register<Copy>("copyResources") {
75
+ from("src/main/resources")
76
+ into("build/resources")
77
+ }
78
+ ```
79
+
80
+ ## Common Commands
81
+
82
+ ```bash
83
+ ./gradlew build # Build project
84
+ ./gradlew test # Run tests
85
+ ./gradlew bootRun # Run Spring Boot
86
+ ./gradlew dependencies # Show dependencies
87
+ ./gradlew tasks # List tasks
88
+ ```
89
+
90
+ ## References
91
+
92
+ - [Kotlin DSL](references/kotlin-dsl.md) - Migration from Groovy, type-safe configuration
@@ -0,0 +1,14 @@
1
+ # Gradle Build References
2
+
3
+ ## References
4
+
5
+ - [**Kotlin DSL**](kotlin-dsl.md) - Build scripts, version catalogs, multi-project
6
+ - [**Task Configuration**](task-configuration.md) - Task types, dependencies, caching
7
+
8
+ ## Quick Checks
9
+
10
+ - [ ] Use Kotlin DSL for type-safe builds
11
+ - [ ] Version catalogs for centralized dependencies
12
+ - [ ] Lazy task configuration with register()
13
+ - [ ] Enable build cache for faster builds
14
+ - [ ] Use configuration avoidance APIs
@@ -0,0 +1,118 @@
1
+ # Gradle Kotlin DSL
2
+
3
+ ## Basic Build Script
4
+
5
+ ```kotlin
6
+ // build.gradle.kts
7
+ plugins {
8
+ java
9
+ id("org.springframework.boot") version "3.2.0"
10
+ id("io.spring.dependency-management") version "1.1.4"
11
+ }
12
+
13
+ group = "com.example"
14
+ version = "1.0.0"
15
+
16
+ java {
17
+ sourceCompatibility = JavaVersion.VERSION_21
18
+ targetCompatibility = JavaVersion.VERSION_21
19
+ }
20
+
21
+ repositories {
22
+ mavenCentral()
23
+ }
24
+
25
+ dependencies {
26
+ implementation("org.springframework.boot:spring-boot-starter-web")
27
+ implementation("org.springframework.boot:spring-boot-starter-data-jpa")
28
+
29
+ runtimeOnly("org.postgresql:postgresql")
30
+
31
+ compileOnly("org.projectlombok:lombok")
32
+ annotationProcessor("org.projectlombok:lombok")
33
+
34
+ testImplementation("org.springframework.boot:spring-boot-starter-test")
35
+ }
36
+
37
+ tasks.test {
38
+ useJUnitPlatform()
39
+ }
40
+ ```
41
+
42
+ ## Version Catalogs
43
+
44
+ ```toml
45
+ # gradle/libs.versions.toml
46
+ [versions]
47
+ spring-boot = "3.2.0"
48
+ lombok = "1.18.30"
49
+ junit = "5.10.0"
50
+
51
+ [libraries]
52
+ spring-boot-web = { module = "org.springframework.boot:spring-boot-starter-web" }
53
+ spring-boot-jpa = { module = "org.springframework.boot:spring-boot-starter-data-jpa" }
54
+ lombok = { module = "org.projectlombok:lombok", version.ref = "lombok" }
55
+ junit-jupiter = { module = "org.junit.jupiter:junit-jupiter", version.ref = "junit" }
56
+
57
+ [plugins]
58
+ spring-boot = { id = "org.springframework.boot", version.ref = "spring-boot" }
59
+ ```
60
+
61
+ ```kotlin
62
+ // build.gradle.kts
63
+ plugins {
64
+ alias(libs.plugins.spring.boot)
65
+ }
66
+
67
+ dependencies {
68
+ implementation(libs.spring.boot.web)
69
+ implementation(libs.spring.boot.jpa)
70
+ compileOnly(libs.lombok)
71
+ testImplementation(libs.junit.jupiter)
72
+ }
73
+ ```
74
+
75
+ ## Custom Tasks
76
+
77
+ ```kotlin
78
+ tasks.register<Copy>("copyDocs") {
79
+ from("docs")
80
+ into(layout.buildDirectory.dir("documentation"))
81
+ }
82
+
83
+ tasks.named("build") {
84
+ dependsOn("copyDocs")
85
+ }
86
+
87
+ // Task with typed configuration
88
+ tasks.register<Jar>("sourcesJar") {
89
+ archiveClassifier.set("sources")
90
+ from(sourceSets.main.get().allSource)
91
+ }
92
+ ```
93
+
94
+ ## Multi-Project Builds
95
+
96
+ ```kotlin
97
+ // settings.gradle.kts
98
+ rootProject.name = "my-project"
99
+ include("core", "api", "web")
100
+
101
+ // root build.gradle.kts
102
+ subprojects {
103
+ apply(plugin = "java")
104
+
105
+ repositories {
106
+ mavenCentral()
107
+ }
108
+
109
+ dependencies {
110
+ testImplementation("org.junit.jupiter:junit-jupiter:5.10.0")
111
+ }
112
+ }
113
+
114
+ // api/build.gradle.kts
115
+ dependencies {
116
+ implementation(project(":core"))
117
+ }
118
+ ```
@@ -0,0 +1,132 @@
1
+ # Gradle Task Configuration
2
+
3
+ ## Task Types
4
+
5
+ ```kotlin
6
+ // Copy task
7
+ tasks.register<Copy>("copyResources") {
8
+ from("src/main/resources")
9
+ into(layout.buildDirectory.dir("resources"))
10
+ include("**/*.properties")
11
+ exclude("**/test-*")
12
+ }
13
+
14
+ // Exec task
15
+ tasks.register<Exec>("runScript") {
16
+ commandLine("bash", "-c", "echo Hello")
17
+ workingDir = projectDir
18
+ }
19
+
20
+ // Delete task
21
+ tasks.register<Delete>("cleanGenerated") {
22
+ delete(layout.buildDirectory.dir("generated"))
23
+ }
24
+
25
+ // Zip task
26
+ tasks.register<Zip>("createDist") {
27
+ from(layout.buildDirectory.dir("libs"))
28
+ archiveFileName.set("dist-${project.version}.zip")
29
+ destinationDirectory.set(layout.buildDirectory.dir("distributions"))
30
+ }
31
+ ```
32
+
33
+ ## Task Dependencies
34
+
35
+ ```kotlin
36
+ tasks.register("prepare") {
37
+ doLast { println("Preparing...") }
38
+ }
39
+
40
+ tasks.register("build") {
41
+ dependsOn("prepare")
42
+ doLast { println("Building...") }
43
+ }
44
+
45
+ tasks.register("deploy") {
46
+ mustRunAfter("build")
47
+ doLast { println("Deploying...") }
48
+ }
49
+
50
+ // Finalized by
51
+ tasks.named("build") {
52
+ finalizedBy("report")
53
+ }
54
+ ```
55
+
56
+ ## Lazy Configuration
57
+
58
+ ```kotlin
59
+ // Lazy property
60
+ val outputDir = objects.directoryProperty()
61
+ outputDir.set(layout.buildDirectory.dir("output"))
62
+
63
+ tasks.register<Copy>("copyOutput") {
64
+ from(tasks.named("compile"))
65
+ into(outputDir)
66
+ }
67
+
68
+ // Provider API
69
+ val jarFile = tasks.named<Jar>("jar").flatMap { it.archiveFile }
70
+
71
+ tasks.register("printJar") {
72
+ doLast {
73
+ println("JAR: ${jarFile.get().asFile}")
74
+ }
75
+ }
76
+ ```
77
+
78
+ ## Task Avoidance
79
+
80
+ ```kotlin
81
+ // DON'T - eagerly creates task
82
+ tasks.create("eagerTask") { }
83
+
84
+ // DO - lazily creates task
85
+ tasks.register("lazyTask") { }
86
+
87
+ // Configure existing task lazily
88
+ tasks.named<Test>("test") {
89
+ useJUnitPlatform()
90
+ maxParallelForks = Runtime.getRuntime().availableProcessors()
91
+ }
92
+ ```
93
+
94
+ ## Build Cache
95
+
96
+ ```kotlin
97
+ // Enable in gradle.properties
98
+ // org.gradle.caching=true
99
+
100
+ tasks.register("cachedTask") {
101
+ inputs.files("src/main/resources")
102
+ outputs.dir(layout.buildDirectory.dir("cached"))
103
+
104
+ outputs.cacheIf { true }
105
+
106
+ doLast {
107
+ // Task action
108
+ }
109
+ }
110
+ ```
111
+
112
+ ## Common Commands
113
+
114
+ ```bash
115
+ # List tasks
116
+ ./gradlew tasks
117
+
118
+ # Run with info
119
+ ./gradlew build --info
120
+
121
+ # Skip tests
122
+ ./gradlew build -x test
123
+
124
+ # Parallel execution
125
+ ./gradlew build --parallel
126
+
127
+ # Refresh dependencies
128
+ ./gradlew build --refresh-dependencies
129
+
130
+ # Build scan
131
+ ./gradlew build --scan
132
+ ```
@@ -0,0 +1,86 @@
1
+ ---
2
+ name: Maven Build
3
+ description: POM structure, dependency management, plugins, profiles, and multi-module projects.
4
+ metadata:
5
+ labels: [java, maven, build]
6
+ triggers:
7
+ files: ['pom.xml']
8
+ keywords: [dependencyManagement, plugin, maven, lifecycle, groupId, artifactId, version]
9
+ ---
10
+
11
+ # Maven Build Standards
12
+
13
+ ## POM Structure
14
+
15
+ ```xml
16
+ <?xml version="1.0" encoding="UTF-8"?>
17
+ <project xmlns="http://maven.apache.org/POM/4.0.0"
18
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
19
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
20
+ http://maven.apache.org/xsd/maven-4.0.0.xsd">
21
+ <modelVersion>4.0.0</modelVersion>
22
+
23
+ <parent>
24
+ <groupId>org.springframework.boot</groupId>
25
+ <artifactId>spring-boot-starter-parent</artifactId>
26
+ <version>3.2.0</version>
27
+ </parent>
28
+
29
+ <groupId>com.example</groupId>
30
+ <artifactId>my-app</artifactId>
31
+ <version>1.0.0-SNAPSHOT</version>
32
+ <packaging>jar</packaging>
33
+
34
+ <properties>
35
+ <java.version>21</java.version>
36
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
37
+ </properties>
38
+
39
+ <dependencies>
40
+ <dependency>
41
+ <groupId>org.springframework.boot</groupId>
42
+ <artifactId>spring-boot-starter-web</artifactId>
43
+ </dependency>
44
+ </dependencies>
45
+
46
+ <build>
47
+ <plugins>
48
+ <plugin>
49
+ <groupId>org.springframework.boot</groupId>
50
+ <artifactId>spring-boot-maven-plugin</artifactId>
51
+ </plugin>
52
+ </plugins>
53
+ </build>
54
+ </project>
55
+ ```
56
+
57
+ ## Dependency Management
58
+
59
+ ```xml
60
+ <dependencyManagement>
61
+ <dependencies>
62
+ <!-- BOM import -->
63
+ <dependency>
64
+ <groupId>org.springframework.cloud</groupId>
65
+ <artifactId>spring-cloud-dependencies</artifactId>
66
+ <version>2023.0.0</version>
67
+ <type>pom</type>
68
+ <scope>import</scope>
69
+ </dependency>
70
+ </dependencies>
71
+ </dependencyManagement>
72
+ ```
73
+
74
+ ## Common Commands
75
+
76
+ ```bash
77
+ mvn clean install # Build and install
78
+ mvn clean install -DskipTests # Skip tests
79
+ mvn dependency:tree # Show dependency tree
80
+ mvn versions:display-dependency-updates # Check updates
81
+ mvn spring-boot:run # Run Spring Boot app
82
+ ```
83
+
84
+ ## References
85
+
86
+ - [Dependency Management](references/dependency-management.md) - BOMs, exclusions, versions
@@ -0,0 +1,14 @@
1
+ # Maven Build References
2
+
3
+ ## References
4
+
5
+ - [**Lifecycle Phases**](lifecycle-phases.md) - Build phases, plugin configuration, multi-module
6
+ - [**Dependency Management**](dependency-management.md) - Scopes, BOM, exclusions, versions
7
+
8
+ ## Quick Checks
9
+
10
+ - [ ] Use appropriate dependency scopes
11
+ - [ ] Centralize versions in properties or BOM
12
+ - [ ] Configure compiler for target Java version
13
+ - [ ] Use Surefire for unit tests, Failsafe for integration
14
+ - [ ] Profile-based builds for environments