@hivehub/rulebook 5.4.1 → 5.5.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.
- package/.claude/commands/analysis.md +35 -35
- package/.claude/commands/continue.md +33 -33
- package/.claude/commands/ralph-config.md +112 -112
- package/.claude/commands/ralph-history.md +110 -110
- package/.claude/commands/ralph-init.md +72 -72
- package/.claude/commands/ralph-pause-resume.md +105 -105
- package/.claude/commands/ralph-run.md +101 -101
- package/.claude/commands/ralph-status.md +76 -76
- package/.claude/commands/rulebook-decision-create.md +55 -55
- package/.claude/commands/rulebook-decision-list.md +15 -15
- package/.claude/commands/rulebook-knowledge-add.md +41 -41
- package/.claude/commands/rulebook-knowledge-list.md +15 -15
- package/.claude/commands/rulebook-learn-capture.md +48 -48
- package/.claude/commands/rulebook-learn-list.md +13 -13
- package/.claude/commands/rulebook-memory-save.md +48 -48
- package/.claude/commands/rulebook-memory-search.md +47 -47
- package/.claude/commands/rulebook-task-apply.md +67 -67
- package/.claude/commands/rulebook-task-archive.md +94 -94
- package/.claude/commands/rulebook-task-create.md +93 -93
- package/.claude/commands/rulebook-task-list.md +42 -42
- package/.claude/commands/rulebook-task-show.md +52 -52
- package/.claude/commands/rulebook-task-validate.md +53 -53
- package/.claude-plugin/marketplace.json +28 -28
- package/.claude-plugin/plugin.json +8 -8
- package/README.md +394 -393
- package/dist/core/generator.d.ts +1 -1
- package/dist/core/generator.d.ts.map +1 -1
- package/dist/core/generator.js +1 -0
- package/dist/core/generator.js.map +1 -1
- package/dist/hooks/terse-activate.d.ts +59 -0
- package/dist/hooks/terse-activate.d.ts.map +1 -0
- package/dist/hooks/terse-activate.js +149 -0
- package/dist/hooks/terse-activate.js.map +1 -0
- package/dist/hooks/terse-config.d.ts +51 -0
- package/dist/hooks/terse-config.d.ts.map +1 -0
- package/dist/hooks/terse-config.js +130 -0
- package/dist/hooks/terse-config.js.map +1 -0
- package/dist/hooks/terse-mode-tracker.d.ts +78 -0
- package/dist/hooks/terse-mode-tracker.d.ts.map +1 -0
- package/dist/hooks/terse-mode-tracker.js +213 -0
- package/dist/hooks/terse-mode-tracker.js.map +1 -0
- package/dist/index.js +0 -0
- package/dist/mcp/rulebook-server.js +0 -0
- package/package.json +21 -22
- package/templates/agents/accessibility-reviewer.md +43 -43
- package/templates/agents/api-designer.md +42 -42
- 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/compiler/codegen-debugger.md +34 -34
- package/templates/agents/compiler/stdlib-engineer.md +28 -28
- package/templates/agents/compiler/test-coverage-guardian.md +31 -31
- package/templates/agents/context-intelligence.md +52 -52
- package/templates/agents/database-architect.md +41 -41
- package/templates/agents/devops-engineer.md +42 -42
- package/templates/agents/docs-writer.md +38 -38
- package/templates/agents/game-engine/cpp-core-expert.md +35 -35
- package/templates/agents/game-engine/render-engineer.md +22 -22
- package/templates/agents/game-engine/shader-engineer.md +38 -38
- package/templates/agents/game-engine/systems-integration.md +43 -43
- package/templates/agents/generic/code-reviewer.md +41 -41
- package/templates/agents/generic/docs-writer.md +25 -25
- package/templates/agents/generic/project-manager.md +36 -36
- package/templates/agents/generic/researcher.md +34 -34
- package/templates/agents/generic/test-engineer.md +41 -41
- package/templates/agents/i18n-engineer.md +42 -42
- package/templates/agents/implementer.md +42 -42
- package/templates/agents/migration-engineer.md +42 -42
- package/templates/agents/mobile/platform-specialist.md +22 -22
- package/templates/agents/mobile/ui-engineer.md +22 -22
- package/templates/agents/performance-engineer.md +49 -49
- package/templates/agents/refactoring-agent.md +41 -41
- 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/agents/ux-reviewer.md +43 -43
- package/templates/agents/web-app/api-designer.md +22 -22
- package/templates/agents/web-app/backend-engineer.md +30 -30
- package/templates/agents/web-app/database-engineer.md +22 -22
- package/templates/agents/web-app/frontend-engineer.md +29 -29
- package/templates/agents/web-app/security-reviewer.md +32 -32
- package/templates/ci/rulebook-review.yml +26 -26
- package/templates/cli/AIDER.md +49 -49
- package/templates/cli/AMAZON_Q.md +25 -25
- package/templates/cli/AUGGIE.md +32 -32
- package/templates/cli/CLAUDE.md +117 -117
- package/templates/cli/CLINE.md +99 -99
- package/templates/cli/CODEBUDDY.md +20 -20
- package/templates/cli/CODEIUM.md +20 -20
- package/templates/cli/CODEX.md +21 -21
- package/templates/cli/CONTINUE.md +34 -34
- package/templates/cli/CURSOR_CLI.md +62 -62
- package/templates/cli/FACTORY.md +18 -18
- package/templates/cli/GEMINI.md +35 -35
- package/templates/cli/KILOCODE.md +18 -18
- package/templates/cli/OPENCODE.md +18 -18
- 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 +48 -48
- package/templates/commands/rulebook-learn-list.md +13 -13
- package/templates/commands/rulebook-memory-save.md +48 -48
- package/templates/commands/rulebook-memory-search.md +47 -47
- 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 +26 -1
- package/templates/core/AGENTS_OVERRIDE.md +16 -16
- package/templates/core/AGENT_AUTOMATION.md +296 -296
- package/templates/core/CLAUDE_MD_v2.md +90 -71
- 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/RALPH.md +471 -471
- package/templates/core/RULEBOOK.md +1947 -1947
- package/templates/core/TIER1_PROHIBITIONS.md +154 -154
- package/templates/core/TOKEN_OPTIMIZATION.md +49 -49
- package/templates/frameworks/ANGULAR.md +36 -36
- package/templates/frameworks/DJANGO.md +83 -83
- package/templates/frameworks/ELECTRON.md +147 -147
- package/templates/frameworks/FLASK.md +38 -38
- package/templates/frameworks/FLUTTER.md +55 -55
- package/templates/frameworks/JQUERY.md +32 -32
- package/templates/frameworks/LARAVEL.md +38 -38
- package/templates/frameworks/NESTJS.md +43 -43
- package/templates/frameworks/NEXTJS.md +127 -127
- package/templates/frameworks/NUXT.md +40 -40
- package/templates/frameworks/RAILS.md +66 -66
- package/templates/frameworks/REACT.md +38 -38
- package/templates/frameworks/REACT_NATIVE.md +47 -47
- package/templates/frameworks/SPRING.md +39 -39
- package/templates/frameworks/SYMFONY.md +36 -36
- package/templates/frameworks/VUE.md +36 -36
- package/templates/frameworks/ZEND.md +35 -35
- 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/check-context-and-handoff.ps1 +58 -58
- package/templates/hooks/check-context-and-handoff.sh +76 -76
- package/templates/hooks/enforce-team-for-background-agents.ps1 +63 -63
- package/templates/hooks/enforce-team-for-background-agents.sh +55 -55
- package/templates/hooks/on-compact-reinject.sh +34 -34
- package/templates/hooks/resume-from-handoff.ps1 +40 -40
- package/templates/hooks/resume-from-handoff.sh +61 -61
- package/templates/hooks/terse-activate.ps1 +143 -143
- package/templates/hooks/terse-activate.sh +197 -197
- package/templates/hooks/terse-mode-tracker.ps1 +153 -153
- package/templates/hooks/terse-mode-tracker.sh +187 -187
- package/templates/ides/CONTINUE_RULES.md +16 -16
- package/templates/ides/COPILOT.md +37 -37
- package/templates/ides/COPILOT_INSTRUCTIONS.md +23 -23
- package/templates/ides/CURSOR.md +43 -43
- package/templates/ides/GEMINI_RULES.md +17 -17
- package/templates/ides/JETBRAINS_AI.md +35 -35
- package/templates/ides/REPLIT.md +36 -36
- package/templates/ides/TABNINE.md +29 -29
- package/templates/ides/VSCODE.md +40 -40
- package/templates/ides/WINDSURF.md +36 -36
- package/templates/ides/WINDSURF_RULES.md +14 -14
- package/templates/ides/ZED.md +32 -32
- package/templates/ides/cursor-mdc/go.mdc +24 -24
- package/templates/ides/cursor-mdc/python.mdc +24 -24
- package/templates/ides/cursor-mdc/quality.mdc +25 -25
- package/templates/ides/cursor-mdc/ralph.mdc +39 -39
- package/templates/ides/cursor-mdc/rulebook.mdc +38 -38
- package/templates/ides/cursor-mdc/rust.mdc +24 -24
- package/templates/ides/cursor-mdc/typescript.mdc +25 -25
- 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/ATLASSIAN.md +255 -255
- package/templates/modules/CONTEXT7.md +54 -54
- package/templates/modules/FIGMA.md +267 -267
- package/templates/modules/GITHUB_MCP.md +64 -64
- package/templates/modules/GRAFANA.md +328 -328
- package/templates/modules/MEMORY.md +126 -126
- package/templates/modules/NOTION.md +247 -247
- 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/ralph/ralph-history.bat +4 -4
- package/templates/ralph/ralph-history.sh +5 -5
- package/templates/ralph/ralph-init.bat +5 -5
- package/templates/ralph/ralph-init.sh +5 -5
- package/templates/ralph/ralph-pause.bat +5 -5
- package/templates/ralph/ralph-pause.sh +5 -5
- package/templates/ralph/ralph-run.bat +5 -5
- package/templates/ralph/ralph-run.sh +5 -5
- package/templates/ralph/ralph-status.bat +4 -4
- package/templates/ralph/ralph-status.sh +5 -5
- package/templates/rules/consult-analysis-before-implementing.md +23 -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/services/AZURE_BLOB.md +184 -184
- package/templates/services/CASSANDRA.md +239 -239
- package/templates/services/DATADOG.md +26 -26
- package/templates/services/DOCKER.md +124 -124
- package/templates/services/DOCKER_COMPOSE.md +168 -168
- package/templates/services/DYNAMODB.md +308 -308
- package/templates/services/ELASTICSEARCH.md +347 -347
- package/templates/services/GCS.md +178 -178
- package/templates/services/HELM.md +194 -194
- package/templates/services/INFLUXDB.md +265 -265
- package/templates/services/KAFKA.md +341 -341
- package/templates/services/KUBERNETES.md +208 -208
- package/templates/services/MARIADB.md +183 -183
- package/templates/services/MEMCACHED.md +242 -242
- package/templates/services/MINIO.md +201 -201
- package/templates/services/MONGODB.md +268 -268
- package/templates/services/MYSQL.md +358 -358
- package/templates/services/NEO4J.md +247 -247
- package/templates/services/OPENTELEMETRY.md +25 -25
- package/templates/services/ORACLE.md +290 -290
- package/templates/services/PINO.md +24 -24
- package/templates/services/POSTGRESQL.md +326 -326
- package/templates/services/PROMETHEUS.md +33 -33
- package/templates/services/RABBITMQ.md +286 -286
- package/templates/services/REDIS.md +292 -292
- package/templates/services/S3.md +298 -298
- package/templates/services/SENTRY.md +23 -23
- package/templates/services/SQLITE.md +294 -294
- package/templates/services/SQLSERVER.md +294 -294
- package/templates/services/WINSTON.md +30 -30
- package/templates/skills/cli/aider/SKILL.md +59 -59
- package/templates/skills/cli/amazon-q/SKILL.md +35 -35
- package/templates/skills/cli/auggie/SKILL.md +42 -42
- package/templates/skills/cli/claude/SKILL.md +42 -42
- package/templates/skills/cli/cline/SKILL.md +42 -42
- package/templates/skills/cli/codebuddy/SKILL.md +30 -30
- package/templates/skills/cli/codeium/SKILL.md +30 -30
- package/templates/skills/cli/codex/SKILL.md +31 -31
- package/templates/skills/cli/continue/SKILL.md +44 -44
- package/templates/skills/cli/cursor-cli/SKILL.md +38 -38
- package/templates/skills/cli/factory/SKILL.md +28 -28
- package/templates/skills/cli/gemini/SKILL.md +45 -45
- package/templates/skills/cli/kilocode/SKILL.md +28 -28
- package/templates/skills/cli/opencode/SKILL.md +28 -28
- 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/karpathy-guidelines/SKILL.md +93 -0
- 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/frameworks/angular/SKILL.md +46 -46
- package/templates/skills/frameworks/django/SKILL.md +93 -93
- package/templates/skills/frameworks/electron/SKILL.md +157 -157
- package/templates/skills/frameworks/flask/SKILL.md +48 -48
- package/templates/skills/frameworks/flutter/SKILL.md +65 -65
- package/templates/skills/frameworks/jquery/SKILL.md +42 -42
- package/templates/skills/frameworks/laravel/SKILL.md +48 -48
- package/templates/skills/frameworks/nestjs/SKILL.md +53 -53
- package/templates/skills/frameworks/nextjs/SKILL.md +137 -137
- package/templates/skills/frameworks/nuxt/SKILL.md +50 -50
- package/templates/skills/frameworks/rails/SKILL.md +76 -76
- package/templates/skills/frameworks/react/SKILL.md +48 -48
- package/templates/skills/frameworks/react-native/SKILL.md +57 -57
- package/templates/skills/frameworks/spring/SKILL.md +49 -49
- package/templates/skills/frameworks/symfony/SKILL.md +46 -46
- package/templates/skills/frameworks/vue/SKILL.md +46 -46
- package/templates/skills/frameworks/zend/SKILL.md +45 -45
- package/templates/skills/ides/copilot/SKILL.md +47 -47
- package/templates/skills/ides/cursor/SKILL.md +53 -53
- package/templates/skills/ides/jetbrains-ai/SKILL.md +45 -45
- package/templates/skills/ides/replit/SKILL.md +46 -46
- package/templates/skills/ides/tabnine/SKILL.md +39 -39
- package/templates/skills/ides/vscode/SKILL.md +50 -50
- package/templates/skills/ides/windsurf/SKILL.md +46 -46
- package/templates/skills/ides/zed/SKILL.md +42 -42
- 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/atlassian/SKILL.md +265 -265
- package/templates/skills/modules/context7/SKILL.md +64 -64
- package/templates/skills/modules/figma/SKILL.md +277 -277
- package/templates/skills/modules/github-mcp/SKILL.md +74 -74
- package/templates/skills/modules/grafana/SKILL.md +338 -338
- package/templates/skills/modules/memory/SKILL.md +73 -73
- package/templates/skills/modules/notion/SKILL.md +257 -257
- 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/templates/skills/services/azure-blob/SKILL.md +194 -194
- package/templates/skills/services/cassandra/SKILL.md +249 -249
- package/templates/skills/services/dynamodb/SKILL.md +318 -318
- package/templates/skills/services/elasticsearch/SKILL.md +357 -357
- package/templates/skills/services/gcs/SKILL.md +188 -188
- package/templates/skills/services/influxdb/SKILL.md +275 -275
- package/templates/skills/services/kafka/SKILL.md +351 -351
- package/templates/skills/services/mariadb/SKILL.md +193 -193
- package/templates/skills/services/memcached/SKILL.md +252 -252
- package/templates/skills/services/minio/SKILL.md +211 -211
- package/templates/skills/services/mongodb/SKILL.md +278 -278
- package/templates/skills/services/mysql/SKILL.md +368 -368
- package/templates/skills/services/neo4j/SKILL.md +257 -257
- package/templates/skills/services/oracle/SKILL.md +300 -300
- package/templates/skills/services/postgresql/SKILL.md +336 -336
- package/templates/skills/services/rabbitmq/SKILL.md +296 -296
- package/templates/skills/services/redis/SKILL.md +302 -302
- package/templates/skills/services/s3/SKILL.md +308 -308
- package/templates/skills/services/sqlite/SKILL.md +304 -304
- package/templates/skills/services/sqlserver/SKILL.md +304 -304
- package/templates/skills/workflows/ralph/SKILL.md +309 -309
- package/templates/skills/workflows/ralph/install.sh +87 -87
- package/templates/skills/workflows/ralph/manifest.json +158 -158
|
@@ -1,73 +1,73 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: "Memory"
|
|
3
|
-
description: "The rulebook memory system provides persistent context across AI sessions using hybrid search (BM25 keyword + HNSW vector) with zero native dependenci"
|
|
4
|
-
version: "1.0.0"
|
|
5
|
-
category: "modules"
|
|
6
|
-
author: "Rulebook"
|
|
7
|
-
tags: ["modules", "mcp"]
|
|
8
|
-
dependencies: []
|
|
9
|
-
conflicts: []
|
|
10
|
-
---
|
|
11
|
-
<!-- MEMORY:START -->
|
|
12
|
-
## Persistent Memory System
|
|
13
|
-
|
|
14
|
-
The rulebook memory system provides persistent context across AI sessions using hybrid search (BM25 keyword + HNSW vector) with zero native dependencies.
|
|
15
|
-
|
|
16
|
-
### 3-Layer Search Pattern (Token-Efficient)
|
|
17
|
-
|
|
18
|
-
**Layer 1 — Compact Search**: Get brief results to scan relevance.
|
|
19
|
-
```
|
|
20
|
-
rulebook_memory_search({ query: "authentication bug", mode: "hybrid", limit: 10 })
|
|
21
|
-
→ Returns: { id, title, type, score, matchType, createdAt } per result (~50 tokens each)
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
**Layer 2 — Timeline**: Get chronological context around a memory.
|
|
25
|
-
```
|
|
26
|
-
rulebook_memory_timeline({ memoryId: "abc-123", window: 5 })
|
|
27
|
-
→ Returns: 5 memories before + anchor + 5 memories after (~200 tokens each)
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
**Layer 3 — Full Details**: Get complete content only for selected memories.
|
|
31
|
-
```
|
|
32
|
-
rulebook_memory_get({ ids: ["abc-123", "def-456"] })
|
|
33
|
-
→ Returns: Full memory objects with content (~500-1000 tokens each)
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
### Memory Types
|
|
37
|
-
|
|
38
|
-
- **bugfix**: Bug fixes, error resolutions
|
|
39
|
-
- **feature**: New features, additions
|
|
40
|
-
- **refactor**: Code restructuring
|
|
41
|
-
- **decision**: Architectural decisions (protected from eviction)
|
|
42
|
-
- **discovery**: Insights and learnings
|
|
43
|
-
- **change**: Updates and modifications
|
|
44
|
-
- **observation**: General observations
|
|
45
|
-
|
|
46
|
-
### CLI Commands
|
|
47
|
-
|
|
48
|
-
```bash
|
|
49
|
-
rulebook memory search "authentication bug" # Hybrid search
|
|
50
|
-
rulebook memory save "Decided to use sql.js" --type decision --title "DB Choice"
|
|
51
|
-
rulebook memory list --limit 10 # Recent memories
|
|
52
|
-
rulebook memory stats # Database statistics
|
|
53
|
-
rulebook memory cleanup --force # Force eviction
|
|
54
|
-
rulebook memory export --format json # Export all memories
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
### Configuration (.rulebook)
|
|
58
|
-
|
|
59
|
-
```json
|
|
60
|
-
{
|
|
61
|
-
"memory": {
|
|
62
|
-
"enabled": true,
|
|
63
|
-
"dbPath": ".rulebook-memory/memory.db",
|
|
64
|
-
"maxSizeBytes": 524288000,
|
|
65
|
-
"vectorDimensions": 256
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
### Privacy
|
|
71
|
-
|
|
72
|
-
Content between `<private>` and `</private>` tags is automatically stripped before storage.
|
|
73
|
-
<!-- MEMORY:END -->
|
|
1
|
+
---
|
|
2
|
+
name: "Memory"
|
|
3
|
+
description: "The rulebook memory system provides persistent context across AI sessions using hybrid search (BM25 keyword + HNSW vector) with zero native dependenci"
|
|
4
|
+
version: "1.0.0"
|
|
5
|
+
category: "modules"
|
|
6
|
+
author: "Rulebook"
|
|
7
|
+
tags: ["modules", "mcp"]
|
|
8
|
+
dependencies: []
|
|
9
|
+
conflicts: []
|
|
10
|
+
---
|
|
11
|
+
<!-- MEMORY:START -->
|
|
12
|
+
## Persistent Memory System
|
|
13
|
+
|
|
14
|
+
The rulebook memory system provides persistent context across AI sessions using hybrid search (BM25 keyword + HNSW vector) with zero native dependencies.
|
|
15
|
+
|
|
16
|
+
### 3-Layer Search Pattern (Token-Efficient)
|
|
17
|
+
|
|
18
|
+
**Layer 1 — Compact Search**: Get brief results to scan relevance.
|
|
19
|
+
```
|
|
20
|
+
rulebook_memory_search({ query: "authentication bug", mode: "hybrid", limit: 10 })
|
|
21
|
+
→ Returns: { id, title, type, score, matchType, createdAt } per result (~50 tokens each)
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
**Layer 2 — Timeline**: Get chronological context around a memory.
|
|
25
|
+
```
|
|
26
|
+
rulebook_memory_timeline({ memoryId: "abc-123", window: 5 })
|
|
27
|
+
→ Returns: 5 memories before + anchor + 5 memories after (~200 tokens each)
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
**Layer 3 — Full Details**: Get complete content only for selected memories.
|
|
31
|
+
```
|
|
32
|
+
rulebook_memory_get({ ids: ["abc-123", "def-456"] })
|
|
33
|
+
→ Returns: Full memory objects with content (~500-1000 tokens each)
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
### Memory Types
|
|
37
|
+
|
|
38
|
+
- **bugfix**: Bug fixes, error resolutions
|
|
39
|
+
- **feature**: New features, additions
|
|
40
|
+
- **refactor**: Code restructuring
|
|
41
|
+
- **decision**: Architectural decisions (protected from eviction)
|
|
42
|
+
- **discovery**: Insights and learnings
|
|
43
|
+
- **change**: Updates and modifications
|
|
44
|
+
- **observation**: General observations
|
|
45
|
+
|
|
46
|
+
### CLI Commands
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
rulebook memory search "authentication bug" # Hybrid search
|
|
50
|
+
rulebook memory save "Decided to use sql.js" --type decision --title "DB Choice"
|
|
51
|
+
rulebook memory list --limit 10 # Recent memories
|
|
52
|
+
rulebook memory stats # Database statistics
|
|
53
|
+
rulebook memory cleanup --force # Force eviction
|
|
54
|
+
rulebook memory export --format json # Export all memories
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### Configuration (.rulebook)
|
|
58
|
+
|
|
59
|
+
```json
|
|
60
|
+
{
|
|
61
|
+
"memory": {
|
|
62
|
+
"enabled": true,
|
|
63
|
+
"dbPath": ".rulebook-memory/memory.db",
|
|
64
|
+
"maxSizeBytes": 524288000,
|
|
65
|
+
"vectorDimensions": 256
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
### Privacy
|
|
71
|
+
|
|
72
|
+
Content between `<private>` and `</private>` tags is automatically stripped before storage.
|
|
73
|
+
<!-- MEMORY:END -->
|
|
@@ -1,257 +1,257 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: "Notion"
|
|
3
|
-
description: "Use MCP Notion for documentation, task tracking, and knowledge management."
|
|
4
|
-
version: "1.0.0"
|
|
5
|
-
category: "modules"
|
|
6
|
-
author: "Rulebook"
|
|
7
|
-
tags: ["modules", "mcp"]
|
|
8
|
-
dependencies: []
|
|
9
|
-
conflicts: []
|
|
10
|
-
---
|
|
11
|
-
<!-- NOTION:START -->
|
|
12
|
-
# Notion MCP Instructions
|
|
13
|
-
|
|
14
|
-
**CRITICAL**: Use MCP Notion for documentation, task tracking, and knowledge management.
|
|
15
|
-
|
|
16
|
-
## Core Operations
|
|
17
|
-
|
|
18
|
-
### Database Queries
|
|
19
|
-
```typescript
|
|
20
|
-
// Query database
|
|
21
|
-
notion.databases.query({
|
|
22
|
-
database_id: 'database-id',
|
|
23
|
-
filter: {
|
|
24
|
-
property: 'Status',
|
|
25
|
-
select: { equals: 'In Progress' }
|
|
26
|
-
},
|
|
27
|
-
sorts: [{ property: 'Created', direction: 'descending' }]
|
|
28
|
-
})
|
|
29
|
-
|
|
30
|
-
// Get database
|
|
31
|
-
notion.databases.retrieve({ database_id: 'database-id' })
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
### Page Operations
|
|
35
|
-
```typescript
|
|
36
|
-
// Create page
|
|
37
|
-
notion.pages.create({
|
|
38
|
-
parent: { database_id: 'database-id' },
|
|
39
|
-
properties: {
|
|
40
|
-
'Name': { title: [{ text: { content: 'New Task' } }] },
|
|
41
|
-
'Status': { select: { name: 'To Do' } },
|
|
42
|
-
'Priority': { select: { name: 'High' } }
|
|
43
|
-
}
|
|
44
|
-
})
|
|
45
|
-
|
|
46
|
-
// Update page
|
|
47
|
-
notion.pages.update({
|
|
48
|
-
page_id: 'page-id',
|
|
49
|
-
properties: {
|
|
50
|
-
'Status': { select: { name: 'Done' } }
|
|
51
|
-
}
|
|
52
|
-
})
|
|
53
|
-
|
|
54
|
-
// Get page
|
|
55
|
-
notion.pages.retrieve({ page_id: 'page-id' })
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
### Block Operations
|
|
59
|
-
```typescript
|
|
60
|
-
// Get blocks
|
|
61
|
-
notion.blocks.children.list({ block_id: 'page-id' })
|
|
62
|
-
|
|
63
|
-
// Append blocks
|
|
64
|
-
notion.blocks.children.append({
|
|
65
|
-
block_id: 'page-id',
|
|
66
|
-
children: [
|
|
67
|
-
{
|
|
68
|
-
object: 'block',
|
|
69
|
-
type: 'heading_2',
|
|
70
|
-
heading_2: {
|
|
71
|
-
rich_text: [{ type: 'text', text: { content: 'Section Title' } }]
|
|
72
|
-
}
|
|
73
|
-
},
|
|
74
|
-
{
|
|
75
|
-
object: 'block',
|
|
76
|
-
type: 'paragraph',
|
|
77
|
-
paragraph: {
|
|
78
|
-
rich_text: [{ type: 'text', text: { content: 'Content here' } }]
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
]
|
|
82
|
-
})
|
|
83
|
-
```
|
|
84
|
-
|
|
85
|
-
### Search
|
|
86
|
-
```typescript
|
|
87
|
-
// Search all content
|
|
88
|
-
notion.search({
|
|
89
|
-
query: 'search term',
|
|
90
|
-
filter: { property: 'object', value: 'page' },
|
|
91
|
-
sort: { direction: 'descending', timestamp: 'last_edited_time' }
|
|
92
|
-
})
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
## Common Patterns
|
|
96
|
-
|
|
97
|
-
### Task Management
|
|
98
|
-
```typescript
|
|
99
|
-
// Create task
|
|
100
|
-
await notion.pages.create({
|
|
101
|
-
parent: { database_id: tasksDbId },
|
|
102
|
-
properties: {
|
|
103
|
-
'Task': { title: [{ text: { content: 'Implement feature X' } }] },
|
|
104
|
-
'Status': { select: { name: 'To Do' } },
|
|
105
|
-
'Assignee': { people: [{ id: userId }] },
|
|
106
|
-
'Due Date': { date: { start: '2024-12-31' } }
|
|
107
|
-
}
|
|
108
|
-
})
|
|
109
|
-
|
|
110
|
-
// Update task status
|
|
111
|
-
await notion.pages.update({
|
|
112
|
-
page_id: taskId,
|
|
113
|
-
properties: {
|
|
114
|
-
'Status': { select: { name: 'In Progress' } },
|
|
115
|
-
'Started': { date: { start: new Date().toISOString() } }
|
|
116
|
-
}
|
|
117
|
-
})
|
|
118
|
-
|
|
119
|
-
// Complete task
|
|
120
|
-
await notion.pages.update({
|
|
121
|
-
page_id: taskId,
|
|
122
|
-
properties: {
|
|
123
|
-
'Status': { select: { name: 'Done' } },
|
|
124
|
-
'Completed': { date: { start: new Date().toISOString() } }
|
|
125
|
-
}
|
|
126
|
-
})
|
|
127
|
-
```
|
|
128
|
-
|
|
129
|
-
### Documentation Generation
|
|
130
|
-
```typescript
|
|
131
|
-
// Create documentation page
|
|
132
|
-
const page = await notion.pages.create({
|
|
133
|
-
parent: { database_id: docsDbId },
|
|
134
|
-
properties: {
|
|
135
|
-
'Title': { title: [{ text: { content: 'API Documentation' } }] },
|
|
136
|
-
'Category': { select: { name: 'Technical' } }
|
|
137
|
-
}
|
|
138
|
-
})
|
|
139
|
-
|
|
140
|
-
// Add content blocks
|
|
141
|
-
await notion.blocks.children.append({
|
|
142
|
-
block_id: page.id,
|
|
143
|
-
children: [
|
|
144
|
-
{ type: 'heading_1', heading_1: { rich_text: [{ text: { content: 'API Reference' } }] } },
|
|
145
|
-
{ type: 'paragraph', paragraph: { rich_text: [{ text: { content: 'Endpoints overview...' } }] } },
|
|
146
|
-
{ type: 'code', code: {
|
|
147
|
-
language: 'typescript',
|
|
148
|
-
rich_text: [{ text: { content: 'const api = new API()' } }]
|
|
149
|
-
}}
|
|
150
|
-
]
|
|
151
|
-
})
|
|
152
|
-
```
|
|
153
|
-
|
|
154
|
-
### Meeting Notes
|
|
155
|
-
```typescript
|
|
156
|
-
// Create meeting notes
|
|
157
|
-
await notion.pages.create({
|
|
158
|
-
parent: { database_id: meetingsDbId },
|
|
159
|
-
properties: {
|
|
160
|
-
'Title': { title: [{ text: { content: 'Sprint Planning - Jan 2024' } }] },
|
|
161
|
-
'Date': { date: { start: '2024-01-15' } },
|
|
162
|
-
'Attendees': { people: attendeeIds }
|
|
163
|
-
}
|
|
164
|
-
})
|
|
165
|
-
|
|
166
|
-
// Add agenda and notes
|
|
167
|
-
await notion.blocks.children.append({
|
|
168
|
-
block_id: pageId,
|
|
169
|
-
children: [
|
|
170
|
-
{ type: 'heading_2', heading_2: { rich_text: [{ text: { content: 'Agenda' } }] } },
|
|
171
|
-
{ type: 'bulleted_list_item', bulleted_list_item: { rich_text: [{ text: { content: 'Review last sprint' } }] } },
|
|
172
|
-
{ type: 'bulleted_list_item', bulleted_list_item: { rich_text: [{ text: { content: 'Plan next sprint' } }] } },
|
|
173
|
-
{ type: 'heading_2', heading_2: { rich_text: [{ text: { content: 'Action Items' } }] } }
|
|
174
|
-
]
|
|
175
|
-
})
|
|
176
|
-
```
|
|
177
|
-
|
|
178
|
-
## Best Practices
|
|
179
|
-
|
|
180
|
-
✅ **DO:**
|
|
181
|
-
- Use databases for structured data
|
|
182
|
-
- Cache database schemas
|
|
183
|
-
- Batch operations when possible
|
|
184
|
-
- Handle rate limits (3 requests/second)
|
|
185
|
-
- Use rich text for formatting
|
|
186
|
-
- Archive instead of delete
|
|
187
|
-
|
|
188
|
-
❌ **DON'T:**
|
|
189
|
-
- Make excessive API calls
|
|
190
|
-
- Ignore rate limiting
|
|
191
|
-
- Store large binary files
|
|
192
|
-
- Skip error handling
|
|
193
|
-
- Hardcode database IDs
|
|
194
|
-
|
|
195
|
-
## Configuration
|
|
196
|
-
|
|
197
|
-
```json
|
|
198
|
-
{
|
|
199
|
-
"mcpServers": {
|
|
200
|
-
"notion": {
|
|
201
|
-
"command": "npx",
|
|
202
|
-
"args": ["-y", "@modelcontextprotocol/server-notion"],
|
|
203
|
-
"env": {
|
|
204
|
-
"NOTION_API_KEY": "secret_xxx",
|
|
205
|
-
"NOTION_VERSION": "2022-06-28"
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
```
|
|
211
|
-
|
|
212
|
-
**Setup:**
|
|
213
|
-
1. Create integration at https://www.notion.so/my-integrations
|
|
214
|
-
2. Copy internal integration token
|
|
215
|
-
3. Share databases/pages with integration
|
|
216
|
-
4. Use token as `NOTION_API_KEY`
|
|
217
|
-
|
|
218
|
-
## Integration Patterns
|
|
219
|
-
|
|
220
|
-
### Sync Tasks from Code
|
|
221
|
-
```typescript
|
|
222
|
-
// Sync OpenSpec tasks to Notion
|
|
223
|
-
const tasks = parseOpenSpecTasks('openspec/changes/my-feature/tasks.md')
|
|
224
|
-
|
|
225
|
-
for (const task of tasks) {
|
|
226
|
-
await notion.pages.create({
|
|
227
|
-
parent: { database_id: tasksDbId },
|
|
228
|
-
properties: {
|
|
229
|
-
'Task': { title: [{ text: { content: task.title } }] },
|
|
230
|
-
'Status': { select: { name: task.completed ? 'Done' : 'To Do' } },
|
|
231
|
-
'Source': { select: { name: 'OpenSpec' } }
|
|
232
|
-
}
|
|
233
|
-
})
|
|
234
|
-
}
|
|
235
|
-
```
|
|
236
|
-
|
|
237
|
-
### Generate Changelog
|
|
238
|
-
```typescript
|
|
239
|
-
// Query completed tasks
|
|
240
|
-
const completed = await notion.databases.query({
|
|
241
|
-
database_id: tasksDbId,
|
|
242
|
-
filter: {
|
|
243
|
-
and: [
|
|
244
|
-
{ property: 'Status', select: { equals: 'Done' } },
|
|
245
|
-
{ property: 'Completed', date: { after: '2024-01-01' } }
|
|
246
|
-
]
|
|
247
|
-
}
|
|
248
|
-
})
|
|
249
|
-
|
|
250
|
-
// Generate CHANGELOG.md entries
|
|
251
|
-
const entries = completed.results.map(task =>
|
|
252
|
-
`- ${task.properties.Task.title[0].plain_text}`
|
|
253
|
-
)
|
|
254
|
-
```
|
|
255
|
-
|
|
256
|
-
<!-- NOTION:END -->
|
|
257
|
-
|
|
1
|
+
---
|
|
2
|
+
name: "Notion"
|
|
3
|
+
description: "Use MCP Notion for documentation, task tracking, and knowledge management."
|
|
4
|
+
version: "1.0.0"
|
|
5
|
+
category: "modules"
|
|
6
|
+
author: "Rulebook"
|
|
7
|
+
tags: ["modules", "mcp"]
|
|
8
|
+
dependencies: []
|
|
9
|
+
conflicts: []
|
|
10
|
+
---
|
|
11
|
+
<!-- NOTION:START -->
|
|
12
|
+
# Notion MCP Instructions
|
|
13
|
+
|
|
14
|
+
**CRITICAL**: Use MCP Notion for documentation, task tracking, and knowledge management.
|
|
15
|
+
|
|
16
|
+
## Core Operations
|
|
17
|
+
|
|
18
|
+
### Database Queries
|
|
19
|
+
```typescript
|
|
20
|
+
// Query database
|
|
21
|
+
notion.databases.query({
|
|
22
|
+
database_id: 'database-id',
|
|
23
|
+
filter: {
|
|
24
|
+
property: 'Status',
|
|
25
|
+
select: { equals: 'In Progress' }
|
|
26
|
+
},
|
|
27
|
+
sorts: [{ property: 'Created', direction: 'descending' }]
|
|
28
|
+
})
|
|
29
|
+
|
|
30
|
+
// Get database
|
|
31
|
+
notion.databases.retrieve({ database_id: 'database-id' })
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
### Page Operations
|
|
35
|
+
```typescript
|
|
36
|
+
// Create page
|
|
37
|
+
notion.pages.create({
|
|
38
|
+
parent: { database_id: 'database-id' },
|
|
39
|
+
properties: {
|
|
40
|
+
'Name': { title: [{ text: { content: 'New Task' } }] },
|
|
41
|
+
'Status': { select: { name: 'To Do' } },
|
|
42
|
+
'Priority': { select: { name: 'High' } }
|
|
43
|
+
}
|
|
44
|
+
})
|
|
45
|
+
|
|
46
|
+
// Update page
|
|
47
|
+
notion.pages.update({
|
|
48
|
+
page_id: 'page-id',
|
|
49
|
+
properties: {
|
|
50
|
+
'Status': { select: { name: 'Done' } }
|
|
51
|
+
}
|
|
52
|
+
})
|
|
53
|
+
|
|
54
|
+
// Get page
|
|
55
|
+
notion.pages.retrieve({ page_id: 'page-id' })
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
### Block Operations
|
|
59
|
+
```typescript
|
|
60
|
+
// Get blocks
|
|
61
|
+
notion.blocks.children.list({ block_id: 'page-id' })
|
|
62
|
+
|
|
63
|
+
// Append blocks
|
|
64
|
+
notion.blocks.children.append({
|
|
65
|
+
block_id: 'page-id',
|
|
66
|
+
children: [
|
|
67
|
+
{
|
|
68
|
+
object: 'block',
|
|
69
|
+
type: 'heading_2',
|
|
70
|
+
heading_2: {
|
|
71
|
+
rich_text: [{ type: 'text', text: { content: 'Section Title' } }]
|
|
72
|
+
}
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
object: 'block',
|
|
76
|
+
type: 'paragraph',
|
|
77
|
+
paragraph: {
|
|
78
|
+
rich_text: [{ type: 'text', text: { content: 'Content here' } }]
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
]
|
|
82
|
+
})
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### Search
|
|
86
|
+
```typescript
|
|
87
|
+
// Search all content
|
|
88
|
+
notion.search({
|
|
89
|
+
query: 'search term',
|
|
90
|
+
filter: { property: 'object', value: 'page' },
|
|
91
|
+
sort: { direction: 'descending', timestamp: 'last_edited_time' }
|
|
92
|
+
})
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
## Common Patterns
|
|
96
|
+
|
|
97
|
+
### Task Management
|
|
98
|
+
```typescript
|
|
99
|
+
// Create task
|
|
100
|
+
await notion.pages.create({
|
|
101
|
+
parent: { database_id: tasksDbId },
|
|
102
|
+
properties: {
|
|
103
|
+
'Task': { title: [{ text: { content: 'Implement feature X' } }] },
|
|
104
|
+
'Status': { select: { name: 'To Do' } },
|
|
105
|
+
'Assignee': { people: [{ id: userId }] },
|
|
106
|
+
'Due Date': { date: { start: '2024-12-31' } }
|
|
107
|
+
}
|
|
108
|
+
})
|
|
109
|
+
|
|
110
|
+
// Update task status
|
|
111
|
+
await notion.pages.update({
|
|
112
|
+
page_id: taskId,
|
|
113
|
+
properties: {
|
|
114
|
+
'Status': { select: { name: 'In Progress' } },
|
|
115
|
+
'Started': { date: { start: new Date().toISOString() } }
|
|
116
|
+
}
|
|
117
|
+
})
|
|
118
|
+
|
|
119
|
+
// Complete task
|
|
120
|
+
await notion.pages.update({
|
|
121
|
+
page_id: taskId,
|
|
122
|
+
properties: {
|
|
123
|
+
'Status': { select: { name: 'Done' } },
|
|
124
|
+
'Completed': { date: { start: new Date().toISOString() } }
|
|
125
|
+
}
|
|
126
|
+
})
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
### Documentation Generation
|
|
130
|
+
```typescript
|
|
131
|
+
// Create documentation page
|
|
132
|
+
const page = await notion.pages.create({
|
|
133
|
+
parent: { database_id: docsDbId },
|
|
134
|
+
properties: {
|
|
135
|
+
'Title': { title: [{ text: { content: 'API Documentation' } }] },
|
|
136
|
+
'Category': { select: { name: 'Technical' } }
|
|
137
|
+
}
|
|
138
|
+
})
|
|
139
|
+
|
|
140
|
+
// Add content blocks
|
|
141
|
+
await notion.blocks.children.append({
|
|
142
|
+
block_id: page.id,
|
|
143
|
+
children: [
|
|
144
|
+
{ type: 'heading_1', heading_1: { rich_text: [{ text: { content: 'API Reference' } }] } },
|
|
145
|
+
{ type: 'paragraph', paragraph: { rich_text: [{ text: { content: 'Endpoints overview...' } }] } },
|
|
146
|
+
{ type: 'code', code: {
|
|
147
|
+
language: 'typescript',
|
|
148
|
+
rich_text: [{ text: { content: 'const api = new API()' } }]
|
|
149
|
+
}}
|
|
150
|
+
]
|
|
151
|
+
})
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
### Meeting Notes
|
|
155
|
+
```typescript
|
|
156
|
+
// Create meeting notes
|
|
157
|
+
await notion.pages.create({
|
|
158
|
+
parent: { database_id: meetingsDbId },
|
|
159
|
+
properties: {
|
|
160
|
+
'Title': { title: [{ text: { content: 'Sprint Planning - Jan 2024' } }] },
|
|
161
|
+
'Date': { date: { start: '2024-01-15' } },
|
|
162
|
+
'Attendees': { people: attendeeIds }
|
|
163
|
+
}
|
|
164
|
+
})
|
|
165
|
+
|
|
166
|
+
// Add agenda and notes
|
|
167
|
+
await notion.blocks.children.append({
|
|
168
|
+
block_id: pageId,
|
|
169
|
+
children: [
|
|
170
|
+
{ type: 'heading_2', heading_2: { rich_text: [{ text: { content: 'Agenda' } }] } },
|
|
171
|
+
{ type: 'bulleted_list_item', bulleted_list_item: { rich_text: [{ text: { content: 'Review last sprint' } }] } },
|
|
172
|
+
{ type: 'bulleted_list_item', bulleted_list_item: { rich_text: [{ text: { content: 'Plan next sprint' } }] } },
|
|
173
|
+
{ type: 'heading_2', heading_2: { rich_text: [{ text: { content: 'Action Items' } }] } }
|
|
174
|
+
]
|
|
175
|
+
})
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
## Best Practices
|
|
179
|
+
|
|
180
|
+
✅ **DO:**
|
|
181
|
+
- Use databases for structured data
|
|
182
|
+
- Cache database schemas
|
|
183
|
+
- Batch operations when possible
|
|
184
|
+
- Handle rate limits (3 requests/second)
|
|
185
|
+
- Use rich text for formatting
|
|
186
|
+
- Archive instead of delete
|
|
187
|
+
|
|
188
|
+
❌ **DON'T:**
|
|
189
|
+
- Make excessive API calls
|
|
190
|
+
- Ignore rate limiting
|
|
191
|
+
- Store large binary files
|
|
192
|
+
- Skip error handling
|
|
193
|
+
- Hardcode database IDs
|
|
194
|
+
|
|
195
|
+
## Configuration
|
|
196
|
+
|
|
197
|
+
```json
|
|
198
|
+
{
|
|
199
|
+
"mcpServers": {
|
|
200
|
+
"notion": {
|
|
201
|
+
"command": "npx",
|
|
202
|
+
"args": ["-y", "@modelcontextprotocol/server-notion"],
|
|
203
|
+
"env": {
|
|
204
|
+
"NOTION_API_KEY": "secret_xxx",
|
|
205
|
+
"NOTION_VERSION": "2022-06-28"
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
**Setup:**
|
|
213
|
+
1. Create integration at https://www.notion.so/my-integrations
|
|
214
|
+
2. Copy internal integration token
|
|
215
|
+
3. Share databases/pages with integration
|
|
216
|
+
4. Use token as `NOTION_API_KEY`
|
|
217
|
+
|
|
218
|
+
## Integration Patterns
|
|
219
|
+
|
|
220
|
+
### Sync Tasks from Code
|
|
221
|
+
```typescript
|
|
222
|
+
// Sync OpenSpec tasks to Notion
|
|
223
|
+
const tasks = parseOpenSpecTasks('openspec/changes/my-feature/tasks.md')
|
|
224
|
+
|
|
225
|
+
for (const task of tasks) {
|
|
226
|
+
await notion.pages.create({
|
|
227
|
+
parent: { database_id: tasksDbId },
|
|
228
|
+
properties: {
|
|
229
|
+
'Task': { title: [{ text: { content: task.title } }] },
|
|
230
|
+
'Status': { select: { name: task.completed ? 'Done' : 'To Do' } },
|
|
231
|
+
'Source': { select: { name: 'OpenSpec' } }
|
|
232
|
+
}
|
|
233
|
+
})
|
|
234
|
+
}
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
### Generate Changelog
|
|
238
|
+
```typescript
|
|
239
|
+
// Query completed tasks
|
|
240
|
+
const completed = await notion.databases.query({
|
|
241
|
+
database_id: tasksDbId,
|
|
242
|
+
filter: {
|
|
243
|
+
and: [
|
|
244
|
+
{ property: 'Status', select: { equals: 'Done' } },
|
|
245
|
+
{ property: 'Completed', date: { after: '2024-01-01' } }
|
|
246
|
+
]
|
|
247
|
+
}
|
|
248
|
+
})
|
|
249
|
+
|
|
250
|
+
// Generate CHANGELOG.md entries
|
|
251
|
+
const entries = completed.results.map(task =>
|
|
252
|
+
`- ${task.properties.Task.title[0].plain_text}`
|
|
253
|
+
)
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
<!-- NOTION:END -->
|
|
257
|
+
|