@hivehub/rulebook 5.8.1 → 6.0.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.
- package/README.md +86 -216
- package/dist/cli/commands/claude.d.ts.map +1 -1
- package/dist/cli/commands/claude.js +10 -4
- package/dist/cli/commands/claude.js.map +1 -1
- package/dist/cli/commands/context-intelligence.d.ts.map +1 -1
- package/dist/cli/commands/context-intelligence.js.map +1 -1
- package/dist/cli/commands/index.d.ts +1 -2
- package/dist/cli/commands/index.d.ts.map +1 -1
- package/dist/cli/commands/index.js +1 -2
- package/dist/cli/commands/index.js.map +1 -1
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +16 -91
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/mcp.d.ts.map +1 -1
- package/dist/cli/commands/mcp.js.map +1 -1
- package/dist/cli/commands/misc.d.ts +0 -1
- package/dist/cli/commands/misc.d.ts.map +1 -1
- package/dist/cli/commands/misc.js +0 -76
- package/dist/cli/commands/misc.js.map +1 -1
- package/dist/cli/commands/plans.d.ts.map +1 -1
- package/dist/cli/commands/plans.js.map +1 -1
- package/dist/cli/commands/skills.d.ts.map +1 -1
- package/dist/cli/commands/skills.js +6 -2
- package/dist/cli/commands/skills.js.map +1 -1
- package/dist/cli/commands/task.d.ts.map +1 -1
- package/dist/cli/commands/task.js +3 -1
- package/dist/cli/commands/task.js.map +1 -1
- package/dist/cli/commands/update.d.ts +7 -0
- package/dist/cli/commands/update.d.ts.map +1 -1
- package/dist/cli/commands/update.js +61 -165
- package/dist/cli/commands/update.js.map +1 -1
- package/dist/cli/commands/workspace.d.ts.map +1 -1
- package/dist/cli/commands/workspace.js +4 -3
- package/dist/cli/commands/workspace.js.map +1 -1
- package/dist/cli/prompts.d.ts.map +1 -1
- package/dist/cli/prompts.js +0 -40
- package/dist/cli/prompts.js.map +1 -1
- package/dist/core/claude/claude-mcp.d.ts.map +1 -1
- package/dist/core/claude/claude-mcp.js +1 -1
- package/dist/core/claude/claude-mcp.js.map +1 -1
- package/dist/core/claude/claude-md-generator.d.ts.map +1 -1
- package/dist/core/claude/claude-md-generator.js.map +1 -1
- package/dist/core/claude/claude-settings-manager.d.ts.map +1 -1
- package/dist/core/claude/claude-settings-manager.js +9 -6
- package/dist/core/claude/claude-settings-manager.js.map +1 -1
- package/dist/core/custom-templates.d.ts.map +1 -1
- package/dist/core/custom-templates.js.map +1 -1
- package/dist/core/detect/detector.d.ts +0 -28
- package/dist/core/detect/detector.d.ts.map +1 -1
- package/dist/core/detect/detector.js +5 -84
- package/dist/core/detect/detector.js.map +1 -1
- package/dist/core/detect/library-registry.d.ts.map +1 -1
- package/dist/core/detect/library-registry.js.map +1 -1
- package/dist/core/docs/docs-generator.d.ts.map +1 -1
- package/dist/core/docs/docs-generator.js.map +1 -1
- package/dist/core/docs/mcp-reference-generator.d.ts.map +1 -1
- package/dist/core/docs/mcp-reference-generator.js.map +1 -1
- package/dist/core/generators/generator.d.ts.map +1 -1
- package/dist/core/generators/generator.js +0 -72
- package/dist/core/generators/generator.js.map +1 -1
- package/dist/core/generators/gitignore-generator.d.ts.map +1 -1
- package/dist/core/generators/gitignore-generator.js +12 -1
- package/dist/core/generators/gitignore-generator.js.map +1 -1
- package/dist/core/generators/minimal-scaffolder.d.ts.map +1 -1
- package/dist/core/generators/minimal-scaffolder.js.map +1 -1
- package/dist/core/generators/rules-generator.d.ts.map +1 -1
- package/dist/core/generators/rules-generator.js.map +1 -1
- package/dist/core/generators/workflow-generator.d.ts +0 -10
- package/dist/core/generators/workflow-generator.d.ts.map +1 -1
- package/dist/core/generators/workflow-generator.js +0 -307
- package/dist/core/generators/workflow-generator.js.map +1 -1
- package/dist/core/logger.d.ts.map +1 -1
- package/dist/core/logger.js.map +1 -1
- package/dist/core/merger.d.ts.map +1 -1
- package/dist/core/merger.js.map +1 -1
- package/dist/core/migrator.d.ts.map +1 -1
- package/dist/core/migrator.js +2 -1
- package/dist/core/migrator.js.map +1 -1
- package/dist/core/quality/coverage-checker.d.ts.map +1 -1
- package/dist/core/quality/coverage-checker.js.map +1 -1
- package/dist/core/quality/dependency-checker.d.ts.map +1 -1
- package/dist/core/quality/dependency-checker.js +3 -1
- package/dist/core/quality/dependency-checker.js.map +1 -1
- package/dist/core/quality/doctor.d.ts.map +1 -1
- package/dist/core/quality/doctor.js.map +1 -1
- package/dist/core/quality/validator.d.ts.map +1 -1
- package/dist/core/quality/validator.js.map +1 -1
- package/dist/core/rule-engine.d.ts +5 -21
- package/dist/core/rule-engine.d.ts.map +1 -1
- package/dist/core/rule-engine.js +9 -191
- package/dist/core/rule-engine.js.map +1 -1
- package/dist/core/skills/skills-manager.d.ts.map +1 -1
- package/dist/core/skills/skills-manager.js.map +1 -1
- package/dist/core/state/config-manager.d.ts.map +1 -1
- package/dist/core/state/config-manager.js +6 -50
- package/dist/core/state/config-manager.js.map +1 -1
- package/dist/core/state/override-manager.js.map +1 -1
- package/dist/core/state/state-writer.d.ts.map +1 -1
- package/dist/core/state/state-writer.js.map +1 -1
- package/dist/core/state/version-bumper.d.ts.map +1 -1
- package/dist/core/state/version-bumper.js.map +1 -1
- package/dist/core/tasks/decision-manager.d.ts.map +1 -1
- package/dist/core/tasks/decision-manager.js +6 -1
- package/dist/core/tasks/decision-manager.js.map +1 -1
- package/dist/core/tasks/knowledge-manager.d.ts.map +1 -1
- package/dist/core/tasks/knowledge-manager.js.map +1 -1
- package/dist/core/tasks/learn-manager.d.ts.map +1 -1
- package/dist/core/tasks/learn-manager.js.map +1 -1
- package/dist/core/tasks/plans-manager.d.ts.map +1 -1
- package/dist/core/tasks/plans-manager.js.map +1 -1
- package/dist/core/tasks/task-manager.d.ts.map +1 -1
- package/dist/core/tasks/task-manager.js.map +1 -1
- package/dist/core/workspace/legacy-migrator.d.ts.map +1 -1
- package/dist/core/workspace/legacy-migrator.js.map +1 -1
- package/dist/core/workspace/project-worker.d.ts +0 -4
- package/dist/core/workspace/project-worker.d.ts.map +1 -1
- package/dist/core/workspace/project-worker.js +0 -28
- package/dist/core/workspace/project-worker.js.map +1 -1
- package/dist/core/workspace/workspace-manager.d.ts +0 -11
- package/dist/core/workspace/workspace-manager.d.ts.map +1 -1
- package/dist/core/workspace/workspace-manager.js +6 -30
- package/dist/core/workspace/workspace-manager.js.map +1 -1
- package/dist/core/workspace/workspace-types.d.ts +0 -1
- package/dist/core/workspace/workspace-types.d.ts.map +1 -1
- package/dist/hooks/safe-flag-io.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -82
- package/dist/index.js.map +1 -1
- package/dist/mcp/rulebook-server.d.ts.map +1 -1
- package/dist/mcp/rulebook-server.js +55 -1634
- package/dist/mcp/rulebook-server.js.map +1 -1
- package/dist/mcp/tools/context.d.ts +23 -0
- package/dist/mcp/tools/context.d.ts.map +1 -0
- package/dist/mcp/tools/context.js +2 -0
- package/dist/mcp/tools/context.js.map +1 -0
- package/dist/mcp/tools/decision-tools.d.ts +5 -0
- package/dist/mcp/tools/decision-tools.d.ts.map +1 -0
- package/dist/mcp/tools/decision-tools.js +220 -0
- package/dist/mcp/tools/decision-tools.js.map +1 -0
- package/dist/mcp/tools/knowledge-tools.d.ts +5 -0
- package/dist/mcp/tools/knowledge-tools.d.ts.map +1 -0
- package/dist/mcp/tools/knowledge-tools.js +157 -0
- package/dist/mcp/tools/knowledge-tools.js.map +1 -0
- package/dist/mcp/tools/learn-tools.d.ts +5 -0
- package/dist/mcp/tools/learn-tools.d.ts.map +1 -0
- package/dist/mcp/tools/learn-tools.js +150 -0
- package/dist/mcp/tools/learn-tools.js.map +1 -0
- package/dist/mcp/tools/rules-tools.d.ts +4 -0
- package/dist/mcp/tools/rules-tools.d.ts.map +1 -0
- package/dist/mcp/tools/rules-tools.js +47 -0
- package/dist/mcp/tools/rules-tools.js.map +1 -0
- package/dist/mcp/tools/skill-tools.d.ts +5 -0
- package/dist/mcp/tools/skill-tools.d.ts.map +1 -0
- package/dist/mcp/tools/skill-tools.js +330 -0
- package/dist/mcp/tools/skill-tools.js.map +1 -0
- package/dist/mcp/tools/task-tools.d.ts +5 -0
- package/dist/mcp/tools/task-tools.d.ts.map +1 -0
- package/dist/mcp/tools/task-tools.js +185 -0
- package/dist/mcp/tools/task-tools.js.map +1 -0
- package/dist/mcp/tools/workspace-tools.d.ts +6 -0
- package/dist/mcp/tools/workspace-tools.d.ts.map +1 -0
- package/dist/mcp/tools/workspace-tools.js +118 -0
- package/dist/mcp/tools/workspace-tools.js.map +1 -0
- package/dist/types.d.ts +1 -46
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/file-system.d.ts.map +1 -1
- package/dist/utils/file-system.js.map +1 -1
- package/dist/utils/git-hooks.d.ts.map +1 -1
- package/dist/utils/git-hooks.js.map +1 -1
- package/dist/utils/gitignore.d.ts.map +1 -1
- package/dist/utils/gitignore.js.map +1 -1
- package/dist/utils/rulesignore.d.ts.map +1 -1
- package/dist/utils/rulesignore.js.map +1 -1
- package/package.json +25 -27
- package/templates/agents/architect.md +51 -51
- package/templates/agents/build-engineer.md +36 -36
- package/templates/agents/code-reviewer.md +47 -47
- package/templates/agents/docs-writer.md +38 -38
- package/templates/agents/implementer.md +42 -42
- package/templates/agents/performance-engineer.md +49 -49
- package/templates/agents/researcher.md +38 -38
- package/templates/agents/security-reviewer.md +40 -40
- package/templates/agents/team-lead.md +37 -37
- package/templates/agents/tester.md +48 -48
- package/templates/ci/rulebook-review.yml +26 -26
- package/templates/claude-workflows/review-fanout.js +2 -2
- package/templates/claude-workflows/rulebook-driver.js +16 -4
- package/templates/cli/CLAUDE.md +102 -117
- package/templates/cli/_GENERIC_TEMPLATE.md +29 -29
- package/templates/commands/rulebook-decision-create.md +55 -55
- package/templates/commands/rulebook-decision-list.md +15 -15
- package/templates/commands/rulebook-knowledge-add.md +41 -41
- package/templates/commands/rulebook-knowledge-list.md +15 -15
- package/templates/commands/rulebook-learn-capture.md +1 -2
- package/templates/commands/rulebook-task-apply.md +67 -67
- package/templates/commands/rulebook-task-archive.md +94 -94
- package/templates/commands/rulebook-task-create.md +93 -93
- package/templates/commands/rulebook-task-list.md +42 -42
- package/templates/commands/rulebook-task-show.md +52 -52
- package/templates/commands/rulebook-task-validate.md +53 -53
- package/templates/compact-context/_default.md +23 -23
- package/templates/compact-context/cpp.md +26 -26
- package/templates/compact-context/go.md +26 -26
- package/templates/compact-context/python.md +26 -26
- package/templates/compact-context/rust.md +28 -28
- package/templates/compact-context/typescript.md +29 -29
- package/templates/core/AGENTS_LEAN.md +4 -9
- package/templates/core/AGENTS_OVERRIDE.md +16 -16
- package/templates/core/AGENT_AUTOMATION.md +273 -296
- package/templates/core/CLAUDE_MD_v2.md +85 -90
- package/templates/core/DAG.md +304 -304
- package/templates/core/DECISIONS.md +38 -38
- package/templates/core/DOCUMENTATION_RULES.md +36 -36
- package/templates/core/KNOWLEDGE.md +49 -49
- package/templates/core/MULTI_AGENT.md +74 -74
- package/templates/core/PLANS.md +28 -28
- package/templates/core/QUALITY_ENFORCEMENT.md +68 -68
- package/templates/core/RULEBOOK.md +1936 -1947
- package/templates/core/TIER1_PROHIBITIONS.md +154 -154
- package/templates/core/TOKEN_OPTIMIZATION.md +49 -49
- package/templates/core/WORKSPACE.md +4 -8
- package/templates/git/CI_CD_PATTERNS.md +661 -661
- package/templates/git/GITHUB_ACTIONS.md +728 -728
- package/templates/git/GITLAB_CI.md +730 -730
- package/templates/git/GIT_WORKFLOW.md +1192 -1192
- package/templates/git/SECRETS_MANAGEMENT.md +585 -585
- package/templates/hooks/COMMIT_MSG.md +530 -530
- package/templates/hooks/POST_CHECKOUT.md +546 -546
- package/templates/hooks/PREPARE_COMMIT_MSG.md +619 -619
- package/templates/hooks/PRE_COMMIT.md +414 -414
- package/templates/hooks/PRE_PUSH.md +601 -601
- package/templates/hooks/enforce-pre-tool.sh +26 -9
- package/templates/hooks/update-check.ps1 +84 -84
- package/templates/hooks/update-check.sh +45 -21
- package/templates/languages/C.md +333 -333
- package/templates/languages/CPP.md +743 -743
- package/templates/languages/CSHARP.md +417 -417
- package/templates/languages/ELIXIR.md +454 -454
- package/templates/languages/ERLANG.md +361 -361
- package/templates/languages/GO.md +645 -645
- package/templates/languages/HASKELL.md +177 -177
- package/templates/languages/JAVA.md +607 -607
- package/templates/languages/JAVASCRIPT.md +631 -631
- package/templates/languages/JULIA.md +97 -97
- package/templates/languages/KOTLIN.md +511 -511
- package/templates/languages/LISP.md +100 -100
- package/templates/languages/LUA.md +74 -74
- package/templates/languages/OBJECTIVEC.md +90 -90
- package/templates/languages/PHP.md +416 -416
- package/templates/languages/PYTHON.md +682 -682
- package/templates/languages/RUBY.md +421 -421
- package/templates/languages/RUST.md +477 -477
- package/templates/languages/SAS.md +73 -73
- package/templates/languages/SCALA.md +348 -348
- package/templates/languages/SOLIDITY.md +580 -580
- package/templates/languages/SQL.md +137 -137
- package/templates/languages/SWIFT.md +466 -466
- package/templates/languages/TYPESCRIPT.md +591 -591
- package/templates/languages/ZIG.md +265 -265
- package/templates/modules/CONTEXT7.md +54 -54
- package/templates/modules/GITHUB_MCP.md +64 -64
- package/templates/modules/PLAYWRIGHT.md +90 -90
- package/templates/modules/RULEBOOK_MCP.md +208 -208
- package/templates/modules/SERENA.md +337 -337
- package/templates/modules/SUPABASE.md +223 -223
- package/templates/modules/SYNAP.md +69 -69
- package/templates/modules/VECTORIZER.md +63 -63
- package/templates/modules/sequential-thinking.md +42 -42
- package/templates/rules/consult-analysis-before-implementing.md +21 -23
- package/templates/rules/cpp.md +46 -46
- package/templates/rules/csharp.md +44 -44
- package/templates/rules/diagnostic-first.md +39 -39
- package/templates/rules/fail-twice-escalate.md +46 -46
- package/templates/rules/follow-task-sequence.md +36 -36
- package/templates/rules/git-safety.md +29 -29
- package/templates/rules/go.md +40 -40
- package/templates/rules/incremental-implementation.md +56 -56
- package/templates/rules/incremental-tests.md +29 -29
- package/templates/rules/java.md +43 -43
- package/templates/rules/javascript.md +39 -39
- package/templates/rules/knowledge-base-usage.md +41 -41
- package/templates/rules/multi-agent-teams.md +75 -75
- package/templates/rules/no-deferred.md +31 -31
- package/templates/rules/no-shortcuts.md +30 -30
- package/templates/rules/python.md +43 -43
- package/templates/rules/research-first.md +30 -30
- package/templates/rules/respect-handoff-trigger.md +41 -41
- package/templates/rules/rust.md +40 -40
- package/templates/rules/sequential-editing.md +21 -21
- package/templates/rules/session-workflow.md +24 -24
- package/templates/rules/task-decomposition.md +32 -32
- package/templates/rules/typescript.md +40 -40
- package/templates/skills/cli/claude/SKILL.md +42 -42
- package/templates/skills/core/agent-automation/SKILL.md +194 -194
- package/templates/skills/core/dag/SKILL.md +314 -314
- package/templates/skills/core/documentation-rules/SKILL.md +46 -46
- package/templates/skills/core/quality-enforcement/SKILL.md +78 -78
- package/templates/skills/core/rulebook/SKILL.md +176 -176
- package/templates/skills/core/rulebook-terse/SKILL.md +116 -116
- package/templates/skills/core/rulebook-terse-commit/SKILL.md +96 -96
- package/templates/skills/core/rulebook-terse-review/SKILL.md +112 -112
- package/templates/skills/dev/accessibility/SKILL.md +17 -17
- package/templates/skills/dev/analysis/SKILL.md +19 -19
- package/templates/skills/dev/api-design/SKILL.md +15 -15
- package/templates/skills/dev/architect/SKILL.md +17 -17
- package/templates/skills/dev/build-fix/SKILL.md +17 -17
- package/templates/skills/dev/db-design/SKILL.md +15 -15
- package/templates/skills/dev/debug/SKILL.md +16 -16
- package/templates/skills/dev/deploy/SKILL.md +17 -17
- package/templates/skills/dev/docs/SKILL.md +17 -17
- package/templates/skills/dev/handoff/SKILL.md +27 -27
- package/templates/skills/dev/migrate/SKILL.md +15 -15
- package/templates/skills/dev/perf/SKILL.md +17 -17
- package/templates/skills/dev/refactor/SKILL.md +17 -17
- package/templates/skills/dev/research/SKILL.md +14 -14
- package/templates/skills/dev/review/SKILL.md +18 -18
- package/templates/skills/dev/security-audit/SKILL.md +17 -17
- package/templates/skills/languages/c/SKILL.md +343 -343
- package/templates/skills/languages/cpp/SKILL.md +753 -753
- package/templates/skills/languages/csharp/SKILL.md +427 -427
- package/templates/skills/languages/elixir/SKILL.md +464 -464
- package/templates/skills/languages/erlang/SKILL.md +371 -371
- package/templates/skills/languages/go/SKILL.md +655 -655
- package/templates/skills/languages/haskell/SKILL.md +187 -187
- package/templates/skills/languages/java/SKILL.md +617 -617
- package/templates/skills/languages/javascript/SKILL.md +641 -641
- package/templates/skills/languages/julia/SKILL.md +107 -107
- package/templates/skills/languages/kotlin/SKILL.md +521 -521
- package/templates/skills/languages/lisp/SKILL.md +110 -110
- package/templates/skills/languages/lua/SKILL.md +84 -84
- package/templates/skills/languages/objectivec/SKILL.md +100 -100
- package/templates/skills/languages/php/SKILL.md +426 -426
- package/templates/skills/languages/python/SKILL.md +692 -692
- package/templates/skills/languages/ruby/SKILL.md +431 -431
- package/templates/skills/languages/rust/SKILL.md +487 -487
- package/templates/skills/languages/sas/SKILL.md +83 -83
- package/templates/skills/languages/scala/SKILL.md +358 -358
- package/templates/skills/languages/solidity/SKILL.md +590 -590
- package/templates/skills/languages/sql/SKILL.md +147 -147
- package/templates/skills/languages/swift/SKILL.md +476 -476
- package/templates/skills/languages/typescript/SKILL.md +302 -302
- package/templates/skills/languages/zig/SKILL.md +275 -275
- package/templates/skills/modules/context7/SKILL.md +64 -64
- package/templates/skills/modules/github-mcp/SKILL.md +74 -74
- package/templates/skills/modules/playwright/SKILL.md +100 -100
- package/templates/skills/modules/rulebook-mcp/SKILL.md +166 -166
- package/templates/skills/modules/serena/SKILL.md +347 -347
- package/templates/skills/modules/supabase/SKILL.md +233 -233
- package/templates/skills/modules/synap/SKILL.md +79 -79
- package/templates/skills/modules/vectorizer/SKILL.md +73 -73
- package/.claude/commands/analysis.md +0 -35
- package/.claude/commands/continue.md +0 -33
- package/.claude/commands/rulebook-decision-create.md +0 -55
- package/.claude/commands/rulebook-decision-list.md +0 -15
- package/.claude/commands/rulebook-knowledge-add.md +0 -41
- package/.claude/commands/rulebook-knowledge-list.md +0 -15
- package/.claude/commands/rulebook-learn-capture.md +0 -41
- package/.claude/commands/rulebook-learn-list.md +0 -13
- package/.claude/commands/rulebook-memory-save.md +0 -48
- package/.claude/commands/rulebook-memory-search.md +0 -47
- package/.claude/commands/rulebook-task-apply.md +0 -67
- package/.claude/commands/rulebook-task-archive.md +0 -94
- package/.claude/commands/rulebook-task-create.md +0 -93
- package/.claude/commands/rulebook-task-list.md +0 -42
- package/.claude/commands/rulebook-task-show.md +0 -52
- package/.claude/commands/rulebook-task-validate.md +0 -53
- package/.claude-plugin/marketplace.json +0 -28
- package/.claude-plugin/plugin.json +0 -8
- package/dist/agents/claude-code.d.ts +0 -69
- package/dist/agents/claude-code.d.ts.map +0 -1
- package/dist/agents/claude-code.js +0 -180
- package/dist/agents/claude-code.js.map +0 -1
- package/dist/agents/cursor-agent.d.ts +0 -184
- package/dist/agents/cursor-agent.d.ts.map +0 -1
- package/dist/agents/cursor-agent.js +0 -299
- package/dist/agents/cursor-agent.js.map +0 -1
- package/dist/agents/gemini-cli.d.ts +0 -69
- package/dist/agents/gemini-cli.d.ts.map +0 -1
- package/dist/agents/gemini-cli.js +0 -180
- package/dist/agents/gemini-cli.js.map +0 -1
- package/dist/cli/commands/memory.d.ts +0 -30
- package/dist/cli/commands/memory.d.ts.map +0 -1
- package/dist/cli/commands/memory.js +0 -259
- package/dist/cli/commands/memory.js.map +0 -1
- package/dist/core/console/cli-bridge.d.ts +0 -113
- package/dist/core/console/cli-bridge.d.ts.map +0 -1
- package/dist/core/console/cli-bridge.js +0 -1094
- package/dist/core/console/cli-bridge.js.map +0 -1
- package/dist/core/ide/multi-tool-generator.d.ts +0 -59
- package/dist/core/ide/multi-tool-generator.d.ts.map +0 -1
- package/dist/core/ide/multi-tool-generator.js +0 -157
- package/dist/core/ide/multi-tool-generator.js.map +0 -1
- package/dist/core/ide/opencode-generator.d.ts +0 -72
- package/dist/core/ide/opencode-generator.d.ts.map +0 -1
- package/dist/core/ide/opencode-generator.js +0 -450
- package/dist/core/ide/opencode-generator.js.map +0 -1
- package/dist/core/indexer/background-indexer.d.ts +0 -35
- package/dist/core/indexer/background-indexer.d.ts.map +0 -1
- package/dist/core/indexer/background-indexer.js +0 -267
- package/dist/core/indexer/background-indexer.js.map +0 -1
- package/dist/core/indexer/file-parser.d.ts +0 -28
- package/dist/core/indexer/file-parser.d.ts.map +0 -1
- package/dist/core/indexer/file-parser.js +0 -171
- package/dist/core/indexer/file-parser.js.map +0 -1
- package/dist/core/indexer/indexer-types.d.ts +0 -37
- package/dist/core/indexer/indexer-types.d.ts.map +0 -1
- package/dist/core/indexer/indexer-types.js +0 -8
- package/dist/core/indexer/indexer-types.js.map +0 -1
- package/dist/memory/file-search.d.ts +0 -43
- package/dist/memory/file-search.d.ts.map +0 -1
- package/dist/memory/file-search.js +0 -228
- package/dist/memory/file-search.js.map +0 -1
- package/dist/memory/file-store.d.ts +0 -99
- package/dist/memory/file-store.d.ts.map +0 -1
- package/dist/memory/file-store.js +0 -615
- package/dist/memory/file-store.js.map +0 -1
- package/dist/memory/legacy-migrator.d.ts +0 -27
- package/dist/memory/legacy-migrator.d.ts.map +0 -1
- package/dist/memory/legacy-migrator.js +0 -185
- package/dist/memory/legacy-migrator.js.map +0 -1
- package/dist/memory/memory-hooks.d.ts +0 -48
- package/dist/memory/memory-hooks.d.ts.map +0 -1
- package/dist/memory/memory-hooks.js +0 -248
- package/dist/memory/memory-hooks.js.map +0 -1
- package/dist/memory/memory-manager.d.ts +0 -65
- package/dist/memory/memory-manager.d.ts.map +0 -1
- package/dist/memory/memory-manager.js +0 -223
- package/dist/memory/memory-manager.js.map +0 -1
- package/dist/memory/memory-types.d.ts +0 -85
- package/dist/memory/memory-types.d.ts.map +0 -1
- package/dist/memory/memory-types.js +0 -7
- package/dist/memory/memory-types.js.map +0 -1
- package/templates/agents/accessibility-reviewer.md +0 -43
- package/templates/agents/api-designer.md +0 -42
- package/templates/agents/compiler/codegen-debugger.md +0 -34
- package/templates/agents/compiler/stdlib-engineer.md +0 -28
- package/templates/agents/compiler/test-coverage-guardian.md +0 -31
- package/templates/agents/context-intelligence.md +0 -50
- package/templates/agents/database-architect.md +0 -41
- package/templates/agents/devops-engineer.md +0 -42
- package/templates/agents/game-engine/cpp-core-expert.md +0 -35
- package/templates/agents/game-engine/render-engineer.md +0 -22
- package/templates/agents/game-engine/shader-engineer.md +0 -38
- package/templates/agents/game-engine/systems-integration.md +0 -43
- package/templates/agents/generic/code-reviewer.md +0 -41
- package/templates/agents/generic/docs-writer.md +0 -25
- package/templates/agents/generic/project-manager.md +0 -36
- package/templates/agents/generic/researcher.md +0 -34
- package/templates/agents/generic/test-engineer.md +0 -41
- package/templates/agents/i18n-engineer.md +0 -42
- package/templates/agents/migration-engineer.md +0 -42
- package/templates/agents/mobile/platform-specialist.md +0 -22
- package/templates/agents/mobile/ui-engineer.md +0 -22
- package/templates/agents/project-manager.md +0 -217
- package/templates/agents/refactoring-agent.md +0 -41
- package/templates/agents/ux-reviewer.md +0 -43
- package/templates/agents/web-app/api-designer.md +0 -22
- package/templates/agents/web-app/backend-engineer.md +0 -30
- package/templates/agents/web-app/database-engineer.md +0 -22
- package/templates/agents/web-app/frontend-engineer.md +0 -29
- package/templates/agents/web-app/security-reviewer.md +0 -32
- package/templates/cli/AIDER.md +0 -49
- package/templates/cli/AMAZON_Q.md +0 -25
- package/templates/cli/AUGGIE.md +0 -32
- package/templates/cli/CLINE.md +0 -99
- package/templates/cli/CODEBUDDY.md +0 -20
- package/templates/cli/CODEIUM.md +0 -20
- package/templates/cli/CODEX.md +0 -21
- package/templates/cli/CONTINUE.md +0 -34
- package/templates/cli/CURSOR_CLI.md +0 -62
- package/templates/cli/FACTORY.md +0 -18
- package/templates/cli/GEMINI.md +0 -35
- package/templates/cli/KILOCODE.md +0 -18
- package/templates/cli/OPENCODE.md +0 -85
- package/templates/cli/gemini-extension.json +0 -77
- package/templates/commands/rulebook-memory-save.md +0 -48
- package/templates/commands/rulebook-memory-search.md +0 -47
- package/templates/ides/CONTINUE_RULES.md +0 -16
- package/templates/ides/COPILOT_INSTRUCTIONS.md +0 -23
- package/templates/ides/GEMINI_RULES.md +0 -17
- package/templates/ides/OPENCODE.md +0 -63
- package/templates/ides/WINDSURF_RULES.md +0 -14
- package/templates/modules/ATLASSIAN.md +0 -255
- package/templates/modules/FIGMA.md +0 -267
- package/templates/modules/GRAFANA.md +0 -328
- package/templates/modules/MEMORY.md +0 -126
- package/templates/modules/NOTION.md +0 -247
- package/templates/skills/cli/aider/SKILL.md +0 -59
- package/templates/skills/cli/amazon-q/SKILL.md +0 -35
- package/templates/skills/cli/auggie/SKILL.md +0 -42
- package/templates/skills/cli/cline/SKILL.md +0 -42
- package/templates/skills/cli/codebuddy/SKILL.md +0 -30
- package/templates/skills/cli/codeium/SKILL.md +0 -30
- package/templates/skills/cli/codex/SKILL.md +0 -31
- package/templates/skills/cli/continue/SKILL.md +0 -44
- package/templates/skills/cli/cursor-cli/SKILL.md +0 -38
- package/templates/skills/cli/factory/SKILL.md +0 -28
- package/templates/skills/cli/gemini/SKILL.md +0 -45
- package/templates/skills/cli/kilocode/SKILL.md +0 -28
- package/templates/skills/cli/opencode/SKILL.md +0 -82
- package/templates/skills/ides/copilot/SKILL.md +0 -47
- package/templates/skills/ides/cursor/SKILL.md +0 -53
- package/templates/skills/ides/jetbrains-ai/SKILL.md +0 -45
- package/templates/skills/ides/replit/SKILL.md +0 -46
- package/templates/skills/ides/tabnine/SKILL.md +0 -39
- package/templates/skills/ides/vscode/SKILL.md +0 -50
- package/templates/skills/ides/windsurf/SKILL.md +0 -46
- package/templates/skills/ides/zed/SKILL.md +0 -42
- package/templates/skills/modules/atlassian/SKILL.md +0 -265
- package/templates/skills/modules/figma/SKILL.md +0 -277
- package/templates/skills/modules/grafana/SKILL.md +0 -338
- package/templates/skills/modules/memory/SKILL.md +0 -73
- package/templates/skills/modules/notion/SKILL.md +0 -257
|
@@ -1,267 +0,0 @@
|
|
|
1
|
-
<!-- FIGMA:START -->
|
|
2
|
-
# Figma MCP Instructions
|
|
3
|
-
|
|
4
|
-
**CRITICAL**: Use MCP Figma for design system integration, asset export, and design-to-code workflows.
|
|
5
|
-
|
|
6
|
-
## Core Operations
|
|
7
|
-
|
|
8
|
-
### File Operations
|
|
9
|
-
```typescript
|
|
10
|
-
// Get file
|
|
11
|
-
figma.getFile({ file_key: 'file-key' })
|
|
12
|
-
|
|
13
|
-
// Get file nodes
|
|
14
|
-
figma.getFileNodes({
|
|
15
|
-
file_key: 'file-key',
|
|
16
|
-
ids: ['node-id-1', 'node-id-2']
|
|
17
|
-
})
|
|
18
|
-
|
|
19
|
-
// Get file versions
|
|
20
|
-
figma.getFileVersions({ file_key: 'file-key' })
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
### Image Export
|
|
24
|
-
```typescript
|
|
25
|
-
// Export images
|
|
26
|
-
figma.getImage({
|
|
27
|
-
file_key: 'file-key',
|
|
28
|
-
ids: 'node-id',
|
|
29
|
-
format: 'png', // png, jpg, svg, pdf
|
|
30
|
-
scale: 2 // @2x resolution
|
|
31
|
-
})
|
|
32
|
-
|
|
33
|
-
// Export multiple
|
|
34
|
-
figma.getImage({
|
|
35
|
-
file_key: 'file-key',
|
|
36
|
-
ids: 'node-1,node-2,node-3',
|
|
37
|
-
format: 'svg',
|
|
38
|
-
svg_outline_text: true
|
|
39
|
-
})
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
### Components
|
|
43
|
-
```typescript
|
|
44
|
-
// Get components
|
|
45
|
-
figma.getFileComponents({ file_key: 'file-key' })
|
|
46
|
-
|
|
47
|
-
// Get component sets
|
|
48
|
-
figma.getFileComponentSets({ file_key: 'file-key' })
|
|
49
|
-
|
|
50
|
-
// Get team components
|
|
51
|
-
figma.getTeamComponents({ team_id: 'team-id' })
|
|
52
|
-
```
|
|
53
|
-
|
|
54
|
-
### Styles
|
|
55
|
-
```typescript
|
|
56
|
-
// Get file styles
|
|
57
|
-
figma.getFileStyles({ file_key: 'file-key' })
|
|
58
|
-
|
|
59
|
-
// Get team styles
|
|
60
|
-
figma.getTeamStyles({ team_id: 'team-id' })
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
### Comments
|
|
64
|
-
```typescript
|
|
65
|
-
// Get comments
|
|
66
|
-
figma.getComments({ file_key: 'file-key' })
|
|
67
|
-
|
|
68
|
-
// Post comment
|
|
69
|
-
figma.postComment({
|
|
70
|
-
file_key: 'file-key',
|
|
71
|
-
message: 'Approved for development',
|
|
72
|
-
comment_id: 'parent-comment-id' // For replies
|
|
73
|
-
})
|
|
74
|
-
```
|
|
75
|
-
|
|
76
|
-
## Common Patterns
|
|
77
|
-
|
|
78
|
-
### Design Token Export
|
|
79
|
-
```typescript
|
|
80
|
-
// Export design tokens from Figma styles
|
|
81
|
-
const { data: { styles } } = await figma.getFileStyles({ file_key: fileKey })
|
|
82
|
-
|
|
83
|
-
const tokens = {
|
|
84
|
-
colors: {},
|
|
85
|
-
typography: {},
|
|
86
|
-
spacing: {}
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
for (const style of Object.values(styles)) {
|
|
90
|
-
if (style.style_type === 'FILL') {
|
|
91
|
-
tokens.colors[style.name] = extractColor(style)
|
|
92
|
-
} else if (style.style_type === 'TEXT') {
|
|
93
|
-
tokens.typography[style.name] = extractTextStyle(style)
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
// Write to tokens.json
|
|
98
|
-
fs.writeFileSync('tokens.json', JSON.stringify(tokens, null, 2))
|
|
99
|
-
```
|
|
100
|
-
|
|
101
|
-
### Component Sync
|
|
102
|
-
```typescript
|
|
103
|
-
// Sync Figma components to code
|
|
104
|
-
const { data: components } = await figma.getFileComponents({ file_key: fileKey })
|
|
105
|
-
|
|
106
|
-
for (const component of Object.values(components)) {
|
|
107
|
-
// Export component as SVG
|
|
108
|
-
const { data: images } = await figma.getImage({
|
|
109
|
-
file_key: fileKey,
|
|
110
|
-
ids: component.node_id,
|
|
111
|
-
format: 'svg'
|
|
112
|
-
})
|
|
113
|
-
|
|
114
|
-
// Save to assets folder
|
|
115
|
-
const svg = await fetch(images[component.node_id]).then(r => r.text())
|
|
116
|
-
fs.writeFileSync(`assets/icons/${component.name}.svg`, svg)
|
|
117
|
-
}
|
|
118
|
-
```
|
|
119
|
-
|
|
120
|
-
### Screenshot Generation
|
|
121
|
-
```typescript
|
|
122
|
-
// Generate screenshots for documentation
|
|
123
|
-
const screens = ['home-screen', 'login-screen', 'dashboard']
|
|
124
|
-
|
|
125
|
-
for (const screenId of screens) {
|
|
126
|
-
const { data: images } = await figma.getImage({
|
|
127
|
-
file_key: fileKey,
|
|
128
|
-
ids: screenId,
|
|
129
|
-
format: 'png',
|
|
130
|
-
scale: 2
|
|
131
|
-
})
|
|
132
|
-
|
|
133
|
-
const imageUrl = images[screenId]
|
|
134
|
-
const response = await fetch(imageUrl)
|
|
135
|
-
const buffer = await response.buffer()
|
|
136
|
-
|
|
137
|
-
fs.writeFileSync(`docs/screenshots/${screenId}.png`, buffer)
|
|
138
|
-
}
|
|
139
|
-
```
|
|
140
|
-
|
|
141
|
-
### Design Review Automation
|
|
142
|
-
```typescript
|
|
143
|
-
// Check for new comments
|
|
144
|
-
const { data: comments } = await figma.getComments({ file_key: fileKey })
|
|
145
|
-
|
|
146
|
-
const unresolved = comments.filter(c => !c.resolved_at)
|
|
147
|
-
|
|
148
|
-
if (unresolved.length > 0) {
|
|
149
|
-
console.log(`${unresolved.length} unresolved design comments`)
|
|
150
|
-
|
|
151
|
-
// Create Jira issues for unresolved comments
|
|
152
|
-
for (const comment of unresolved) {
|
|
153
|
-
await jira.issues.createIssue({
|
|
154
|
-
fields: {
|
|
155
|
-
project: { key: 'DESIGN' },
|
|
156
|
-
summary: `Design feedback: ${comment.message.substring(0, 50)}`,
|
|
157
|
-
description: comment.message,
|
|
158
|
-
issuetype: { name: 'Task' }
|
|
159
|
-
}
|
|
160
|
-
})
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
```
|
|
164
|
-
|
|
165
|
-
### Design System Documentation
|
|
166
|
-
```typescript
|
|
167
|
-
// Generate component documentation
|
|
168
|
-
const { data: components } = await figma.getFileComponents({ file_key: fileKey })
|
|
169
|
-
|
|
170
|
-
let markdown = '# Design System Components\n\n'
|
|
171
|
-
|
|
172
|
-
for (const [id, component] of Object.entries(components)) {
|
|
173
|
-
// Export thumbnail
|
|
174
|
-
const { data: images } = await figma.getImage({
|
|
175
|
-
file_key: fileKey,
|
|
176
|
-
ids: id,
|
|
177
|
-
format: 'png',
|
|
178
|
-
scale: 1
|
|
179
|
-
})
|
|
180
|
-
|
|
181
|
-
markdown += `## ${component.name}\n\n`
|
|
182
|
-
markdown += `\n\n`
|
|
183
|
-
markdown += `**Description:** ${component.description || 'No description'}\n\n`
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
fs.writeFileSync('docs/design-system.md', markdown)
|
|
187
|
-
```
|
|
188
|
-
|
|
189
|
-
## Best Practices
|
|
190
|
-
|
|
191
|
-
✅ **DO:**
|
|
192
|
-
- Cache file data to reduce API calls
|
|
193
|
-
- Use version history for tracking changes
|
|
194
|
-
- Export assets at appropriate resolutions
|
|
195
|
-
- Document component usage
|
|
196
|
-
- Use meaningful component names
|
|
197
|
-
- Keep design tokens in sync
|
|
198
|
-
- Handle rate limits (requests/minute)
|
|
199
|
-
|
|
200
|
-
❌ **DON'T:**
|
|
201
|
-
- Export entire files repeatedly
|
|
202
|
-
- Ignore version control
|
|
203
|
-
- Hardcode file keys
|
|
204
|
-
- Skip error handling
|
|
205
|
-
- Export at wrong resolutions
|
|
206
|
-
- Commit API tokens
|
|
207
|
-
|
|
208
|
-
## Configuration
|
|
209
|
-
|
|
210
|
-
```json
|
|
211
|
-
{
|
|
212
|
-
"mcpServers": {
|
|
213
|
-
"figma": {
|
|
214
|
-
"command": "npx",
|
|
215
|
-
"args": ["-y", "@modelcontextprotocol/server-figma"],
|
|
216
|
-
"env": {
|
|
217
|
-
"FIGMA_ACCESS_TOKEN": "your-personal-access-token"
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
```
|
|
223
|
-
|
|
224
|
-
**Setup:**
|
|
225
|
-
1. Generate personal access token: Account Settings → Personal Access Tokens
|
|
226
|
-
2. Grant appropriate scopes (file content, comments)
|
|
227
|
-
3. Store token securely
|
|
228
|
-
|
|
229
|
-
## Integration Patterns
|
|
230
|
-
|
|
231
|
-
### CI/CD Asset Pipeline
|
|
232
|
-
```bash
|
|
233
|
-
# Export icons on every design update
|
|
234
|
-
figma-export --file-key=$FIGMA_FILE --format=svg --output=src/assets/icons
|
|
235
|
-
|
|
236
|
-
# Optimize SVGs
|
|
237
|
-
svgo --folder src/assets/icons
|
|
238
|
-
|
|
239
|
-
# Commit if changes detected
|
|
240
|
-
git diff --quiet src/assets/icons || git commit -m "chore: Update design assets"
|
|
241
|
-
```
|
|
242
|
-
|
|
243
|
-
### Design-to-Code Workflow
|
|
244
|
-
```typescript
|
|
245
|
-
// 1. Detect design changes
|
|
246
|
-
const currentVersion = await figma.getFile({ file_key: fileKey })
|
|
247
|
-
const lastVersion = loadLastProcessedVersion()
|
|
248
|
-
|
|
249
|
-
if (currentVersion.version !== lastVersion) {
|
|
250
|
-
// 2. Export updated components
|
|
251
|
-
await exportComponents(fileKey)
|
|
252
|
-
|
|
253
|
-
// 3. Generate code
|
|
254
|
-
await generateComponentCode()
|
|
255
|
-
|
|
256
|
-
// 4. Run tests
|
|
257
|
-
await runVisualRegressionTests()
|
|
258
|
-
|
|
259
|
-
// 5. Create PR if tests pass
|
|
260
|
-
if (testsPass) {
|
|
261
|
-
await createPullRequest('Update components from Figma')
|
|
262
|
-
}
|
|
263
|
-
}
|
|
264
|
-
```
|
|
265
|
-
|
|
266
|
-
<!-- FIGMA:END -->
|
|
267
|
-
|
|
@@ -1,328 +0,0 @@
|
|
|
1
|
-
<!-- GRAFANA:START -->
|
|
2
|
-
# Grafana MCP Instructions
|
|
3
|
-
|
|
4
|
-
**CRITICAL**: Use MCP Grafana for metrics visualization, alerting, and observability dashboards.
|
|
5
|
-
|
|
6
|
-
## Core Operations
|
|
7
|
-
|
|
8
|
-
### Dashboard Management
|
|
9
|
-
```typescript
|
|
10
|
-
// Get dashboard
|
|
11
|
-
grafana.dashboards.getDashboardByUid({ uid: 'dashboard-uid' })
|
|
12
|
-
|
|
13
|
-
// Create dashboard
|
|
14
|
-
grafana.dashboards.postDashboard({
|
|
15
|
-
dashboard: {
|
|
16
|
-
title: 'Application Metrics',
|
|
17
|
-
tags: ['production', 'api'],
|
|
18
|
-
timezone: 'browser',
|
|
19
|
-
panels: [
|
|
20
|
-
{
|
|
21
|
-
title: 'Request Rate',
|
|
22
|
-
type: 'graph',
|
|
23
|
-
targets: [{ expr: 'rate(http_requests_total[5m])' }]
|
|
24
|
-
}
|
|
25
|
-
]
|
|
26
|
-
},
|
|
27
|
-
overwrite: false
|
|
28
|
-
})
|
|
29
|
-
|
|
30
|
-
// Update dashboard
|
|
31
|
-
grafana.dashboards.postDashboard({
|
|
32
|
-
dashboard: modifiedDashboard,
|
|
33
|
-
overwrite: true
|
|
34
|
-
})
|
|
35
|
-
|
|
36
|
-
// Delete dashboard
|
|
37
|
-
grafana.dashboards.deleteDashboardByUid({ uid: 'dashboard-uid' })
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
### Data Sources
|
|
41
|
-
```typescript
|
|
42
|
-
// Get data sources
|
|
43
|
-
grafana.datasources.getDataSources()
|
|
44
|
-
|
|
45
|
-
// Add data source
|
|
46
|
-
grafana.datasources.addDataSource({
|
|
47
|
-
name: 'Prometheus',
|
|
48
|
-
type: 'prometheus',
|
|
49
|
-
url: 'http://prometheus:9090',
|
|
50
|
-
access: 'proxy',
|
|
51
|
-
isDefault: true
|
|
52
|
-
})
|
|
53
|
-
|
|
54
|
-
// Query data source
|
|
55
|
-
grafana.datasources.queryDataSource({
|
|
56
|
-
datasourceId: 1,
|
|
57
|
-
from: Date.now() - 3600000, // 1 hour ago
|
|
58
|
-
to: Date.now(),
|
|
59
|
-
queries: [
|
|
60
|
-
{ expr: 'up', refId: 'A' }
|
|
61
|
-
]
|
|
62
|
-
})
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
### Alerts
|
|
66
|
-
```typescript
|
|
67
|
-
// Get alerts
|
|
68
|
-
grafana.alerting.getAlerts({ state: 'alerting' })
|
|
69
|
-
|
|
70
|
-
// Create alert rule
|
|
71
|
-
grafana.alerting.postAlertRule({
|
|
72
|
-
title: 'High Error Rate',
|
|
73
|
-
condition: 'A',
|
|
74
|
-
data: [
|
|
75
|
-
{
|
|
76
|
-
refId: 'A',
|
|
77
|
-
queryType: '',
|
|
78
|
-
relativeTimeRange: { from: 600, to: 0 },
|
|
79
|
-
datasourceUid: 'prometheus-uid',
|
|
80
|
-
model: {
|
|
81
|
-
expr: 'rate(http_errors_total[5m]) > 0.05'
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
],
|
|
85
|
-
noDataState: 'NoData',
|
|
86
|
-
execErrState: 'Alerting',
|
|
87
|
-
for: '5m',
|
|
88
|
-
annotations: {
|
|
89
|
-
description: 'Error rate exceeded 5%'
|
|
90
|
-
},
|
|
91
|
-
labels: { severity: 'high' }
|
|
92
|
-
})
|
|
93
|
-
|
|
94
|
-
// Pause alert
|
|
95
|
-
grafana.alerting.pauseAlertRule({ uid: 'alert-uid', paused: true })
|
|
96
|
-
```
|
|
97
|
-
|
|
98
|
-
### Annotations
|
|
99
|
-
```typescript
|
|
100
|
-
// Create annotation
|
|
101
|
-
grafana.annotations.postAnnotation({
|
|
102
|
-
dashboardUid: 'dashboard-uid',
|
|
103
|
-
time: Date.now(),
|
|
104
|
-
timeEnd: Date.now(),
|
|
105
|
-
tags: ['deployment'],
|
|
106
|
-
text: 'Deployed version 1.2.0'
|
|
107
|
-
})
|
|
108
|
-
|
|
109
|
-
// Get annotations
|
|
110
|
-
grafana.annotations.getAnnotations({
|
|
111
|
-
from: Date.now() - 86400000, // Last 24h
|
|
112
|
-
to: Date.now(),
|
|
113
|
-
tags: ['deployment']
|
|
114
|
-
})
|
|
115
|
-
```
|
|
116
|
-
|
|
117
|
-
### Organizations & Users
|
|
118
|
-
```typescript
|
|
119
|
-
// Get organization
|
|
120
|
-
grafana.orgs.getOrgByName({ orgName: 'Main Org' })
|
|
121
|
-
|
|
122
|
-
// Add user
|
|
123
|
-
grafana.users.createUser({
|
|
124
|
-
email: 'user@example.com',
|
|
125
|
-
login: 'username',
|
|
126
|
-
password: 'secure-password',
|
|
127
|
-
name: 'User Name'
|
|
128
|
-
})
|
|
129
|
-
|
|
130
|
-
// Update user permissions
|
|
131
|
-
grafana.org.updateOrgUser({
|
|
132
|
-
userId: 123,
|
|
133
|
-
role: 'Editor' // Viewer, Editor, Admin
|
|
134
|
-
})
|
|
135
|
-
```
|
|
136
|
-
|
|
137
|
-
## Common Patterns
|
|
138
|
-
|
|
139
|
-
### Deployment Tracking
|
|
140
|
-
```typescript
|
|
141
|
-
// Mark deployment on dashboard
|
|
142
|
-
await grafana.annotations.postAnnotation({
|
|
143
|
-
time: Date.now(),
|
|
144
|
-
tags: ['deployment', 'production'],
|
|
145
|
-
text: `Deployed ${process.env.GIT_SHA}`,
|
|
146
|
-
dashboardUid: 'main-dashboard'
|
|
147
|
-
})
|
|
148
|
-
|
|
149
|
-
// Create snapshot after deployment
|
|
150
|
-
const snapshot = await grafana.snapshots.createDashboardSnapshot({
|
|
151
|
-
dashboard: dashboard,
|
|
152
|
-
name: `Production Metrics - ${new Date().toISOString()}`,
|
|
153
|
-
expires: 86400 // 24 hours
|
|
154
|
-
})
|
|
155
|
-
```
|
|
156
|
-
|
|
157
|
-
### Automated Dashboard Creation
|
|
158
|
-
```typescript
|
|
159
|
-
// Create dashboard for new service
|
|
160
|
-
async function createServiceDashboard(serviceName) {
|
|
161
|
-
const dashboard = {
|
|
162
|
-
title: `${serviceName} Metrics`,
|
|
163
|
-
tags: ['microservices', serviceName],
|
|
164
|
-
panels: [
|
|
165
|
-
{
|
|
166
|
-
title: 'Request Rate',
|
|
167
|
-
type: 'graph',
|
|
168
|
-
targets: [{
|
|
169
|
-
expr: `rate(http_requests_total{service="${serviceName}"}[5m])`
|
|
170
|
-
}]
|
|
171
|
-
},
|
|
172
|
-
{
|
|
173
|
-
title: 'Error Rate',
|
|
174
|
-
type: 'graph',
|
|
175
|
-
targets: [{
|
|
176
|
-
expr: `rate(http_errors_total{service="${serviceName}"}[5m])`
|
|
177
|
-
}]
|
|
178
|
-
},
|
|
179
|
-
{
|
|
180
|
-
title: 'Response Time (p95)',
|
|
181
|
-
type: 'graph',
|
|
182
|
-
targets: [{
|
|
183
|
-
expr: `histogram_quantile(0.95, rate(http_duration_seconds_bucket{service="${serviceName}"}[5m]))`
|
|
184
|
-
}]
|
|
185
|
-
}
|
|
186
|
-
]
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
return await grafana.dashboards.postDashboard({
|
|
190
|
-
dashboard,
|
|
191
|
-
overwrite: false
|
|
192
|
-
})
|
|
193
|
-
}
|
|
194
|
-
```
|
|
195
|
-
|
|
196
|
-
### Alert Management
|
|
197
|
-
```typescript
|
|
198
|
-
// Check for firing alerts
|
|
199
|
-
const alerts = await grafana.alerting.getAlerts({ state: 'alerting' })
|
|
200
|
-
|
|
201
|
-
if (alerts.length > 0) {
|
|
202
|
-
console.log(`${alerts.length} alerts firing:`)
|
|
203
|
-
|
|
204
|
-
for (const alert of alerts) {
|
|
205
|
-
console.log(`- ${alert.labels.alertname}: ${alert.annotations.description}`)
|
|
206
|
-
|
|
207
|
-
// Create incident ticket
|
|
208
|
-
await jira.issues.createIssue({
|
|
209
|
-
fields: {
|
|
210
|
-
project: { key: 'OPS' },
|
|
211
|
-
summary: `Alert: ${alert.labels.alertname}`,
|
|
212
|
-
description: alert.annotations.description,
|
|
213
|
-
issuetype: { name: 'Incident' },
|
|
214
|
-
priority: { name: alert.labels.severity === 'critical' ? 'Highest' : 'High' }
|
|
215
|
-
}
|
|
216
|
-
})
|
|
217
|
-
}
|
|
218
|
-
}
|
|
219
|
-
```
|
|
220
|
-
|
|
221
|
-
### Metrics Reporting
|
|
222
|
-
```typescript
|
|
223
|
-
// Generate daily metrics report
|
|
224
|
-
async function generateDailyReport() {
|
|
225
|
-
const datasourceId = 1 // Prometheus
|
|
226
|
-
const from = Date.now() - 86400000 // 24h ago
|
|
227
|
-
const to = Date.now()
|
|
228
|
-
|
|
229
|
-
// Query metrics
|
|
230
|
-
const requestRate = await grafana.datasources.queryDataSource({
|
|
231
|
-
datasourceId,
|
|
232
|
-
from,
|
|
233
|
-
to,
|
|
234
|
-
queries: [{ expr: 'sum(rate(http_requests_total[24h]))', refId: 'A' }]
|
|
235
|
-
})
|
|
236
|
-
|
|
237
|
-
const errorRate = await grafana.datasources.queryDataSource({
|
|
238
|
-
datasourceId,
|
|
239
|
-
from,
|
|
240
|
-
to,
|
|
241
|
-
queries: [{ expr: 'sum(rate(http_errors_total[24h]))', refId: 'A' }]
|
|
242
|
-
})
|
|
243
|
-
|
|
244
|
-
// Create report
|
|
245
|
-
const report = {
|
|
246
|
-
date: new Date().toISOString(),
|
|
247
|
-
totalRequests: requestRate.results.A.frames[0].data.values[1][0],
|
|
248
|
-
totalErrors: errorRate.results.A.frames[0].data.values[1][0],
|
|
249
|
-
errorPercentage: (totalErrors / totalRequests * 100).toFixed(2)
|
|
250
|
-
}
|
|
251
|
-
|
|
252
|
-
// Post to Confluence/Notion
|
|
253
|
-
await notion.pages.create({
|
|
254
|
-
parent: { database_id: reportsDbId },
|
|
255
|
-
properties: {
|
|
256
|
-
'Title': { title: [{ text: { content: `Daily Metrics - ${report.date}` } }] },
|
|
257
|
-
'Requests': { number: report.totalRequests },
|
|
258
|
-
'Errors': { number: report.totalErrors },
|
|
259
|
-
'Error Rate': { number: parseFloat(report.errorPercentage) }
|
|
260
|
-
}
|
|
261
|
-
})
|
|
262
|
-
}
|
|
263
|
-
```
|
|
264
|
-
|
|
265
|
-
## Best Practices
|
|
266
|
-
|
|
267
|
-
✅ **DO:**
|
|
268
|
-
- Use dashboard folders for organization
|
|
269
|
-
- Tag dashboards appropriately
|
|
270
|
-
- Set up proper alert thresholds
|
|
271
|
-
- Use variables for flexibility
|
|
272
|
-
- Create snapshots before changes
|
|
273
|
-
- Document dashboard purpose
|
|
274
|
-
- Use templating for multi-instance dashboards
|
|
275
|
-
|
|
276
|
-
❌ **DON'T:**
|
|
277
|
-
- Create duplicate dashboards
|
|
278
|
-
- Set alerts without testing
|
|
279
|
-
- Ignore alert fatigue
|
|
280
|
-
- Hardcode dashboard IDs
|
|
281
|
-
- Skip dashboard backups
|
|
282
|
-
- Over-complicate queries
|
|
283
|
-
|
|
284
|
-
## Configuration
|
|
285
|
-
|
|
286
|
-
```json
|
|
287
|
-
{
|
|
288
|
-
"mcpServers": {
|
|
289
|
-
"grafana": {
|
|
290
|
-
"command": "npx",
|
|
291
|
-
"args": ["-y", "@modelcontextprotocol/server-grafana"],
|
|
292
|
-
"env": {
|
|
293
|
-
"GRAFANA_URL": "http://grafana:3000",
|
|
294
|
-
"GRAFANA_API_KEY": "your-api-key",
|
|
295
|
-
"GRAFANA_ORG_ID": "1"
|
|
296
|
-
}
|
|
297
|
-
}
|
|
298
|
-
}
|
|
299
|
-
}
|
|
300
|
-
```
|
|
301
|
-
|
|
302
|
-
**Setup:**
|
|
303
|
-
1. Create API key: Configuration → API Keys → Add API key
|
|
304
|
-
2. Grant appropriate permissions (Admin for management, Viewer for read-only)
|
|
305
|
-
3. Store securely
|
|
306
|
-
|
|
307
|
-
## Integration with CI/CD
|
|
308
|
-
|
|
309
|
-
```typescript
|
|
310
|
-
// Add deployment annotation on successful deploy
|
|
311
|
-
if (deploymentSuccess) {
|
|
312
|
-
await grafana.annotations.postAnnotation({
|
|
313
|
-
time: Date.now(),
|
|
314
|
-
tags: ['deployment', process.env.ENVIRONMENT],
|
|
315
|
-
text: `Deployed ${process.env.GIT_SHA} to ${process.env.ENVIRONMENT}`,
|
|
316
|
-
dashboardUid: process.env.GRAFANA_DASHBOARD_UID
|
|
317
|
-
})
|
|
318
|
-
}
|
|
319
|
-
|
|
320
|
-
// Check alerts before deployment
|
|
321
|
-
const alerts = await grafana.alerting.getAlerts({ state: 'alerting' })
|
|
322
|
-
if (alerts.length > 0) {
|
|
323
|
-
console.warn('⚠️ Active alerts detected. Deployment may be risky.')
|
|
324
|
-
}
|
|
325
|
-
```
|
|
326
|
-
|
|
327
|
-
<!-- GRAFANA:END -->
|
|
328
|
-
|
|
@@ -1,126 +0,0 @@
|
|
|
1
|
-
<!-- MEMORY:START -->
|
|
2
|
-
## Persistent Memory System
|
|
3
|
-
|
|
4
|
-
The rulebook memory system provides persistent context across AI sessions using hybrid search (BM25 keyword + HNSW vector) with zero native dependencies.
|
|
5
|
-
|
|
6
|
-
### 3-Layer Search Pattern (Token-Efficient)
|
|
7
|
-
|
|
8
|
-
**Layer 1 — Compact Search**: Get brief results to scan relevance.
|
|
9
|
-
```
|
|
10
|
-
rulebook_memory_search({ query: "authentication bug", mode: "hybrid", limit: 10 })
|
|
11
|
-
→ Returns: { id, title, type, score, matchType, createdAt } per result (~50 tokens each)
|
|
12
|
-
```
|
|
13
|
-
|
|
14
|
-
**Layer 2 — Timeline**: Get chronological context around a memory.
|
|
15
|
-
```
|
|
16
|
-
rulebook_memory_timeline({ memoryId: "abc-123", window: 5 })
|
|
17
|
-
→ Returns: 5 memories before + anchor + 5 memories after (~200 tokens each)
|
|
18
|
-
```
|
|
19
|
-
|
|
20
|
-
**Layer 3 — Full Details**: Get complete content only for selected memories.
|
|
21
|
-
```
|
|
22
|
-
rulebook_memory_get({ ids: ["abc-123", "def-456"] })
|
|
23
|
-
→ Returns: Full memory objects with content (~500-1000 tokens each)
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
### Memory Structure
|
|
27
|
-
|
|
28
|
-
Each memory contains:
|
|
29
|
-
- **id**: Unique identifier
|
|
30
|
-
- **type**: Memory type (see below)
|
|
31
|
-
- **title**: Short title (80 chars)
|
|
32
|
-
- **summary**: Rich contextual summary with key concepts, decisions, patterns, gotchas (auto-extracted)
|
|
33
|
-
- **content**: Full content
|
|
34
|
-
- **tags**: Searchable tags for categorization
|
|
35
|
-
- **createdAt/updatedAt/accessedAt**: Timestamps for LRU tracking
|
|
36
|
-
|
|
37
|
-
### Memory Types
|
|
38
|
-
|
|
39
|
-
- **bugfix**: Bug fixes, error resolutions — save root cause and solution
|
|
40
|
-
- **feature**: New features, additions — save design approach and patterns
|
|
41
|
-
- **refactor**: Code restructuring — save architectural reasoning
|
|
42
|
-
- **decision**: Architectural decisions (protected from eviction) — save why this choice
|
|
43
|
-
- **discovery**: Insights and learnings — save patterns and gotchas
|
|
44
|
-
- **change**: Updates and modifications — save impact and reasoning
|
|
45
|
-
- **observation**: General observations — save insights worth preserving
|
|
46
|
-
|
|
47
|
-
### What to Capture in Summaries
|
|
48
|
-
|
|
49
|
-
Effective summaries include:
|
|
50
|
-
1. **Problem/Context**: What was being solved
|
|
51
|
-
2. **Approach**: How it was solved
|
|
52
|
-
3. **Key Decision**: Why this approach
|
|
53
|
-
4. **Pattern**: Reusable solution discovered
|
|
54
|
-
5. **Gotcha**: Edge case or limitation found
|
|
55
|
-
6. **Result**: Outcome or impact
|
|
56
|
-
|
|
57
|
-
**Example Summary**:
|
|
58
|
-
```
|
|
59
|
-
"Implemented OAuth token refresh with 30-min expiry. Decision: Used interceptor middleware for transparent refresh (avoids scattered retry logic). Gotcha: Tokens expire silently - must check response headers before retrying. Pattern: Double-request pattern for simultaneous requests during refresh."
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
### CLI Commands
|
|
63
|
-
|
|
64
|
-
```bash
|
|
65
|
-
# Search with hybrid BM25+Vector
|
|
66
|
-
rulebook memory search "authentication bug" # Returns top results with summaries
|
|
67
|
-
rulebook memory search "oauth" --mode bm25 # BM25 keyword-only search
|
|
68
|
-
rulebook memory search "token" --mode vector # Vector semantic search
|
|
69
|
-
rulebook memory search "api" --type feature # Filter by memory type
|
|
70
|
-
|
|
71
|
-
# Save memories (summary auto-extracted from content)
|
|
72
|
-
rulebook memory save "Fixed OAuth token refresh..." --type feature --title "OAuth Implementation"
|
|
73
|
-
rulebook memory save "Decided to use sql.js for zero-dependency..." --type decision --title "DB Choice" --tags architecture,database
|
|
74
|
-
|
|
75
|
-
# Timeline and details
|
|
76
|
-
rulebook memory timeline --memoryId abc-123 # See 5 before/after
|
|
77
|
-
rulebook memory get abc-123 def-456 # Full details for specific memories
|
|
78
|
-
|
|
79
|
-
# Management
|
|
80
|
-
rulebook memory list --limit 10 # Recent memories
|
|
81
|
-
rulebook memory stats # Database statistics & health
|
|
82
|
-
rulebook memory cleanup --force # Force cache eviction
|
|
83
|
-
rulebook memory export --format json # Export all memories
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
### Best Practices for Rich Memories
|
|
87
|
-
|
|
88
|
-
1. **Save immediately after learning**: Capture insights while fresh
|
|
89
|
-
2. **Use memory types correctly**: Features vs decisions vs discoveries
|
|
90
|
-
3. **Include context in content**: Don't just save code, save reasoning
|
|
91
|
-
4. **Add relevant tags**: Enable discovery for related work
|
|
92
|
-
5. **Reference past memories**: Include memory IDs when related
|
|
93
|
-
|
|
94
|
-
**Workflow**:
|
|
95
|
-
```bash
|
|
96
|
-
# Before implementing: search for similar work
|
|
97
|
-
rulebook memory search "your feature" --mode hybrid
|
|
98
|
-
|
|
99
|
-
# During implementation: save discoveries
|
|
100
|
-
rulebook memory save "Pattern discovered: use X instead of Y because Z" --type discovery --title "Pattern Name"
|
|
101
|
-
|
|
102
|
-
# After implementation: save complete solution
|
|
103
|
-
rulebook memory save "Full implementation details, gotchas, test cases..." --type feature --title "Feature Name" --tags relevant,tags
|
|
104
|
-
|
|
105
|
-
# Next session: reference past work
|
|
106
|
-
rulebook memory search "feature name" --type feature
|
|
107
|
-
# → Displays summaries automatically, can drill down to full details
|
|
108
|
-
```
|
|
109
|
-
|
|
110
|
-
### Configuration (.rulebook)
|
|
111
|
-
|
|
112
|
-
```json
|
|
113
|
-
{
|
|
114
|
-
"memory": {
|
|
115
|
-
"enabled": true,
|
|
116
|
-
"dbPath": ".rulebook-memory/memory.db",
|
|
117
|
-
"maxSizeBytes": 524288000,
|
|
118
|
-
"vectorDimensions": 256
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
```
|
|
122
|
-
|
|
123
|
-
### Privacy
|
|
124
|
-
|
|
125
|
-
Content between `<private>` and `</private>` tags is automatically stripped before storage.
|
|
126
|
-
<!-- MEMORY:END -->
|