@hivehub/rulebook 4.2.2 → 4.3.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 (340) hide show
  1. package/.claude/commands/continue.md +33 -33
  2. package/.claude/commands/ralph-config.md +112 -112
  3. package/.claude/commands/ralph-history.md +110 -110
  4. package/.claude/commands/ralph-init.md +72 -72
  5. package/.claude/commands/ralph-pause-resume.md +105 -105
  6. package/.claude/commands/ralph-run.md +101 -101
  7. package/.claude/commands/ralph-status.md +76 -76
  8. package/.claude/commands/rulebook-memory-save.md +48 -48
  9. package/.claude/commands/rulebook-memory-search.md +47 -47
  10. package/.claude/commands/rulebook-task-apply.md +67 -67
  11. package/.claude/commands/rulebook-task-archive.md +70 -70
  12. package/.claude/commands/rulebook-task-create.md +93 -93
  13. package/.claude/commands/rulebook-task-list.md +42 -42
  14. package/.claude/commands/rulebook-task-show.md +52 -52
  15. package/.claude/commands/rulebook-task-validate.md +53 -53
  16. package/.claude-plugin/marketplace.json +28 -28
  17. package/.claude-plugin/plugin.json +8 -8
  18. package/README.md +15 -1
  19. package/dist/cli/commands.d.ts.map +1 -1
  20. package/dist/cli/commands.js +43 -18
  21. package/dist/cli/commands.js.map +1 -1
  22. package/dist/core/claude-mcp.d.ts +10 -2
  23. package/dist/core/claude-mcp.d.ts.map +1 -1
  24. package/dist/core/claude-mcp.js +48 -9
  25. package/dist/core/claude-mcp.js.map +1 -1
  26. package/dist/core/config-manager.d.ts.map +1 -1
  27. package/dist/core/config-manager.js +1 -2
  28. package/dist/core/config-manager.js.map +1 -1
  29. package/dist/core/generator.d.ts +13 -0
  30. package/dist/core/generator.d.ts.map +1 -1
  31. package/dist/core/generator.js +283 -28
  32. package/dist/core/generator.js.map +1 -1
  33. package/dist/core/indexer/background-indexer.d.ts.map +1 -1
  34. package/dist/core/indexer/background-indexer.js +10 -3
  35. package/dist/core/indexer/background-indexer.js.map +1 -1
  36. package/dist/core/workspace/workspace-manager.d.ts.map +1 -1
  37. package/dist/core/workspace/workspace-manager.js +2 -6
  38. package/dist/core/workspace/workspace-manager.js.map +1 -1
  39. package/dist/index.js +1 -3
  40. package/dist/index.js.map +1 -1
  41. package/dist/mcp/rulebook-server.d.ts.map +1 -1
  42. package/dist/mcp/rulebook-server.js +23 -10
  43. package/dist/mcp/rulebook-server.js.map +1 -1
  44. package/package.json +21 -22
  45. package/templates/agents/accessibility-reviewer.md +43 -0
  46. package/templates/agents/api-designer.md +42 -0
  47. package/templates/agents/architect.md +51 -0
  48. package/templates/agents/build-engineer.md +36 -0
  49. package/templates/agents/code-reviewer.md +47 -0
  50. package/templates/agents/database-architect.md +41 -0
  51. package/templates/agents/devops-engineer.md +42 -0
  52. package/templates/agents/docs-writer.md +38 -0
  53. package/templates/agents/i18n-engineer.md +42 -0
  54. package/templates/agents/implementer.md +38 -35
  55. package/templates/agents/migration-engineer.md +42 -0
  56. package/templates/agents/performance-engineer.md +49 -0
  57. package/templates/agents/refactoring-agent.md +41 -0
  58. package/templates/agents/researcher.md +38 -34
  59. package/templates/agents/security-reviewer.md +40 -0
  60. package/templates/agents/team-lead.md +37 -34
  61. package/templates/agents/tester.md +45 -42
  62. package/templates/agents/ux-reviewer.md +43 -0
  63. package/templates/ci/rulebook-review.yml +26 -26
  64. package/templates/cli/AIDER.md +49 -49
  65. package/templates/cli/AMAZON_Q.md +25 -25
  66. package/templates/cli/AUGGIE.md +32 -32
  67. package/templates/cli/CLAUDE.md +117 -117
  68. package/templates/cli/CLINE.md +99 -99
  69. package/templates/cli/CODEBUDDY.md +20 -20
  70. package/templates/cli/CODEIUM.md +20 -20
  71. package/templates/cli/CODEX.md +21 -21
  72. package/templates/cli/CONTINUE.md +34 -34
  73. package/templates/cli/CURSOR_CLI.md +62 -62
  74. package/templates/cli/FACTORY.md +18 -18
  75. package/templates/cli/GEMINI.md +35 -35
  76. package/templates/cli/KILOCODE.md +18 -18
  77. package/templates/cli/OPENCODE.md +18 -18
  78. package/templates/cli/_GENERIC_TEMPLATE.md +29 -29
  79. package/templates/commands/rulebook-memory-save.md +48 -48
  80. package/templates/commands/rulebook-memory-search.md +47 -47
  81. package/templates/commands/rulebook-task-apply.md +67 -67
  82. package/templates/commands/rulebook-task-archive.md +94 -94
  83. package/templates/commands/rulebook-task-create.md +93 -93
  84. package/templates/commands/rulebook-task-list.md +42 -42
  85. package/templates/commands/rulebook-task-show.md +52 -52
  86. package/templates/commands/rulebook-task-validate.md +53 -53
  87. package/templates/core/AGENTS_LEAN.md +25 -25
  88. package/templates/core/AGENTS_OVERRIDE.md +16 -16
  89. package/templates/core/AGENT_AUTOMATION.md +288 -288
  90. package/templates/core/DAG.md +304 -304
  91. package/templates/core/DOCUMENTATION_RULES.md +36 -36
  92. package/templates/core/MULTI_AGENT.md +74 -74
  93. package/templates/core/PLANS.md +28 -28
  94. package/templates/core/QUALITY_ENFORCEMENT.md +68 -68
  95. package/templates/core/RALPH.md +471 -471
  96. package/templates/core/RULEBOOK.md +1935 -1935
  97. package/templates/frameworks/ANGULAR.md +36 -36
  98. package/templates/frameworks/DJANGO.md +83 -83
  99. package/templates/frameworks/ELECTRON.md +147 -147
  100. package/templates/frameworks/FLASK.md +38 -38
  101. package/templates/frameworks/FLUTTER.md +55 -55
  102. package/templates/frameworks/JQUERY.md +32 -32
  103. package/templates/frameworks/LARAVEL.md +38 -38
  104. package/templates/frameworks/NESTJS.md +43 -43
  105. package/templates/frameworks/NEXTJS.md +127 -127
  106. package/templates/frameworks/NUXT.md +40 -40
  107. package/templates/frameworks/RAILS.md +66 -66
  108. package/templates/frameworks/REACT.md +38 -38
  109. package/templates/frameworks/REACT_NATIVE.md +47 -47
  110. package/templates/frameworks/SPRING.md +39 -39
  111. package/templates/frameworks/SYMFONY.md +36 -36
  112. package/templates/frameworks/VUE.md +36 -36
  113. package/templates/frameworks/ZEND.md +35 -35
  114. package/templates/git/CI_CD_PATTERNS.md +661 -661
  115. package/templates/git/GITHUB_ACTIONS.md +728 -728
  116. package/templates/git/GITLAB_CI.md +730 -730
  117. package/templates/git/GIT_WORKFLOW.md +1157 -1157
  118. package/templates/git/SECRETS_MANAGEMENT.md +585 -585
  119. package/templates/hooks/COMMIT_MSG.md +530 -530
  120. package/templates/hooks/POST_CHECKOUT.md +546 -546
  121. package/templates/hooks/PREPARE_COMMIT_MSG.md +619 -619
  122. package/templates/hooks/PRE_COMMIT.md +414 -414
  123. package/templates/hooks/PRE_PUSH.md +601 -601
  124. package/templates/ides/CONTINUE_RULES.md +16 -16
  125. package/templates/ides/COPILOT.md +37 -37
  126. package/templates/ides/COPILOT_INSTRUCTIONS.md +23 -23
  127. package/templates/ides/CURSOR.md +43 -43
  128. package/templates/ides/GEMINI_RULES.md +17 -17
  129. package/templates/ides/JETBRAINS_AI.md +35 -35
  130. package/templates/ides/REPLIT.md +36 -36
  131. package/templates/ides/TABNINE.md +29 -29
  132. package/templates/ides/VSCODE.md +40 -40
  133. package/templates/ides/WINDSURF.md +36 -36
  134. package/templates/ides/WINDSURF_RULES.md +14 -14
  135. package/templates/ides/ZED.md +32 -32
  136. package/templates/ides/cursor-mdc/go.mdc +24 -24
  137. package/templates/ides/cursor-mdc/python.mdc +24 -24
  138. package/templates/ides/cursor-mdc/quality.mdc +25 -25
  139. package/templates/ides/cursor-mdc/ralph.mdc +39 -39
  140. package/templates/ides/cursor-mdc/rulebook.mdc +38 -38
  141. package/templates/ides/cursor-mdc/rust.mdc +24 -24
  142. package/templates/ides/cursor-mdc/typescript.mdc +25 -25
  143. package/templates/languages/C.md +333 -333
  144. package/templates/languages/CPP.md +743 -743
  145. package/templates/languages/CSHARP.md +417 -417
  146. package/templates/languages/ELIXIR.md +454 -454
  147. package/templates/languages/ERLANG.md +361 -361
  148. package/templates/languages/GO.md +645 -645
  149. package/templates/languages/HASKELL.md +177 -177
  150. package/templates/languages/JAVA.md +607 -607
  151. package/templates/languages/JAVASCRIPT.md +631 -631
  152. package/templates/languages/JULIA.md +97 -97
  153. package/templates/languages/KOTLIN.md +511 -511
  154. package/templates/languages/LISP.md +100 -100
  155. package/templates/languages/LUA.md +74 -74
  156. package/templates/languages/OBJECTIVEC.md +90 -90
  157. package/templates/languages/PHP.md +416 -416
  158. package/templates/languages/PYTHON.md +682 -682
  159. package/templates/languages/RUBY.md +421 -421
  160. package/templates/languages/RUST.md +477 -477
  161. package/templates/languages/SAS.md +73 -73
  162. package/templates/languages/SCALA.md +348 -348
  163. package/templates/languages/SOLIDITY.md +580 -580
  164. package/templates/languages/SQL.md +137 -137
  165. package/templates/languages/SWIFT.md +466 -466
  166. package/templates/languages/TYPESCRIPT.md +591 -591
  167. package/templates/languages/ZIG.md +265 -265
  168. package/templates/modules/ATLASSIAN.md +255 -255
  169. package/templates/modules/CONTEXT7.md +54 -54
  170. package/templates/modules/FIGMA.md +267 -267
  171. package/templates/modules/GITHUB_MCP.md +64 -64
  172. package/templates/modules/GRAFANA.md +328 -328
  173. package/templates/modules/MEMORY.md +126 -126
  174. package/templates/modules/NOTION.md +247 -247
  175. package/templates/modules/PLAYWRIGHT.md +90 -90
  176. package/templates/modules/RULEBOOK_MCP.md +156 -156
  177. package/templates/modules/SERENA.md +337 -337
  178. package/templates/modules/SUPABASE.md +223 -223
  179. package/templates/modules/SYNAP.md +69 -69
  180. package/templates/modules/VECTORIZER.md +63 -63
  181. package/templates/modules/sequential-thinking.md +42 -42
  182. package/templates/ralph/ralph-history.bat +4 -4
  183. package/templates/ralph/ralph-history.sh +5 -5
  184. package/templates/ralph/ralph-init.bat +5 -5
  185. package/templates/ralph/ralph-init.sh +5 -5
  186. package/templates/ralph/ralph-pause.bat +5 -5
  187. package/templates/ralph/ralph-pause.sh +5 -5
  188. package/templates/ralph/ralph-run.bat +5 -5
  189. package/templates/ralph/ralph-run.sh +5 -5
  190. package/templates/ralph/ralph-status.bat +4 -4
  191. package/templates/ralph/ralph-status.sh +5 -5
  192. package/templates/services/AZURE_BLOB.md +184 -184
  193. package/templates/services/CASSANDRA.md +239 -239
  194. package/templates/services/DATADOG.md +26 -26
  195. package/templates/services/DOCKER.md +124 -124
  196. package/templates/services/DOCKER_COMPOSE.md +168 -168
  197. package/templates/services/DYNAMODB.md +308 -308
  198. package/templates/services/ELASTICSEARCH.md +347 -347
  199. package/templates/services/GCS.md +178 -178
  200. package/templates/services/HELM.md +194 -194
  201. package/templates/services/INFLUXDB.md +265 -265
  202. package/templates/services/KAFKA.md +341 -341
  203. package/templates/services/KUBERNETES.md +208 -208
  204. package/templates/services/MARIADB.md +183 -183
  205. package/templates/services/MEMCACHED.md +242 -242
  206. package/templates/services/MINIO.md +201 -201
  207. package/templates/services/MONGODB.md +268 -268
  208. package/templates/services/MYSQL.md +358 -358
  209. package/templates/services/NEO4J.md +247 -247
  210. package/templates/services/OPENTELEMETRY.md +25 -25
  211. package/templates/services/ORACLE.md +290 -290
  212. package/templates/services/PINO.md +24 -24
  213. package/templates/services/POSTGRESQL.md +326 -326
  214. package/templates/services/PROMETHEUS.md +33 -33
  215. package/templates/services/RABBITMQ.md +286 -286
  216. package/templates/services/REDIS.md +292 -292
  217. package/templates/services/S3.md +298 -298
  218. package/templates/services/SENTRY.md +23 -23
  219. package/templates/services/SQLITE.md +294 -294
  220. package/templates/services/SQLSERVER.md +294 -294
  221. package/templates/services/WINSTON.md +30 -30
  222. package/templates/skills/cli/aider/SKILL.md +59 -59
  223. package/templates/skills/cli/amazon-q/SKILL.md +35 -35
  224. package/templates/skills/cli/auggie/SKILL.md +42 -42
  225. package/templates/skills/cli/claude/SKILL.md +42 -42
  226. package/templates/skills/cli/cline/SKILL.md +42 -42
  227. package/templates/skills/cli/codebuddy/SKILL.md +30 -30
  228. package/templates/skills/cli/codeium/SKILL.md +30 -30
  229. package/templates/skills/cli/codex/SKILL.md +31 -31
  230. package/templates/skills/cli/continue/SKILL.md +44 -44
  231. package/templates/skills/cli/cursor-cli/SKILL.md +38 -38
  232. package/templates/skills/cli/factory/SKILL.md +28 -28
  233. package/templates/skills/cli/gemini/SKILL.md +45 -45
  234. package/templates/skills/cli/kilocode/SKILL.md +28 -28
  235. package/templates/skills/cli/opencode/SKILL.md +28 -28
  236. package/templates/skills/core/agent-automation/SKILL.md +194 -194
  237. package/templates/skills/core/dag/SKILL.md +314 -314
  238. package/templates/skills/core/documentation-rules/SKILL.md +46 -46
  239. package/templates/skills/core/quality-enforcement/SKILL.md +78 -78
  240. package/templates/skills/core/rulebook/SKILL.md +176 -176
  241. package/templates/skills/dev/accessibility/SKILL.md +17 -0
  242. package/templates/skills/dev/api-design/SKILL.md +15 -0
  243. package/templates/skills/dev/architect/SKILL.md +17 -0
  244. package/templates/skills/dev/build-fix/SKILL.md +17 -0
  245. package/templates/skills/dev/db-design/SKILL.md +15 -0
  246. package/templates/skills/dev/debug/SKILL.md +16 -0
  247. package/templates/skills/dev/deploy/SKILL.md +17 -0
  248. package/templates/skills/dev/docs/SKILL.md +17 -0
  249. package/templates/skills/dev/migrate/SKILL.md +15 -0
  250. package/templates/skills/dev/perf/SKILL.md +17 -0
  251. package/templates/skills/dev/refactor/SKILL.md +17 -0
  252. package/templates/skills/dev/research/SKILL.md +14 -0
  253. package/templates/skills/dev/review/SKILL.md +18 -0
  254. package/templates/skills/dev/security-audit/SKILL.md +17 -0
  255. package/templates/skills/frameworks/angular/SKILL.md +46 -46
  256. package/templates/skills/frameworks/django/SKILL.md +93 -93
  257. package/templates/skills/frameworks/electron/SKILL.md +157 -157
  258. package/templates/skills/frameworks/flask/SKILL.md +48 -48
  259. package/templates/skills/frameworks/flutter/SKILL.md +65 -65
  260. package/templates/skills/frameworks/jquery/SKILL.md +42 -42
  261. package/templates/skills/frameworks/laravel/SKILL.md +48 -48
  262. package/templates/skills/frameworks/nestjs/SKILL.md +53 -53
  263. package/templates/skills/frameworks/nextjs/SKILL.md +137 -137
  264. package/templates/skills/frameworks/nuxt/SKILL.md +50 -50
  265. package/templates/skills/frameworks/rails/SKILL.md +76 -76
  266. package/templates/skills/frameworks/react/SKILL.md +48 -48
  267. package/templates/skills/frameworks/react-native/SKILL.md +57 -57
  268. package/templates/skills/frameworks/spring/SKILL.md +49 -49
  269. package/templates/skills/frameworks/symfony/SKILL.md +46 -46
  270. package/templates/skills/frameworks/vue/SKILL.md +46 -46
  271. package/templates/skills/frameworks/zend/SKILL.md +45 -45
  272. package/templates/skills/ides/copilot/SKILL.md +47 -47
  273. package/templates/skills/ides/cursor/SKILL.md +53 -53
  274. package/templates/skills/ides/jetbrains-ai/SKILL.md +45 -45
  275. package/templates/skills/ides/replit/SKILL.md +46 -46
  276. package/templates/skills/ides/tabnine/SKILL.md +39 -39
  277. package/templates/skills/ides/vscode/SKILL.md +50 -50
  278. package/templates/skills/ides/windsurf/SKILL.md +46 -46
  279. package/templates/skills/ides/zed/SKILL.md +42 -42
  280. package/templates/skills/languages/c/SKILL.md +343 -343
  281. package/templates/skills/languages/cpp/SKILL.md +753 -753
  282. package/templates/skills/languages/csharp/SKILL.md +427 -427
  283. package/templates/skills/languages/elixir/SKILL.md +464 -464
  284. package/templates/skills/languages/erlang/SKILL.md +371 -371
  285. package/templates/skills/languages/go/SKILL.md +655 -655
  286. package/templates/skills/languages/haskell/SKILL.md +187 -187
  287. package/templates/skills/languages/java/SKILL.md +617 -617
  288. package/templates/skills/languages/javascript/SKILL.md +641 -641
  289. package/templates/skills/languages/julia/SKILL.md +107 -107
  290. package/templates/skills/languages/kotlin/SKILL.md +521 -521
  291. package/templates/skills/languages/lisp/SKILL.md +110 -110
  292. package/templates/skills/languages/lua/SKILL.md +84 -84
  293. package/templates/skills/languages/objectivec/SKILL.md +100 -100
  294. package/templates/skills/languages/php/SKILL.md +426 -426
  295. package/templates/skills/languages/python/SKILL.md +692 -692
  296. package/templates/skills/languages/ruby/SKILL.md +431 -431
  297. package/templates/skills/languages/rust/SKILL.md +487 -487
  298. package/templates/skills/languages/sas/SKILL.md +83 -83
  299. package/templates/skills/languages/scala/SKILL.md +358 -358
  300. package/templates/skills/languages/solidity/SKILL.md +590 -590
  301. package/templates/skills/languages/sql/SKILL.md +147 -147
  302. package/templates/skills/languages/swift/SKILL.md +476 -476
  303. package/templates/skills/languages/typescript/SKILL.md +302 -302
  304. package/templates/skills/languages/zig/SKILL.md +275 -275
  305. package/templates/skills/modules/atlassian/SKILL.md +265 -265
  306. package/templates/skills/modules/context7/SKILL.md +64 -64
  307. package/templates/skills/modules/figma/SKILL.md +277 -277
  308. package/templates/skills/modules/github-mcp/SKILL.md +74 -74
  309. package/templates/skills/modules/grafana/SKILL.md +338 -338
  310. package/templates/skills/modules/memory/SKILL.md +73 -73
  311. package/templates/skills/modules/notion/SKILL.md +257 -257
  312. package/templates/skills/modules/playwright/SKILL.md +100 -100
  313. package/templates/skills/modules/rulebook-mcp/SKILL.md +166 -166
  314. package/templates/skills/modules/serena/SKILL.md +347 -347
  315. package/templates/skills/modules/supabase/SKILL.md +233 -233
  316. package/templates/skills/modules/synap/SKILL.md +79 -79
  317. package/templates/skills/modules/vectorizer/SKILL.md +73 -73
  318. package/templates/skills/services/azure-blob/SKILL.md +194 -194
  319. package/templates/skills/services/cassandra/SKILL.md +249 -249
  320. package/templates/skills/services/dynamodb/SKILL.md +318 -318
  321. package/templates/skills/services/elasticsearch/SKILL.md +357 -357
  322. package/templates/skills/services/gcs/SKILL.md +188 -188
  323. package/templates/skills/services/influxdb/SKILL.md +275 -275
  324. package/templates/skills/services/kafka/SKILL.md +351 -351
  325. package/templates/skills/services/mariadb/SKILL.md +193 -193
  326. package/templates/skills/services/memcached/SKILL.md +252 -252
  327. package/templates/skills/services/minio/SKILL.md +211 -211
  328. package/templates/skills/services/mongodb/SKILL.md +278 -278
  329. package/templates/skills/services/mysql/SKILL.md +368 -368
  330. package/templates/skills/services/neo4j/SKILL.md +257 -257
  331. package/templates/skills/services/oracle/SKILL.md +300 -300
  332. package/templates/skills/services/postgresql/SKILL.md +336 -336
  333. package/templates/skills/services/rabbitmq/SKILL.md +296 -296
  334. package/templates/skills/services/redis/SKILL.md +302 -302
  335. package/templates/skills/services/s3/SKILL.md +308 -308
  336. package/templates/skills/services/sqlite/SKILL.md +304 -304
  337. package/templates/skills/services/sqlserver/SKILL.md +304 -304
  338. package/templates/skills/workflows/ralph/SKILL.md +309 -309
  339. package/templates/skills/workflows/ralph/install.sh +87 -87
  340. package/templates/skills/workflows/ralph/manifest.json +158 -158
@@ -1,36 +1,36 @@
1
- <!-- ANGULAR:START -->
2
- # Angular Framework Rules
3
-
4
- **CRITICAL**: Angular projects must meet these standards before delivery.
5
-
6
- ## Quality Commands
7
- - Lint: `npm run lint`
8
- - Unit tests: `npm run test -- --watch=false --code-coverage`
9
- - e2e tests: `npm run e2e`
10
- - Build: `npm run build -- --configuration production`
11
-
12
- ## Project Structure
13
- - Colocate features inside `src/app/<feature>/`
14
- - Keep shared modules in `src/app/shared`
15
- - Avoid `providedIn: 'root'` unless service truly global
16
- - Leverage `OnPush` change detection for performance-critical components
17
-
18
- ## Implementation Guidelines
19
- - Define interfaces for component inputs/outputs
20
- - Use `HttpClient` interceptors for auth/logging
21
- - Isolate environment variables in `src/environments/`
22
- - Prefer Reactive Forms and RxJS operators over manual subscriptions
23
-
24
- ## Pre-Commit Sequence
25
- ```bash
26
- npm run lint
27
- npm run test -- --watch=false
28
- npm run build -- --configuration production
29
- ```
30
-
31
- ## Documentation
32
- - Update `/docs/angular-architecture.md` with new modules and routes
33
- - Record shared component APIs in Storybook or `/docs/ui-components.md`
34
- - Version major route changes in `/docs/roadmap.md`
35
-
36
- <!-- ANGULAR:END -->
1
+ <!-- ANGULAR:START -->
2
+ # Angular Framework Rules
3
+
4
+ **CRITICAL**: Angular projects must meet these standards before delivery.
5
+
6
+ ## Quality Commands
7
+ - Lint: `npm run lint`
8
+ - Unit tests: `npm run test -- --watch=false --code-coverage`
9
+ - e2e tests: `npm run e2e`
10
+ - Build: `npm run build -- --configuration production`
11
+
12
+ ## Project Structure
13
+ - Colocate features inside `src/app/<feature>/`
14
+ - Keep shared modules in `src/app/shared`
15
+ - Avoid `providedIn: 'root'` unless service truly global
16
+ - Leverage `OnPush` change detection for performance-critical components
17
+
18
+ ## Implementation Guidelines
19
+ - Define interfaces for component inputs/outputs
20
+ - Use `HttpClient` interceptors for auth/logging
21
+ - Isolate environment variables in `src/environments/`
22
+ - Prefer Reactive Forms and RxJS operators over manual subscriptions
23
+
24
+ ## Pre-Commit Sequence
25
+ ```bash
26
+ npm run lint
27
+ npm run test -- --watch=false
28
+ npm run build -- --configuration production
29
+ ```
30
+
31
+ ## Documentation
32
+ - Update `/docs/angular-architecture.md` with new modules and routes
33
+ - Record shared component APIs in Storybook or `/docs/ui-components.md`
34
+ - Version major route changes in `/docs/roadmap.md`
35
+
36
+ <!-- ANGULAR:END -->
@@ -1,83 +1,83 @@
1
- <!-- DJANGO:START -->
2
- # Django Framework Rules
3
-
4
- **Language**: Python
5
- **Version**: Django 4.2+ (LTS) or 5.0+
6
-
7
- ## Setup & Configuration
8
-
9
- ```python
10
- # settings.py
11
- SECRET_KEY = env('SECRET_KEY') # Never hardcode
12
- DEBUG = env.bool('DEBUG', default=False)
13
- ALLOWED_HOSTS = env.list('ALLOWED_HOSTS')
14
-
15
- INSTALLED_APPS = [
16
- # Django apps
17
- 'django.contrib.admin',
18
- 'django.contrib.auth',
19
- # Third-party
20
- 'rest_framework',
21
- 'corsheaders',
22
- # Local apps
23
- 'apps.users',
24
- ]
25
-
26
- DATABASES = {
27
- 'default': env.db('DATABASE_URL') # Use django-environ
28
- }
29
- ```
30
-
31
- ## Quality Gates
32
-
33
- ```bash
34
- # Code quality
35
- black . # Format
36
- ruff check . # Lint
37
- mypy . # Type check
38
-
39
- # Tests
40
- python manage.py test # Run tests
41
- pytest --cov=apps --cov-report=html # With coverage
42
-
43
- # Security
44
- python manage.py check --deploy # Production checks
45
- bandit -r apps/ # Security scan
46
- ```
47
-
48
- ## Best Practices
49
-
50
- ✅ **DO:**
51
- - Use Class-Based Views (CBVs) or Django REST Framework ViewSets
52
- - Implement custom User model from start
53
- - Use Django ORM properly (select_related, prefetch_related)
54
- - Enable CSRF protection
55
- - Use environment variables for secrets
56
- - Write tests for views, models, and forms
57
-
58
- ❌ **DON'T:**
59
- - Use `DEBUG=True` in production
60
- - Store secrets in settings.py
61
- - Use raw SQL without parameterization
62
- - Skip migrations
63
- - Ignore security middleware
64
-
65
- ## Project Structure
66
-
67
- ```
68
- project/
69
- ├── manage.py
70
- ├── requirements.txt
71
- ├── apps/
72
- │ ├── users/
73
- │ ├── api/
74
- │ └── core/
75
- ├── config/
76
- │ ├── settings.py
77
- │ ├── urls.py
78
- │ └── wsgi.py
79
- └── tests/
80
- ```
81
-
82
- <!-- DJANGO:END -->
83
-
1
+ <!-- DJANGO:START -->
2
+ # Django Framework Rules
3
+
4
+ **Language**: Python
5
+ **Version**: Django 4.2+ (LTS) or 5.0+
6
+
7
+ ## Setup & Configuration
8
+
9
+ ```python
10
+ # settings.py
11
+ SECRET_KEY = env('SECRET_KEY') # Never hardcode
12
+ DEBUG = env.bool('DEBUG', default=False)
13
+ ALLOWED_HOSTS = env.list('ALLOWED_HOSTS')
14
+
15
+ INSTALLED_APPS = [
16
+ # Django apps
17
+ 'django.contrib.admin',
18
+ 'django.contrib.auth',
19
+ # Third-party
20
+ 'rest_framework',
21
+ 'corsheaders',
22
+ # Local apps
23
+ 'apps.users',
24
+ ]
25
+
26
+ DATABASES = {
27
+ 'default': env.db('DATABASE_URL') # Use django-environ
28
+ }
29
+ ```
30
+
31
+ ## Quality Gates
32
+
33
+ ```bash
34
+ # Code quality
35
+ black . # Format
36
+ ruff check . # Lint
37
+ mypy . # Type check
38
+
39
+ # Tests
40
+ python manage.py test # Run tests
41
+ pytest --cov=apps --cov-report=html # With coverage
42
+
43
+ # Security
44
+ python manage.py check --deploy # Production checks
45
+ bandit -r apps/ # Security scan
46
+ ```
47
+
48
+ ## Best Practices
49
+
50
+ ✅ **DO:**
51
+ - Use Class-Based Views (CBVs) or Django REST Framework ViewSets
52
+ - Implement custom User model from start
53
+ - Use Django ORM properly (select_related, prefetch_related)
54
+ - Enable CSRF protection
55
+ - Use environment variables for secrets
56
+ - Write tests for views, models, and forms
57
+
58
+ ❌ **DON'T:**
59
+ - Use `DEBUG=True` in production
60
+ - Store secrets in settings.py
61
+ - Use raw SQL without parameterization
62
+ - Skip migrations
63
+ - Ignore security middleware
64
+
65
+ ## Project Structure
66
+
67
+ ```
68
+ project/
69
+ ├── manage.py
70
+ ├── requirements.txt
71
+ ├── apps/
72
+ │ ├── users/
73
+ │ ├── api/
74
+ │ └── core/
75
+ ├── config/
76
+ │ ├── settings.py
77
+ │ ├── urls.py
78
+ │ └── wsgi.py
79
+ └── tests/
80
+ ```
81
+
82
+ <!-- DJANGO:END -->
83
+
@@ -1,147 +1,147 @@
1
- <!-- ELECTRON:START -->
2
- # Electron Framework Rules
3
-
4
- **Language**: TypeScript, JavaScript
5
- **Version**: Electron 28+
6
-
7
- ## Setup & Configuration
8
-
9
- ```typescript
10
- // main.ts (Main Process)
11
- import { app, BrowserWindow } from 'electron'
12
- import path from 'path'
13
-
14
- function createWindow() {
15
- const win = new BrowserWindow({
16
- width: 1200,
17
- height: 800,
18
- webPreferences: {
19
- preload: path.join(__dirname, 'preload.js'),
20
- contextIsolation: true,
21
- nodeIntegration: false,
22
- },
23
- })
24
-
25
- win.loadFile('index.html')
26
- }
27
-
28
- app.whenReady().then(createWindow)
29
- ```
30
-
31
- ## Quality Gates
32
-
33
- ```bash
34
- # Type check
35
- npm run type-check
36
-
37
- # Lint
38
- npm run lint
39
-
40
- # Tests
41
- npm test
42
-
43
- # Build
44
- npm run build # Compile TypeScript
45
- npm run package # Package app
46
- npm run make # Create distributables
47
- ```
48
-
49
- ## Best Practices
50
-
51
- ✅ **DO:**
52
- - Use contextIsolation: true
53
- - Disable nodeIntegration
54
- - Use preload scripts for IPC
55
- - Implement auto-updates (electron-updater)
56
- - Sign and notarize apps (production)
57
- - Use Content Security Policy
58
- - Implement proper error handling
59
- - Separate main and renderer processes
60
-
61
- ❌ **DON'T:**
62
- - Enable nodeIntegration in renderer
63
- - Skip contextIsolation
64
- - Use remote module (deprecated)
65
- - Ignore security warnings
66
- - Skip code signing
67
- - Load remote content without CSP
68
- - Use synchronous IPC
69
- - Hardcode credentials
70
-
71
- ## Project Structure
72
-
73
- ```
74
- src/
75
- ├── main/
76
- │ ├── main.ts # Main process
77
- │ ├── preload.ts # Preload script
78
- │ └── ipc/ # IPC handlers
79
- ├── renderer/
80
- │ ├── index.html
81
- │ ├── renderer.ts
82
- │ └── components/
83
- └── shared/
84
- └── types.ts
85
- ```
86
-
87
- ## IPC Communication
88
-
89
- ```typescript
90
- // preload.ts
91
- import { contextBridge, ipcRenderer } from 'electron'
92
-
93
- contextBridge.exposeInMainWorld('electronAPI', {
94
- sendMessage: (message: string) => ipcRenderer.send('message', message),
95
- onReply: (callback: (reply: string) => void) =>
96
- ipcRenderer.on('reply', (_event, reply) => callback(reply)),
97
- })
98
-
99
- // main.ts
100
- import { ipcMain } from 'electron'
101
-
102
- ipcMain.on('message', (event, message) => {
103
- console.log(message)
104
- event.reply('reply', 'Message received')
105
- })
106
-
107
- // renderer.ts
108
- declare global {
109
- interface Window {
110
- electronAPI: {
111
- sendMessage: (message: string) => void
112
- onReply: (callback: (reply: string) => void) => void
113
- }
114
- }
115
- }
116
-
117
- window.electronAPI.sendMessage('Hello from renderer')
118
- window.electronAPI.onReply((reply) => console.log(reply))
119
- ```
120
-
121
- ## Security Checklist
122
-
123
- ```typescript
124
- // ✅ Good security configuration
125
- const win = new BrowserWindow({
126
- webPreferences: {
127
- contextIsolation: true, // ✅ MUST enable
128
- nodeIntegration: false, // ✅ MUST disable
129
- sandbox: true, // ✅ Enable sandbox
130
- webSecurity: true, // ✅ Enable web security
131
- allowRunningInsecureContent: false, // ✅ Block insecure content
132
- },
133
- })
134
-
135
- // Content Security Policy
136
- session.defaultSession.webRequest.onHeadersReceived((details, callback) => {
137
- callback({
138
- responseHeaders: {
139
- ...details.responseHeaders,
140
- 'Content-Security-Policy': ["default-src 'self'"]
141
- }
142
- })
143
- })
144
- ```
145
-
146
- <!-- ELECTRON:END -->
147
-
1
+ <!-- ELECTRON:START -->
2
+ # Electron Framework Rules
3
+
4
+ **Language**: TypeScript, JavaScript
5
+ **Version**: Electron 28+
6
+
7
+ ## Setup & Configuration
8
+
9
+ ```typescript
10
+ // main.ts (Main Process)
11
+ import { app, BrowserWindow } from 'electron'
12
+ import path from 'path'
13
+
14
+ function createWindow() {
15
+ const win = new BrowserWindow({
16
+ width: 1200,
17
+ height: 800,
18
+ webPreferences: {
19
+ preload: path.join(__dirname, 'preload.js'),
20
+ contextIsolation: true,
21
+ nodeIntegration: false,
22
+ },
23
+ })
24
+
25
+ win.loadFile('index.html')
26
+ }
27
+
28
+ app.whenReady().then(createWindow)
29
+ ```
30
+
31
+ ## Quality Gates
32
+
33
+ ```bash
34
+ # Type check
35
+ npm run type-check
36
+
37
+ # Lint
38
+ npm run lint
39
+
40
+ # Tests
41
+ npm test
42
+
43
+ # Build
44
+ npm run build # Compile TypeScript
45
+ npm run package # Package app
46
+ npm run make # Create distributables
47
+ ```
48
+
49
+ ## Best Practices
50
+
51
+ ✅ **DO:**
52
+ - Use contextIsolation: true
53
+ - Disable nodeIntegration
54
+ - Use preload scripts for IPC
55
+ - Implement auto-updates (electron-updater)
56
+ - Sign and notarize apps (production)
57
+ - Use Content Security Policy
58
+ - Implement proper error handling
59
+ - Separate main and renderer processes
60
+
61
+ ❌ **DON'T:**
62
+ - Enable nodeIntegration in renderer
63
+ - Skip contextIsolation
64
+ - Use remote module (deprecated)
65
+ - Ignore security warnings
66
+ - Skip code signing
67
+ - Load remote content without CSP
68
+ - Use synchronous IPC
69
+ - Hardcode credentials
70
+
71
+ ## Project Structure
72
+
73
+ ```
74
+ src/
75
+ ├── main/
76
+ │ ├── main.ts # Main process
77
+ │ ├── preload.ts # Preload script
78
+ │ └── ipc/ # IPC handlers
79
+ ├── renderer/
80
+ │ ├── index.html
81
+ │ ├── renderer.ts
82
+ │ └── components/
83
+ └── shared/
84
+ └── types.ts
85
+ ```
86
+
87
+ ## IPC Communication
88
+
89
+ ```typescript
90
+ // preload.ts
91
+ import { contextBridge, ipcRenderer } from 'electron'
92
+
93
+ contextBridge.exposeInMainWorld('electronAPI', {
94
+ sendMessage: (message: string) => ipcRenderer.send('message', message),
95
+ onReply: (callback: (reply: string) => void) =>
96
+ ipcRenderer.on('reply', (_event, reply) => callback(reply)),
97
+ })
98
+
99
+ // main.ts
100
+ import { ipcMain } from 'electron'
101
+
102
+ ipcMain.on('message', (event, message) => {
103
+ console.log(message)
104
+ event.reply('reply', 'Message received')
105
+ })
106
+
107
+ // renderer.ts
108
+ declare global {
109
+ interface Window {
110
+ electronAPI: {
111
+ sendMessage: (message: string) => void
112
+ onReply: (callback: (reply: string) => void) => void
113
+ }
114
+ }
115
+ }
116
+
117
+ window.electronAPI.sendMessage('Hello from renderer')
118
+ window.electronAPI.onReply((reply) => console.log(reply))
119
+ ```
120
+
121
+ ## Security Checklist
122
+
123
+ ```typescript
124
+ // ✅ Good security configuration
125
+ const win = new BrowserWindow({
126
+ webPreferences: {
127
+ contextIsolation: true, // ✅ MUST enable
128
+ nodeIntegration: false, // ✅ MUST disable
129
+ sandbox: true, // ✅ Enable sandbox
130
+ webSecurity: true, // ✅ Enable web security
131
+ allowRunningInsecureContent: false, // ✅ Block insecure content
132
+ },
133
+ })
134
+
135
+ // Content Security Policy
136
+ session.defaultSession.webRequest.onHeadersReceived((details, callback) => {
137
+ callback({
138
+ responseHeaders: {
139
+ ...details.responseHeaders,
140
+ 'Content-Security-Policy': ["default-src 'self'"]
141
+ }
142
+ })
143
+ })
144
+ ```
145
+
146
+ <!-- ELECTRON:END -->
147
+
@@ -1,38 +1,38 @@
1
- <!-- FLASK:START -->
2
- # Flask Framework Rules
3
-
4
- **Language**: Python
5
- **Version**: Flask 3.0+
6
-
7
- ## Setup
8
-
9
- ```python
10
- from flask import Flask
11
- app = Flask(__name__)
12
- app.config.from_object('config.ProductionConfig')
13
-
14
- # Use Flask-SQLAlchemy for ORM
15
- # Use Flask-Migrate for migrations
16
- # Use Flask-Login for auth
17
- ```
18
-
19
- ## Quality Gates
20
-
21
- ```bash
22
- black .
23
- ruff check .
24
- pytest --cov=app
25
- ```
26
-
27
- ## Best Practices
28
-
29
- ✅ Use application factory pattern
30
- ✅ Enable CORS properly
31
- ✅ Use blueprints for organization
32
- ✅ Implement error handlers
33
-
34
- ❌ Don't use `debug=True` in production
35
- ❌ Don't store secrets in code
36
-
37
- <!-- FLASK:END -->
38
-
1
+ <!-- FLASK:START -->
2
+ # Flask Framework Rules
3
+
4
+ **Language**: Python
5
+ **Version**: Flask 3.0+
6
+
7
+ ## Setup
8
+
9
+ ```python
10
+ from flask import Flask
11
+ app = Flask(__name__)
12
+ app.config.from_object('config.ProductionConfig')
13
+
14
+ # Use Flask-SQLAlchemy for ORM
15
+ # Use Flask-Migrate for migrations
16
+ # Use Flask-Login for auth
17
+ ```
18
+
19
+ ## Quality Gates
20
+
21
+ ```bash
22
+ black .
23
+ ruff check .
24
+ pytest --cov=app
25
+ ```
26
+
27
+ ## Best Practices
28
+
29
+ ✅ Use application factory pattern
30
+ ✅ Enable CORS properly
31
+ ✅ Use blueprints for organization
32
+ ✅ Implement error handlers
33
+
34
+ ❌ Don't use `debug=True` in production
35
+ ❌ Don't store secrets in code
36
+
37
+ <!-- FLASK:END -->
38
+