@hivehub/rulebook 5.3.3 → 5.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 (492) hide show
  1. package/.claude/commands/analysis.md +35 -35
  2. package/.claude/commands/continue.md +33 -33
  3. package/.claude/commands/ralph-config.md +112 -112
  4. package/.claude/commands/ralph-history.md +110 -110
  5. package/.claude/commands/ralph-init.md +72 -72
  6. package/.claude/commands/ralph-pause-resume.md +105 -105
  7. package/.claude/commands/ralph-run.md +101 -101
  8. package/.claude/commands/ralph-status.md +76 -76
  9. package/.claude/commands/rulebook-decision-create.md +55 -55
  10. package/.claude/commands/rulebook-decision-list.md +15 -15
  11. package/.claude/commands/rulebook-knowledge-add.md +41 -41
  12. package/.claude/commands/rulebook-knowledge-list.md +15 -15
  13. package/.claude/commands/rulebook-learn-capture.md +48 -48
  14. package/.claude/commands/rulebook-learn-list.md +13 -13
  15. package/.claude/commands/rulebook-memory-save.md +48 -48
  16. package/.claude/commands/rulebook-memory-search.md +47 -47
  17. package/.claude/commands/rulebook-task-apply.md +67 -67
  18. package/.claude/commands/rulebook-task-archive.md +94 -94
  19. package/.claude/commands/rulebook-task-create.md +93 -93
  20. package/.claude/commands/rulebook-task-list.md +42 -42
  21. package/.claude/commands/rulebook-task-show.md +52 -52
  22. package/.claude/commands/rulebook-task-validate.md +53 -53
  23. package/.claude-plugin/marketplace.json +28 -28
  24. package/.claude-plugin/plugin.json +8 -8
  25. package/LICENSE +191 -191
  26. package/README.md +42 -3
  27. package/dist/cli/commands/compress.d.ts +18 -0
  28. package/dist/cli/commands/compress.d.ts.map +1 -0
  29. package/dist/cli/commands/compress.js +100 -0
  30. package/dist/cli/commands/compress.js.map +1 -0
  31. package/dist/cli/commands/index.d.ts +1 -0
  32. package/dist/cli/commands/index.d.ts.map +1 -1
  33. package/dist/cli/commands/index.js +1 -0
  34. package/dist/cli/commands/index.js.map +1 -1
  35. package/dist/cli/commands/init.d.ts.map +1 -1
  36. package/dist/cli/commands/init.js +2 -0
  37. package/dist/cli/commands/init.js.map +1 -1
  38. package/dist/cli/commands/update.d.ts.map +1 -1
  39. package/dist/cli/commands/update.js +2 -0
  40. package/dist/cli/commands/update.js.map +1 -1
  41. package/dist/core/claude-settings-manager.d.ts +7 -0
  42. package/dist/core/claude-settings-manager.d.ts.map +1 -1
  43. package/dist/core/claude-settings-manager.js +31 -14
  44. package/dist/core/claude-settings-manager.js.map +1 -1
  45. package/dist/core/compress/compressor.d.ts +60 -0
  46. package/dist/core/compress/compressor.d.ts.map +1 -0
  47. package/dist/core/compress/compressor.js +232 -0
  48. package/dist/core/compress/compressor.js.map +1 -0
  49. package/dist/core/compress/discover.d.ts +19 -0
  50. package/dist/core/compress/discover.d.ts.map +1 -0
  51. package/dist/core/compress/discover.js +100 -0
  52. package/dist/core/compress/discover.js.map +1 -0
  53. package/dist/core/compress/validator.d.ts +47 -0
  54. package/dist/core/compress/validator.d.ts.map +1 -0
  55. package/dist/core/compress/validator.js +131 -0
  56. package/dist/core/compress/validator.js.map +1 -0
  57. package/dist/core/doctor.d.ts.map +1 -1
  58. package/dist/core/doctor.js +66 -0
  59. package/dist/core/doctor.js.map +1 -1
  60. package/dist/core/generator.d.ts +16 -0
  61. package/dist/core/generator.d.ts.map +1 -1
  62. package/dist/core/generator.js +36 -11
  63. package/dist/core/generator.js.map +1 -1
  64. package/dist/hooks/safe-flag-io.d.ts +77 -0
  65. package/dist/hooks/safe-flag-io.d.ts.map +1 -0
  66. package/dist/hooks/safe-flag-io.js +169 -0
  67. package/dist/hooks/safe-flag-io.js.map +1 -0
  68. package/dist/index.js +11 -1
  69. package/dist/index.js.map +1 -1
  70. package/dist/mcp/rulebook-server.d.ts.map +1 -1
  71. package/dist/mcp/rulebook-server.js +236 -0
  72. package/dist/mcp/rulebook-server.js.map +1 -1
  73. package/dist/types.d.ts +4 -0
  74. package/dist/types.d.ts.map +1 -1
  75. package/package.json +23 -21
  76. package/templates/agents/accessibility-reviewer.md +43 -43
  77. package/templates/agents/api-designer.md +42 -42
  78. package/templates/agents/architect.md +51 -51
  79. package/templates/agents/build-engineer.md +36 -36
  80. package/templates/agents/code-reviewer.md +47 -47
  81. package/templates/agents/compiler/codegen-debugger.md +34 -34
  82. package/templates/agents/compiler/stdlib-engineer.md +28 -28
  83. package/templates/agents/compiler/test-coverage-guardian.md +31 -31
  84. package/templates/agents/context-intelligence.md +52 -52
  85. package/templates/agents/database-architect.md +41 -41
  86. package/templates/agents/devops-engineer.md +42 -42
  87. package/templates/agents/docs-writer.md +38 -38
  88. package/templates/agents/game-engine/cpp-core-expert.md +35 -35
  89. package/templates/agents/game-engine/render-engineer.md +22 -22
  90. package/templates/agents/game-engine/shader-engineer.md +38 -38
  91. package/templates/agents/game-engine/systems-integration.md +43 -43
  92. package/templates/agents/generic/code-reviewer.md +41 -41
  93. package/templates/agents/generic/docs-writer.md +25 -25
  94. package/templates/agents/generic/project-manager.md +36 -36
  95. package/templates/agents/generic/researcher.md +34 -34
  96. package/templates/agents/generic/test-engineer.md +41 -41
  97. package/templates/agents/i18n-engineer.md +42 -42
  98. package/templates/agents/implementer.md +42 -42
  99. package/templates/agents/migration-engineer.md +42 -42
  100. package/templates/agents/mobile/platform-specialist.md +22 -22
  101. package/templates/agents/mobile/ui-engineer.md +22 -22
  102. package/templates/agents/performance-engineer.md +49 -49
  103. package/templates/agents/refactoring-agent.md +41 -41
  104. package/templates/agents/researcher.md +38 -38
  105. package/templates/agents/security-reviewer.md +40 -40
  106. package/templates/agents/team-lead.md +37 -37
  107. package/templates/agents/tester.md +48 -48
  108. package/templates/agents/ux-reviewer.md +43 -43
  109. package/templates/agents/web-app/api-designer.md +22 -22
  110. package/templates/agents/web-app/backend-engineer.md +30 -30
  111. package/templates/agents/web-app/database-engineer.md +22 -22
  112. package/templates/agents/web-app/frontend-engineer.md +29 -29
  113. package/templates/agents/web-app/security-reviewer.md +32 -32
  114. package/templates/ci/rulebook-review.yml +26 -26
  115. package/templates/cli/AIDER.md +49 -49
  116. package/templates/cli/AMAZON_Q.md +25 -25
  117. package/templates/cli/AUGGIE.md +32 -32
  118. package/templates/cli/CLAUDE.md +117 -117
  119. package/templates/cli/CLINE.md +99 -99
  120. package/templates/cli/CODEBUDDY.md +20 -20
  121. package/templates/cli/CODEIUM.md +20 -20
  122. package/templates/cli/CODEX.md +21 -21
  123. package/templates/cli/CONTINUE.md +34 -34
  124. package/templates/cli/CURSOR_CLI.md +62 -62
  125. package/templates/cli/FACTORY.md +18 -18
  126. package/templates/cli/GEMINI.md +35 -35
  127. package/templates/cli/KILOCODE.md +18 -18
  128. package/templates/cli/OPENCODE.md +18 -18
  129. package/templates/cli/_GENERIC_TEMPLATE.md +29 -29
  130. package/templates/cli/gemini-extension.json +77 -77
  131. package/templates/commands/rulebook-decision-create.md +55 -55
  132. package/templates/commands/rulebook-decision-list.md +15 -15
  133. package/templates/commands/rulebook-knowledge-add.md +41 -41
  134. package/templates/commands/rulebook-knowledge-list.md +15 -15
  135. package/templates/commands/rulebook-learn-capture.md +48 -48
  136. package/templates/commands/rulebook-learn-list.md +13 -13
  137. package/templates/commands/rulebook-memory-save.md +48 -48
  138. package/templates/commands/rulebook-memory-search.md +47 -47
  139. package/templates/commands/rulebook-task-apply.md +67 -67
  140. package/templates/commands/rulebook-task-archive.md +94 -94
  141. package/templates/commands/rulebook-task-create.md +93 -93
  142. package/templates/commands/rulebook-task-list.md +42 -42
  143. package/templates/commands/rulebook-task-show.md +52 -52
  144. package/templates/commands/rulebook-task-validate.md +53 -53
  145. package/templates/compact-context/_default.md +23 -23
  146. package/templates/compact-context/cpp.md +26 -26
  147. package/templates/compact-context/go.md +26 -26
  148. package/templates/compact-context/python.md +26 -26
  149. package/templates/compact-context/rust.md +28 -28
  150. package/templates/compact-context/typescript.md +29 -29
  151. package/templates/core/AGENTS_OVERRIDE.md +16 -16
  152. package/templates/core/AGENT_AUTOMATION.md +296 -296
  153. package/templates/core/CLAUDE_MD_v2.md +71 -71
  154. package/templates/core/DAG.md +304 -304
  155. package/templates/core/DECISIONS.md +38 -38
  156. package/templates/core/DOCUMENTATION_RULES.md +36 -36
  157. package/templates/core/KNOWLEDGE.md +49 -49
  158. package/templates/core/MULTI_AGENT.md +74 -74
  159. package/templates/core/PLANS.md +28 -28
  160. package/templates/core/QUALITY_ENFORCEMENT.md +68 -68
  161. package/templates/core/RALPH.md +471 -471
  162. package/templates/core/RULEBOOK.md +1947 -1947
  163. package/templates/core/TIER1_PROHIBITIONS.md +154 -154
  164. package/templates/core/TOKEN_OPTIMIZATION.md +49 -49
  165. package/templates/core/WORKSPACE.md +69 -69
  166. package/templates/frameworks/ANGULAR.md +36 -36
  167. package/templates/frameworks/DJANGO.md +83 -83
  168. package/templates/frameworks/ELECTRON.md +147 -147
  169. package/templates/frameworks/FLASK.md +38 -38
  170. package/templates/frameworks/FLUTTER.md +55 -55
  171. package/templates/frameworks/JQUERY.md +32 -32
  172. package/templates/frameworks/LARAVEL.md +38 -38
  173. package/templates/frameworks/NESTJS.md +43 -43
  174. package/templates/frameworks/NEXTJS.md +127 -127
  175. package/templates/frameworks/NUXT.md +40 -40
  176. package/templates/frameworks/RAILS.md +66 -66
  177. package/templates/frameworks/REACT.md +38 -38
  178. package/templates/frameworks/REACT_NATIVE.md +47 -47
  179. package/templates/frameworks/SPRING.md +39 -39
  180. package/templates/frameworks/SYMFONY.md +36 -36
  181. package/templates/frameworks/VUE.md +36 -36
  182. package/templates/frameworks/ZEND.md +35 -35
  183. package/templates/git/CI_CD_PATTERNS.md +661 -661
  184. package/templates/git/GITHUB_ACTIONS.md +728 -728
  185. package/templates/git/GITLAB_CI.md +730 -730
  186. package/templates/git/GIT_WORKFLOW.md +1192 -1192
  187. package/templates/git/SECRETS_MANAGEMENT.md +585 -585
  188. package/templates/hooks/COMMIT_MSG.md +530 -530
  189. package/templates/hooks/POST_CHECKOUT.md +546 -546
  190. package/templates/hooks/PREPARE_COMMIT_MSG.md +619 -619
  191. package/templates/hooks/PRE_COMMIT.md +414 -414
  192. package/templates/hooks/PRE_PUSH.md +601 -601
  193. package/templates/hooks/check-context-and-handoff.ps1 +58 -58
  194. package/templates/hooks/check-context-and-handoff.sh +76 -76
  195. package/templates/hooks/enforce-team-for-background-agents.ps1 +63 -63
  196. package/templates/hooks/enforce-team-for-background-agents.sh +55 -55
  197. package/templates/hooks/on-compact-reinject.sh +34 -34
  198. package/templates/hooks/resume-from-handoff.ps1 +40 -40
  199. package/templates/hooks/resume-from-handoff.sh +61 -61
  200. package/templates/hooks/terse-activate.ps1 +143 -0
  201. package/templates/hooks/terse-activate.sh +197 -0
  202. package/templates/hooks/terse-mode-tracker.ps1 +153 -0
  203. package/templates/hooks/terse-mode-tracker.sh +187 -0
  204. package/templates/ides/CONTINUE_RULES.md +16 -16
  205. package/templates/ides/COPILOT.md +37 -37
  206. package/templates/ides/COPILOT_INSTRUCTIONS.md +23 -23
  207. package/templates/ides/CURSOR.md +43 -43
  208. package/templates/ides/GEMINI_RULES.md +17 -17
  209. package/templates/ides/JETBRAINS_AI.md +35 -35
  210. package/templates/ides/REPLIT.md +36 -36
  211. package/templates/ides/TABNINE.md +29 -29
  212. package/templates/ides/VSCODE.md +40 -40
  213. package/templates/ides/WINDSURF.md +36 -36
  214. package/templates/ides/WINDSURF_RULES.md +14 -14
  215. package/templates/ides/ZED.md +32 -32
  216. package/templates/ides/cursor-mdc/go.mdc +24 -24
  217. package/templates/ides/cursor-mdc/python.mdc +24 -24
  218. package/templates/ides/cursor-mdc/quality.mdc +25 -25
  219. package/templates/ides/cursor-mdc/ralph.mdc +39 -39
  220. package/templates/ides/cursor-mdc/rulebook.mdc +38 -38
  221. package/templates/ides/cursor-mdc/rust.mdc +24 -24
  222. package/templates/ides/cursor-mdc/typescript.mdc +25 -25
  223. package/templates/languages/C.md +333 -333
  224. package/templates/languages/CPP.md +743 -743
  225. package/templates/languages/CSHARP.md +417 -417
  226. package/templates/languages/ELIXIR.md +454 -454
  227. package/templates/languages/ERLANG.md +361 -361
  228. package/templates/languages/GO.md +645 -645
  229. package/templates/languages/HASKELL.md +177 -177
  230. package/templates/languages/JAVA.md +607 -607
  231. package/templates/languages/JAVASCRIPT.md +631 -631
  232. package/templates/languages/JULIA.md +97 -97
  233. package/templates/languages/KOTLIN.md +511 -511
  234. package/templates/languages/LISP.md +100 -100
  235. package/templates/languages/LUA.md +74 -74
  236. package/templates/languages/OBJECTIVEC.md +90 -90
  237. package/templates/languages/PHP.md +416 -416
  238. package/templates/languages/PYTHON.md +682 -682
  239. package/templates/languages/RUBY.md +421 -421
  240. package/templates/languages/RUST.md +477 -477
  241. package/templates/languages/SAS.md +73 -73
  242. package/templates/languages/SCALA.md +348 -348
  243. package/templates/languages/SOLIDITY.md +580 -580
  244. package/templates/languages/SQL.md +137 -137
  245. package/templates/languages/SWIFT.md +466 -466
  246. package/templates/languages/TYPESCRIPT.md +591 -591
  247. package/templates/languages/ZIG.md +265 -265
  248. package/templates/modules/ATLASSIAN.md +255 -255
  249. package/templates/modules/CONTEXT7.md +54 -54
  250. package/templates/modules/FIGMA.md +267 -267
  251. package/templates/modules/GITHUB_MCP.md +64 -64
  252. package/templates/modules/GRAFANA.md +328 -328
  253. package/templates/modules/MEMORY.md +126 -126
  254. package/templates/modules/NOTION.md +247 -247
  255. package/templates/modules/PLAYWRIGHT.md +90 -90
  256. package/templates/modules/RULEBOOK_MCP.md +208 -156
  257. package/templates/modules/SERENA.md +337 -337
  258. package/templates/modules/SUPABASE.md +223 -223
  259. package/templates/modules/SYNAP.md +69 -69
  260. package/templates/modules/VECTORIZER.md +63 -63
  261. package/templates/modules/sequential-thinking.md +42 -42
  262. package/templates/ralph/ralph-history.bat +4 -4
  263. package/templates/ralph/ralph-history.sh +5 -5
  264. package/templates/ralph/ralph-init.bat +5 -5
  265. package/templates/ralph/ralph-init.sh +5 -5
  266. package/templates/ralph/ralph-pause.bat +5 -5
  267. package/templates/ralph/ralph-pause.sh +5 -5
  268. package/templates/ralph/ralph-run.bat +5 -5
  269. package/templates/ralph/ralph-run.sh +5 -5
  270. package/templates/ralph/ralph-status.bat +4 -4
  271. package/templates/ralph/ralph-status.sh +5 -5
  272. package/templates/rules/consult-analysis-before-implementing.md +23 -23
  273. package/templates/rules/cpp.md +46 -46
  274. package/templates/rules/csharp.md +44 -44
  275. package/templates/rules/diagnostic-first.md +39 -39
  276. package/templates/rules/fail-twice-escalate.md +46 -46
  277. package/templates/rules/follow-task-sequence.md +36 -36
  278. package/templates/rules/git-safety.md +29 -29
  279. package/templates/rules/go.md +40 -40
  280. package/templates/rules/incremental-implementation.md +56 -56
  281. package/templates/rules/incremental-tests.md +29 -29
  282. package/templates/rules/java.md +43 -43
  283. package/templates/rules/javascript.md +39 -39
  284. package/templates/rules/knowledge-base-usage.md +41 -41
  285. package/templates/rules/multi-agent-teams.md +75 -75
  286. package/templates/rules/no-deferred.md +31 -31
  287. package/templates/rules/no-shortcuts.md +30 -30
  288. package/templates/rules/python.md +43 -43
  289. package/templates/rules/research-first.md +30 -30
  290. package/templates/rules/respect-handoff-trigger.md +41 -41
  291. package/templates/rules/rust.md +40 -40
  292. package/templates/rules/sequential-editing.md +21 -21
  293. package/templates/rules/session-workflow.md +24 -24
  294. package/templates/rules/task-decomposition.md +32 -32
  295. package/templates/rules/typescript.md +40 -40
  296. package/templates/services/AZURE_BLOB.md +184 -184
  297. package/templates/services/CASSANDRA.md +239 -239
  298. package/templates/services/DATADOG.md +26 -26
  299. package/templates/services/DOCKER.md +124 -124
  300. package/templates/services/DOCKER_COMPOSE.md +168 -168
  301. package/templates/services/DYNAMODB.md +308 -308
  302. package/templates/services/ELASTICSEARCH.md +347 -347
  303. package/templates/services/GCS.md +178 -178
  304. package/templates/services/HELM.md +194 -194
  305. package/templates/services/INFLUXDB.md +265 -265
  306. package/templates/services/KAFKA.md +341 -341
  307. package/templates/services/KUBERNETES.md +208 -208
  308. package/templates/services/MARIADB.md +183 -183
  309. package/templates/services/MEMCACHED.md +242 -242
  310. package/templates/services/MINIO.md +201 -201
  311. package/templates/services/MONGODB.md +268 -268
  312. package/templates/services/MYSQL.md +358 -358
  313. package/templates/services/NEO4J.md +247 -247
  314. package/templates/services/OPENTELEMETRY.md +25 -25
  315. package/templates/services/ORACLE.md +290 -290
  316. package/templates/services/PINO.md +24 -24
  317. package/templates/services/POSTGRESQL.md +326 -326
  318. package/templates/services/PROMETHEUS.md +33 -33
  319. package/templates/services/RABBITMQ.md +286 -286
  320. package/templates/services/REDIS.md +292 -292
  321. package/templates/services/S3.md +298 -298
  322. package/templates/services/SENTRY.md +23 -23
  323. package/templates/services/SQLITE.md +294 -294
  324. package/templates/services/SQLSERVER.md +294 -294
  325. package/templates/services/WINSTON.md +30 -30
  326. package/templates/skills/cli/aider/SKILL.md +59 -59
  327. package/templates/skills/cli/amazon-q/SKILL.md +35 -35
  328. package/templates/skills/cli/auggie/SKILL.md +42 -42
  329. package/templates/skills/cli/claude/SKILL.md +42 -42
  330. package/templates/skills/cli/cline/SKILL.md +42 -42
  331. package/templates/skills/cli/codebuddy/SKILL.md +30 -30
  332. package/templates/skills/cli/codeium/SKILL.md +30 -30
  333. package/templates/skills/cli/codex/SKILL.md +31 -31
  334. package/templates/skills/cli/continue/SKILL.md +44 -44
  335. package/templates/skills/cli/cursor-cli/SKILL.md +38 -38
  336. package/templates/skills/cli/factory/SKILL.md +28 -28
  337. package/templates/skills/cli/gemini/SKILL.md +45 -45
  338. package/templates/skills/cli/kilocode/SKILL.md +28 -28
  339. package/templates/skills/cli/opencode/SKILL.md +28 -28
  340. package/templates/skills/core/agent-automation/SKILL.md +194 -194
  341. package/templates/skills/core/dag/SKILL.md +314 -314
  342. package/templates/skills/core/documentation-rules/SKILL.md +46 -46
  343. package/templates/skills/core/quality-enforcement/SKILL.md +78 -78
  344. package/templates/skills/core/rulebook/SKILL.md +176 -176
  345. package/templates/skills/core/rulebook-terse/SKILL.md +116 -0
  346. package/templates/skills/core/rulebook-terse-commit/SKILL.md +96 -0
  347. package/templates/skills/core/rulebook-terse-review/SKILL.md +112 -0
  348. package/templates/skills/dev/accessibility/SKILL.md +17 -17
  349. package/templates/skills/dev/analysis/SKILL.md +19 -19
  350. package/templates/skills/dev/api-design/SKILL.md +15 -15
  351. package/templates/skills/dev/architect/SKILL.md +17 -17
  352. package/templates/skills/dev/build-fix/SKILL.md +17 -17
  353. package/templates/skills/dev/db-design/SKILL.md +15 -15
  354. package/templates/skills/dev/debug/SKILL.md +16 -16
  355. package/templates/skills/dev/deploy/SKILL.md +17 -17
  356. package/templates/skills/dev/docs/SKILL.md +17 -17
  357. package/templates/skills/dev/handoff/SKILL.md +27 -27
  358. package/templates/skills/dev/migrate/SKILL.md +15 -15
  359. package/templates/skills/dev/perf/SKILL.md +17 -17
  360. package/templates/skills/dev/refactor/SKILL.md +17 -17
  361. package/templates/skills/dev/research/SKILL.md +14 -14
  362. package/templates/skills/dev/review/SKILL.md +18 -18
  363. package/templates/skills/dev/security-audit/SKILL.md +17 -17
  364. package/templates/skills/frameworks/angular/SKILL.md +46 -46
  365. package/templates/skills/frameworks/django/SKILL.md +93 -93
  366. package/templates/skills/frameworks/electron/SKILL.md +157 -157
  367. package/templates/skills/frameworks/flask/SKILL.md +48 -48
  368. package/templates/skills/frameworks/flutter/SKILL.md +65 -65
  369. package/templates/skills/frameworks/jquery/SKILL.md +42 -42
  370. package/templates/skills/frameworks/laravel/SKILL.md +48 -48
  371. package/templates/skills/frameworks/nestjs/SKILL.md +53 -53
  372. package/templates/skills/frameworks/nextjs/SKILL.md +137 -137
  373. package/templates/skills/frameworks/nuxt/SKILL.md +50 -50
  374. package/templates/skills/frameworks/rails/SKILL.md +76 -76
  375. package/templates/skills/frameworks/react/SKILL.md +48 -48
  376. package/templates/skills/frameworks/react-native/SKILL.md +57 -57
  377. package/templates/skills/frameworks/spring/SKILL.md +49 -49
  378. package/templates/skills/frameworks/symfony/SKILL.md +46 -46
  379. package/templates/skills/frameworks/vue/SKILL.md +46 -46
  380. package/templates/skills/frameworks/zend/SKILL.md +45 -45
  381. package/templates/skills/ides/copilot/SKILL.md +47 -47
  382. package/templates/skills/ides/cursor/SKILL.md +53 -53
  383. package/templates/skills/ides/jetbrains-ai/SKILL.md +45 -45
  384. package/templates/skills/ides/replit/SKILL.md +46 -46
  385. package/templates/skills/ides/tabnine/SKILL.md +39 -39
  386. package/templates/skills/ides/vscode/SKILL.md +50 -50
  387. package/templates/skills/ides/windsurf/SKILL.md +46 -46
  388. package/templates/skills/ides/zed/SKILL.md +42 -42
  389. package/templates/skills/languages/c/SKILL.md +343 -343
  390. package/templates/skills/languages/cpp/SKILL.md +753 -753
  391. package/templates/skills/languages/csharp/SKILL.md +427 -427
  392. package/templates/skills/languages/elixir/SKILL.md +464 -464
  393. package/templates/skills/languages/erlang/SKILL.md +371 -371
  394. package/templates/skills/languages/go/SKILL.md +655 -655
  395. package/templates/skills/languages/haskell/SKILL.md +187 -187
  396. package/templates/skills/languages/java/SKILL.md +617 -617
  397. package/templates/skills/languages/javascript/SKILL.md +641 -641
  398. package/templates/skills/languages/julia/SKILL.md +107 -107
  399. package/templates/skills/languages/kotlin/SKILL.md +521 -521
  400. package/templates/skills/languages/lisp/SKILL.md +110 -110
  401. package/templates/skills/languages/lua/SKILL.md +84 -84
  402. package/templates/skills/languages/objectivec/SKILL.md +100 -100
  403. package/templates/skills/languages/php/SKILL.md +426 -426
  404. package/templates/skills/languages/python/SKILL.md +692 -692
  405. package/templates/skills/languages/ruby/SKILL.md +431 -431
  406. package/templates/skills/languages/rust/SKILL.md +487 -487
  407. package/templates/skills/languages/sas/SKILL.md +83 -83
  408. package/templates/skills/languages/scala/SKILL.md +358 -358
  409. package/templates/skills/languages/solidity/SKILL.md +590 -590
  410. package/templates/skills/languages/sql/SKILL.md +147 -147
  411. package/templates/skills/languages/swift/SKILL.md +476 -476
  412. package/templates/skills/languages/typescript/SKILL.md +302 -302
  413. package/templates/skills/languages/zig/SKILL.md +275 -275
  414. package/templates/skills/modules/atlassian/SKILL.md +265 -265
  415. package/templates/skills/modules/context7/SKILL.md +64 -64
  416. package/templates/skills/modules/figma/SKILL.md +277 -277
  417. package/templates/skills/modules/github-mcp/SKILL.md +74 -74
  418. package/templates/skills/modules/grafana/SKILL.md +338 -338
  419. package/templates/skills/modules/memory/SKILL.md +73 -73
  420. package/templates/skills/modules/notion/SKILL.md +257 -257
  421. package/templates/skills/modules/playwright/SKILL.md +100 -100
  422. package/templates/skills/modules/rulebook-mcp/SKILL.md +166 -166
  423. package/templates/skills/modules/serena/SKILL.md +347 -347
  424. package/templates/skills/modules/supabase/SKILL.md +233 -233
  425. package/templates/skills/modules/synap/SKILL.md +79 -79
  426. package/templates/skills/modules/vectorizer/SKILL.md +73 -73
  427. package/templates/skills/services/azure-blob/SKILL.md +194 -194
  428. package/templates/skills/services/cassandra/SKILL.md +249 -249
  429. package/templates/skills/services/dynamodb/SKILL.md +318 -318
  430. package/templates/skills/services/elasticsearch/SKILL.md +357 -357
  431. package/templates/skills/services/gcs/SKILL.md +188 -188
  432. package/templates/skills/services/influxdb/SKILL.md +275 -275
  433. package/templates/skills/services/kafka/SKILL.md +351 -351
  434. package/templates/skills/services/mariadb/SKILL.md +193 -193
  435. package/templates/skills/services/memcached/SKILL.md +252 -252
  436. package/templates/skills/services/minio/SKILL.md +211 -211
  437. package/templates/skills/services/mongodb/SKILL.md +278 -278
  438. package/templates/skills/services/mysql/SKILL.md +368 -368
  439. package/templates/skills/services/neo4j/SKILL.md +257 -257
  440. package/templates/skills/services/oracle/SKILL.md +300 -300
  441. package/templates/skills/services/postgresql/SKILL.md +336 -336
  442. package/templates/skills/services/rabbitmq/SKILL.md +296 -296
  443. package/templates/skills/services/redis/SKILL.md +302 -302
  444. package/templates/skills/services/s3/SKILL.md +308 -308
  445. package/templates/skills/services/sqlite/SKILL.md +304 -304
  446. package/templates/skills/services/sqlserver/SKILL.md +304 -304
  447. package/templates/skills/workflows/ralph/SKILL.md +309 -309
  448. package/templates/skills/workflows/ralph/install.sh +87 -87
  449. package/templates/skills/workflows/ralph/manifest.json +158 -158
  450. package/templates/workflows/codespell.yml +31 -31
  451. package/templates/workflows/cpp-lint.yml +47 -47
  452. package/templates/workflows/cpp-publish.yml +119 -119
  453. package/templates/workflows/cpp-test.yml +77 -77
  454. package/templates/workflows/dotnet-lint.yml +29 -29
  455. package/templates/workflows/dotnet-publish.yml +40 -40
  456. package/templates/workflows/dotnet-test.yml +41 -41
  457. package/templates/workflows/elixir-lint.yml +45 -45
  458. package/templates/workflows/elixir-publish.yml +49 -49
  459. package/templates/workflows/elixir-test.yml +54 -54
  460. package/templates/workflows/erlang-lint.yml +47 -47
  461. package/templates/workflows/erlang-test.yml +62 -62
  462. package/templates/workflows/go-lint.yml +39 -39
  463. package/templates/workflows/go-publish.yml +95 -95
  464. package/templates/workflows/go-test.yml +59 -59
  465. package/templates/workflows/java-lint.yml +60 -60
  466. package/templates/workflows/java-publish.yml +120 -120
  467. package/templates/workflows/java-test.yml +85 -85
  468. package/templates/workflows/kotlin-lint.yml +34 -34
  469. package/templates/workflows/kotlin-publish.yml +56 -56
  470. package/templates/workflows/kotlin-test.yml +48 -48
  471. package/templates/workflows/php-lint.yml +39 -39
  472. package/templates/workflows/php-publish.yml +50 -50
  473. package/templates/workflows/php-test.yml +54 -54
  474. package/templates/workflows/python-lint.yml +47 -47
  475. package/templates/workflows/python-publish.yml +91 -91
  476. package/templates/workflows/python-test.yml +59 -59
  477. package/templates/workflows/rust-lint.yml +54 -54
  478. package/templates/workflows/rust-publish.yml +66 -66
  479. package/templates/workflows/rust-test.yml +75 -75
  480. package/templates/workflows/solidity-lint.yml +41 -41
  481. package/templates/workflows/solidity-test.yml +47 -47
  482. package/templates/workflows/swift-lint.yml +32 -32
  483. package/templates/workflows/swift-publish.yml +58 -58
  484. package/templates/workflows/swift-test.yml +44 -44
  485. package/templates/workflows/typescript-publish.yml +60 -60
  486. package/templates/workflows/typescript-test.yml +73 -73
  487. package/templates/workflows/zig-lint.yml +27 -27
  488. package/templates/workflows/zig-test.yml +40 -40
  489. package/dist/cli/commands.d.ts +0 -225
  490. package/dist/cli/commands.d.ts.map +0 -1
  491. package/dist/cli/commands.js +0 -3984
  492. package/dist/cli/commands.js.map +0 -1
@@ -1,338 +1,338 @@
1
- ---
2
- name: "Grafana"
3
- description: "Use MCP Grafana for metrics visualization, alerting, and observability dashboards."
4
- version: "1.0.0"
5
- category: "modules"
6
- author: "Rulebook"
7
- tags: ["modules", "mcp"]
8
- dependencies: []
9
- conflicts: []
10
- ---
11
- <!-- GRAFANA:START -->
12
- # Grafana MCP Instructions
13
-
14
- **CRITICAL**: Use MCP Grafana for metrics visualization, alerting, and observability dashboards.
15
-
16
- ## Core Operations
17
-
18
- ### Dashboard Management
19
- ```typescript
20
- // Get dashboard
21
- grafana.dashboards.getDashboardByUid({ uid: 'dashboard-uid' })
22
-
23
- // Create dashboard
24
- grafana.dashboards.postDashboard({
25
- dashboard: {
26
- title: 'Application Metrics',
27
- tags: ['production', 'api'],
28
- timezone: 'browser',
29
- panels: [
30
- {
31
- title: 'Request Rate',
32
- type: 'graph',
33
- targets: [{ expr: 'rate(http_requests_total[5m])' }]
34
- }
35
- ]
36
- },
37
- overwrite: false
38
- })
39
-
40
- // Update dashboard
41
- grafana.dashboards.postDashboard({
42
- dashboard: modifiedDashboard,
43
- overwrite: true
44
- })
45
-
46
- // Delete dashboard
47
- grafana.dashboards.deleteDashboardByUid({ uid: 'dashboard-uid' })
48
- ```
49
-
50
- ### Data Sources
51
- ```typescript
52
- // Get data sources
53
- grafana.datasources.getDataSources()
54
-
55
- // Add data source
56
- grafana.datasources.addDataSource({
57
- name: 'Prometheus',
58
- type: 'prometheus',
59
- url: 'http://prometheus:9090',
60
- access: 'proxy',
61
- isDefault: true
62
- })
63
-
64
- // Query data source
65
- grafana.datasources.queryDataSource({
66
- datasourceId: 1,
67
- from: Date.now() - 3600000, // 1 hour ago
68
- to: Date.now(),
69
- queries: [
70
- { expr: 'up', refId: 'A' }
71
- ]
72
- })
73
- ```
74
-
75
- ### Alerts
76
- ```typescript
77
- // Get alerts
78
- grafana.alerting.getAlerts({ state: 'alerting' })
79
-
80
- // Create alert rule
81
- grafana.alerting.postAlertRule({
82
- title: 'High Error Rate',
83
- condition: 'A',
84
- data: [
85
- {
86
- refId: 'A',
87
- queryType: '',
88
- relativeTimeRange: { from: 600, to: 0 },
89
- datasourceUid: 'prometheus-uid',
90
- model: {
91
- expr: 'rate(http_errors_total[5m]) > 0.05'
92
- }
93
- }
94
- ],
95
- noDataState: 'NoData',
96
- execErrState: 'Alerting',
97
- for: '5m',
98
- annotations: {
99
- description: 'Error rate exceeded 5%'
100
- },
101
- labels: { severity: 'high' }
102
- })
103
-
104
- // Pause alert
105
- grafana.alerting.pauseAlertRule({ uid: 'alert-uid', paused: true })
106
- ```
107
-
108
- ### Annotations
109
- ```typescript
110
- // Create annotation
111
- grafana.annotations.postAnnotation({
112
- dashboardUid: 'dashboard-uid',
113
- time: Date.now(),
114
- timeEnd: Date.now(),
115
- tags: ['deployment'],
116
- text: 'Deployed version 1.2.0'
117
- })
118
-
119
- // Get annotations
120
- grafana.annotations.getAnnotations({
121
- from: Date.now() - 86400000, // Last 24h
122
- to: Date.now(),
123
- tags: ['deployment']
124
- })
125
- ```
126
-
127
- ### Organizations & Users
128
- ```typescript
129
- // Get organization
130
- grafana.orgs.getOrgByName({ orgName: 'Main Org' })
131
-
132
- // Add user
133
- grafana.users.createUser({
134
- email: 'user@example.com',
135
- login: 'username',
136
- password: 'secure-password',
137
- name: 'User Name'
138
- })
139
-
140
- // Update user permissions
141
- grafana.org.updateOrgUser({
142
- userId: 123,
143
- role: 'Editor' // Viewer, Editor, Admin
144
- })
145
- ```
146
-
147
- ## Common Patterns
148
-
149
- ### Deployment Tracking
150
- ```typescript
151
- // Mark deployment on dashboard
152
- await grafana.annotations.postAnnotation({
153
- time: Date.now(),
154
- tags: ['deployment', 'production'],
155
- text: `Deployed ${process.env.GIT_SHA}`,
156
- dashboardUid: 'main-dashboard'
157
- })
158
-
159
- // Create snapshot after deployment
160
- const snapshot = await grafana.snapshots.createDashboardSnapshot({
161
- dashboard: dashboard,
162
- name: `Production Metrics - ${new Date().toISOString()}`,
163
- expires: 86400 // 24 hours
164
- })
165
- ```
166
-
167
- ### Automated Dashboard Creation
168
- ```typescript
169
- // Create dashboard for new service
170
- async function createServiceDashboard(serviceName) {
171
- const dashboard = {
172
- title: `${serviceName} Metrics`,
173
- tags: ['microservices', serviceName],
174
- panels: [
175
- {
176
- title: 'Request Rate',
177
- type: 'graph',
178
- targets: [{
179
- expr: `rate(http_requests_total{service="${serviceName}"}[5m])`
180
- }]
181
- },
182
- {
183
- title: 'Error Rate',
184
- type: 'graph',
185
- targets: [{
186
- expr: `rate(http_errors_total{service="${serviceName}"}[5m])`
187
- }]
188
- },
189
- {
190
- title: 'Response Time (p95)',
191
- type: 'graph',
192
- targets: [{
193
- expr: `histogram_quantile(0.95, rate(http_duration_seconds_bucket{service="${serviceName}"}[5m]))`
194
- }]
195
- }
196
- ]
197
- }
198
-
199
- return await grafana.dashboards.postDashboard({
200
- dashboard,
201
- overwrite: false
202
- })
203
- }
204
- ```
205
-
206
- ### Alert Management
207
- ```typescript
208
- // Check for firing alerts
209
- const alerts = await grafana.alerting.getAlerts({ state: 'alerting' })
210
-
211
- if (alerts.length > 0) {
212
- console.log(`${alerts.length} alerts firing:`)
213
-
214
- for (const alert of alerts) {
215
- console.log(`- ${alert.labels.alertname}: ${alert.annotations.description}`)
216
-
217
- // Create incident ticket
218
- await jira.issues.createIssue({
219
- fields: {
220
- project: { key: 'OPS' },
221
- summary: `Alert: ${alert.labels.alertname}`,
222
- description: alert.annotations.description,
223
- issuetype: { name: 'Incident' },
224
- priority: { name: alert.labels.severity === 'critical' ? 'Highest' : 'High' }
225
- }
226
- })
227
- }
228
- }
229
- ```
230
-
231
- ### Metrics Reporting
232
- ```typescript
233
- // Generate daily metrics report
234
- async function generateDailyReport() {
235
- const datasourceId = 1 // Prometheus
236
- const from = Date.now() - 86400000 // 24h ago
237
- const to = Date.now()
238
-
239
- // Query metrics
240
- const requestRate = await grafana.datasources.queryDataSource({
241
- datasourceId,
242
- from,
243
- to,
244
- queries: [{ expr: 'sum(rate(http_requests_total[24h]))', refId: 'A' }]
245
- })
246
-
247
- const errorRate = await grafana.datasources.queryDataSource({
248
- datasourceId,
249
- from,
250
- to,
251
- queries: [{ expr: 'sum(rate(http_errors_total[24h]))', refId: 'A' }]
252
- })
253
-
254
- // Create report
255
- const report = {
256
- date: new Date().toISOString(),
257
- totalRequests: requestRate.results.A.frames[0].data.values[1][0],
258
- totalErrors: errorRate.results.A.frames[0].data.values[1][0],
259
- errorPercentage: (totalErrors / totalRequests * 100).toFixed(2)
260
- }
261
-
262
- // Post to Confluence/Notion
263
- await notion.pages.create({
264
- parent: { database_id: reportsDbId },
265
- properties: {
266
- 'Title': { title: [{ text: { content: `Daily Metrics - ${report.date}` } }] },
267
- 'Requests': { number: report.totalRequests },
268
- 'Errors': { number: report.totalErrors },
269
- 'Error Rate': { number: parseFloat(report.errorPercentage) }
270
- }
271
- })
272
- }
273
- ```
274
-
275
- ## Best Practices
276
-
277
- ✅ **DO:**
278
- - Use dashboard folders for organization
279
- - Tag dashboards appropriately
280
- - Set up proper alert thresholds
281
- - Use variables for flexibility
282
- - Create snapshots before changes
283
- - Document dashboard purpose
284
- - Use templating for multi-instance dashboards
285
-
286
- ❌ **DON'T:**
287
- - Create duplicate dashboards
288
- - Set alerts without testing
289
- - Ignore alert fatigue
290
- - Hardcode dashboard IDs
291
- - Skip dashboard backups
292
- - Over-complicate queries
293
-
294
- ## Configuration
295
-
296
- ```json
297
- {
298
- "mcpServers": {
299
- "grafana": {
300
- "command": "npx",
301
- "args": ["-y", "@modelcontextprotocol/server-grafana"],
302
- "env": {
303
- "GRAFANA_URL": "http://grafana:3000",
304
- "GRAFANA_API_KEY": "your-api-key",
305
- "GRAFANA_ORG_ID": "1"
306
- }
307
- }
308
- }
309
- }
310
- ```
311
-
312
- **Setup:**
313
- 1. Create API key: Configuration → API Keys → Add API key
314
- 2. Grant appropriate permissions (Admin for management, Viewer for read-only)
315
- 3. Store securely
316
-
317
- ## Integration with CI/CD
318
-
319
- ```typescript
320
- // Add deployment annotation on successful deploy
321
- if (deploymentSuccess) {
322
- await grafana.annotations.postAnnotation({
323
- time: Date.now(),
324
- tags: ['deployment', process.env.ENVIRONMENT],
325
- text: `Deployed ${process.env.GIT_SHA} to ${process.env.ENVIRONMENT}`,
326
- dashboardUid: process.env.GRAFANA_DASHBOARD_UID
327
- })
328
- }
329
-
330
- // Check alerts before deployment
331
- const alerts = await grafana.alerting.getAlerts({ state: 'alerting' })
332
- if (alerts.length > 0) {
333
- console.warn('⚠️ Active alerts detected. Deployment may be risky.')
334
- }
335
- ```
336
-
337
- <!-- GRAFANA:END -->
338
-
1
+ ---
2
+ name: "Grafana"
3
+ description: "Use MCP Grafana for metrics visualization, alerting, and observability dashboards."
4
+ version: "1.0.0"
5
+ category: "modules"
6
+ author: "Rulebook"
7
+ tags: ["modules", "mcp"]
8
+ dependencies: []
9
+ conflicts: []
10
+ ---
11
+ <!-- GRAFANA:START -->
12
+ # Grafana MCP Instructions
13
+
14
+ **CRITICAL**: Use MCP Grafana for metrics visualization, alerting, and observability dashboards.
15
+
16
+ ## Core Operations
17
+
18
+ ### Dashboard Management
19
+ ```typescript
20
+ // Get dashboard
21
+ grafana.dashboards.getDashboardByUid({ uid: 'dashboard-uid' })
22
+
23
+ // Create dashboard
24
+ grafana.dashboards.postDashboard({
25
+ dashboard: {
26
+ title: 'Application Metrics',
27
+ tags: ['production', 'api'],
28
+ timezone: 'browser',
29
+ panels: [
30
+ {
31
+ title: 'Request Rate',
32
+ type: 'graph',
33
+ targets: [{ expr: 'rate(http_requests_total[5m])' }]
34
+ }
35
+ ]
36
+ },
37
+ overwrite: false
38
+ })
39
+
40
+ // Update dashboard
41
+ grafana.dashboards.postDashboard({
42
+ dashboard: modifiedDashboard,
43
+ overwrite: true
44
+ })
45
+
46
+ // Delete dashboard
47
+ grafana.dashboards.deleteDashboardByUid({ uid: 'dashboard-uid' })
48
+ ```
49
+
50
+ ### Data Sources
51
+ ```typescript
52
+ // Get data sources
53
+ grafana.datasources.getDataSources()
54
+
55
+ // Add data source
56
+ grafana.datasources.addDataSource({
57
+ name: 'Prometheus',
58
+ type: 'prometheus',
59
+ url: 'http://prometheus:9090',
60
+ access: 'proxy',
61
+ isDefault: true
62
+ })
63
+
64
+ // Query data source
65
+ grafana.datasources.queryDataSource({
66
+ datasourceId: 1,
67
+ from: Date.now() - 3600000, // 1 hour ago
68
+ to: Date.now(),
69
+ queries: [
70
+ { expr: 'up', refId: 'A' }
71
+ ]
72
+ })
73
+ ```
74
+
75
+ ### Alerts
76
+ ```typescript
77
+ // Get alerts
78
+ grafana.alerting.getAlerts({ state: 'alerting' })
79
+
80
+ // Create alert rule
81
+ grafana.alerting.postAlertRule({
82
+ title: 'High Error Rate',
83
+ condition: 'A',
84
+ data: [
85
+ {
86
+ refId: 'A',
87
+ queryType: '',
88
+ relativeTimeRange: { from: 600, to: 0 },
89
+ datasourceUid: 'prometheus-uid',
90
+ model: {
91
+ expr: 'rate(http_errors_total[5m]) > 0.05'
92
+ }
93
+ }
94
+ ],
95
+ noDataState: 'NoData',
96
+ execErrState: 'Alerting',
97
+ for: '5m',
98
+ annotations: {
99
+ description: 'Error rate exceeded 5%'
100
+ },
101
+ labels: { severity: 'high' }
102
+ })
103
+
104
+ // Pause alert
105
+ grafana.alerting.pauseAlertRule({ uid: 'alert-uid', paused: true })
106
+ ```
107
+
108
+ ### Annotations
109
+ ```typescript
110
+ // Create annotation
111
+ grafana.annotations.postAnnotation({
112
+ dashboardUid: 'dashboard-uid',
113
+ time: Date.now(),
114
+ timeEnd: Date.now(),
115
+ tags: ['deployment'],
116
+ text: 'Deployed version 1.2.0'
117
+ })
118
+
119
+ // Get annotations
120
+ grafana.annotations.getAnnotations({
121
+ from: Date.now() - 86400000, // Last 24h
122
+ to: Date.now(),
123
+ tags: ['deployment']
124
+ })
125
+ ```
126
+
127
+ ### Organizations & Users
128
+ ```typescript
129
+ // Get organization
130
+ grafana.orgs.getOrgByName({ orgName: 'Main Org' })
131
+
132
+ // Add user
133
+ grafana.users.createUser({
134
+ email: 'user@example.com',
135
+ login: 'username',
136
+ password: 'secure-password',
137
+ name: 'User Name'
138
+ })
139
+
140
+ // Update user permissions
141
+ grafana.org.updateOrgUser({
142
+ userId: 123,
143
+ role: 'Editor' // Viewer, Editor, Admin
144
+ })
145
+ ```
146
+
147
+ ## Common Patterns
148
+
149
+ ### Deployment Tracking
150
+ ```typescript
151
+ // Mark deployment on dashboard
152
+ await grafana.annotations.postAnnotation({
153
+ time: Date.now(),
154
+ tags: ['deployment', 'production'],
155
+ text: `Deployed ${process.env.GIT_SHA}`,
156
+ dashboardUid: 'main-dashboard'
157
+ })
158
+
159
+ // Create snapshot after deployment
160
+ const snapshot = await grafana.snapshots.createDashboardSnapshot({
161
+ dashboard: dashboard,
162
+ name: `Production Metrics - ${new Date().toISOString()}`,
163
+ expires: 86400 // 24 hours
164
+ })
165
+ ```
166
+
167
+ ### Automated Dashboard Creation
168
+ ```typescript
169
+ // Create dashboard for new service
170
+ async function createServiceDashboard(serviceName) {
171
+ const dashboard = {
172
+ title: `${serviceName} Metrics`,
173
+ tags: ['microservices', serviceName],
174
+ panels: [
175
+ {
176
+ title: 'Request Rate',
177
+ type: 'graph',
178
+ targets: [{
179
+ expr: `rate(http_requests_total{service="${serviceName}"}[5m])`
180
+ }]
181
+ },
182
+ {
183
+ title: 'Error Rate',
184
+ type: 'graph',
185
+ targets: [{
186
+ expr: `rate(http_errors_total{service="${serviceName}"}[5m])`
187
+ }]
188
+ },
189
+ {
190
+ title: 'Response Time (p95)',
191
+ type: 'graph',
192
+ targets: [{
193
+ expr: `histogram_quantile(0.95, rate(http_duration_seconds_bucket{service="${serviceName}"}[5m]))`
194
+ }]
195
+ }
196
+ ]
197
+ }
198
+
199
+ return await grafana.dashboards.postDashboard({
200
+ dashboard,
201
+ overwrite: false
202
+ })
203
+ }
204
+ ```
205
+
206
+ ### Alert Management
207
+ ```typescript
208
+ // Check for firing alerts
209
+ const alerts = await grafana.alerting.getAlerts({ state: 'alerting' })
210
+
211
+ if (alerts.length > 0) {
212
+ console.log(`${alerts.length} alerts firing:`)
213
+
214
+ for (const alert of alerts) {
215
+ console.log(`- ${alert.labels.alertname}: ${alert.annotations.description}`)
216
+
217
+ // Create incident ticket
218
+ await jira.issues.createIssue({
219
+ fields: {
220
+ project: { key: 'OPS' },
221
+ summary: `Alert: ${alert.labels.alertname}`,
222
+ description: alert.annotations.description,
223
+ issuetype: { name: 'Incident' },
224
+ priority: { name: alert.labels.severity === 'critical' ? 'Highest' : 'High' }
225
+ }
226
+ })
227
+ }
228
+ }
229
+ ```
230
+
231
+ ### Metrics Reporting
232
+ ```typescript
233
+ // Generate daily metrics report
234
+ async function generateDailyReport() {
235
+ const datasourceId = 1 // Prometheus
236
+ const from = Date.now() - 86400000 // 24h ago
237
+ const to = Date.now()
238
+
239
+ // Query metrics
240
+ const requestRate = await grafana.datasources.queryDataSource({
241
+ datasourceId,
242
+ from,
243
+ to,
244
+ queries: [{ expr: 'sum(rate(http_requests_total[24h]))', refId: 'A' }]
245
+ })
246
+
247
+ const errorRate = await grafana.datasources.queryDataSource({
248
+ datasourceId,
249
+ from,
250
+ to,
251
+ queries: [{ expr: 'sum(rate(http_errors_total[24h]))', refId: 'A' }]
252
+ })
253
+
254
+ // Create report
255
+ const report = {
256
+ date: new Date().toISOString(),
257
+ totalRequests: requestRate.results.A.frames[0].data.values[1][0],
258
+ totalErrors: errorRate.results.A.frames[0].data.values[1][0],
259
+ errorPercentage: (totalErrors / totalRequests * 100).toFixed(2)
260
+ }
261
+
262
+ // Post to Confluence/Notion
263
+ await notion.pages.create({
264
+ parent: { database_id: reportsDbId },
265
+ properties: {
266
+ 'Title': { title: [{ text: { content: `Daily Metrics - ${report.date}` } }] },
267
+ 'Requests': { number: report.totalRequests },
268
+ 'Errors': { number: report.totalErrors },
269
+ 'Error Rate': { number: parseFloat(report.errorPercentage) }
270
+ }
271
+ })
272
+ }
273
+ ```
274
+
275
+ ## Best Practices
276
+
277
+ ✅ **DO:**
278
+ - Use dashboard folders for organization
279
+ - Tag dashboards appropriately
280
+ - Set up proper alert thresholds
281
+ - Use variables for flexibility
282
+ - Create snapshots before changes
283
+ - Document dashboard purpose
284
+ - Use templating for multi-instance dashboards
285
+
286
+ ❌ **DON'T:**
287
+ - Create duplicate dashboards
288
+ - Set alerts without testing
289
+ - Ignore alert fatigue
290
+ - Hardcode dashboard IDs
291
+ - Skip dashboard backups
292
+ - Over-complicate queries
293
+
294
+ ## Configuration
295
+
296
+ ```json
297
+ {
298
+ "mcpServers": {
299
+ "grafana": {
300
+ "command": "npx",
301
+ "args": ["-y", "@modelcontextprotocol/server-grafana"],
302
+ "env": {
303
+ "GRAFANA_URL": "http://grafana:3000",
304
+ "GRAFANA_API_KEY": "your-api-key",
305
+ "GRAFANA_ORG_ID": "1"
306
+ }
307
+ }
308
+ }
309
+ }
310
+ ```
311
+
312
+ **Setup:**
313
+ 1. Create API key: Configuration → API Keys → Add API key
314
+ 2. Grant appropriate permissions (Admin for management, Viewer for read-only)
315
+ 3. Store securely
316
+
317
+ ## Integration with CI/CD
318
+
319
+ ```typescript
320
+ // Add deployment annotation on successful deploy
321
+ if (deploymentSuccess) {
322
+ await grafana.annotations.postAnnotation({
323
+ time: Date.now(),
324
+ tags: ['deployment', process.env.ENVIRONMENT],
325
+ text: `Deployed ${process.env.GIT_SHA} to ${process.env.ENVIRONMENT}`,
326
+ dashboardUid: process.env.GRAFANA_DASHBOARD_UID
327
+ })
328
+ }
329
+
330
+ // Check alerts before deployment
331
+ const alerts = await grafana.alerting.getAlerts({ state: 'alerting' })
332
+ if (alerts.length > 0) {
333
+ console.warn('⚠️ Active alerts detected. Deployment may be risky.')
334
+ }
335
+ ```
336
+
337
+ <!-- GRAFANA:END -->
338
+