@hivehub/rulebook 4.2.2 → 4.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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-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 +70 -70
- 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 +15 -1
- package/dist/cli/commands.d.ts.map +1 -1
- package/dist/cli/commands.js +43 -18
- package/dist/cli/commands.js.map +1 -1
- package/dist/core/claude-mcp.d.ts +10 -2
- package/dist/core/claude-mcp.d.ts.map +1 -1
- package/dist/core/claude-mcp.js +48 -9
- package/dist/core/claude-mcp.js.map +1 -1
- package/dist/core/config-manager.d.ts.map +1 -1
- package/dist/core/config-manager.js +1 -2
- package/dist/core/config-manager.js.map +1 -1
- package/dist/core/generator.d.ts +13 -0
- package/dist/core/generator.d.ts.map +1 -1
- package/dist/core/generator.js +283 -28
- package/dist/core/generator.js.map +1 -1
- package/dist/core/indexer/background-indexer.d.ts.map +1 -1
- package/dist/core/indexer/background-indexer.js +10 -3
- package/dist/core/indexer/background-indexer.js.map +1 -1
- package/dist/core/workspace/workspace-manager.d.ts.map +1 -1
- package/dist/core/workspace/workspace-manager.js +2 -6
- package/dist/core/workspace/workspace-manager.js.map +1 -1
- package/dist/index.js +1 -3
- package/dist/index.js.map +1 -1
- package/dist/mcp/rulebook-server.d.ts.map +1 -1
- package/dist/mcp/rulebook-server.js +23 -10
- package/dist/mcp/rulebook-server.js.map +1 -1
- package/package.json +21 -22
- package/templates/agents/accessibility-reviewer.md +43 -0
- package/templates/agents/api-designer.md +42 -0
- package/templates/agents/architect.md +51 -0
- package/templates/agents/build-engineer.md +36 -0
- package/templates/agents/code-reviewer.md +47 -0
- package/templates/agents/database-architect.md +41 -0
- package/templates/agents/devops-engineer.md +42 -0
- package/templates/agents/docs-writer.md +38 -0
- package/templates/agents/i18n-engineer.md +42 -0
- package/templates/agents/implementer.md +38 -35
- package/templates/agents/migration-engineer.md +42 -0
- package/templates/agents/performance-engineer.md +49 -0
- package/templates/agents/refactoring-agent.md +41 -0
- package/templates/agents/researcher.md +38 -34
- package/templates/agents/security-reviewer.md +40 -0
- package/templates/agents/team-lead.md +37 -34
- package/templates/agents/tester.md +45 -42
- package/templates/agents/ux-reviewer.md +43 -0
- 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-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/core/AGENTS_LEAN.md +25 -25
- package/templates/core/AGENTS_OVERRIDE.md +16 -16
- package/templates/core/AGENT_AUTOMATION.md +288 -288
- package/templates/core/DAG.md +304 -304
- package/templates/core/DOCUMENTATION_RULES.md +36 -36
- 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 +1935 -1935
- 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 +1157 -1157
- 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/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 +156 -156
- 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/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/quality-enforcement/SKILL.md +78 -78
- package/templates/skills/core/rulebook/SKILL.md +176 -176
- package/templates/skills/dev/accessibility/SKILL.md +17 -0
- package/templates/skills/dev/api-design/SKILL.md +15 -0
- package/templates/skills/dev/architect/SKILL.md +17 -0
- package/templates/skills/dev/build-fix/SKILL.md +17 -0
- package/templates/skills/dev/db-design/SKILL.md +15 -0
- package/templates/skills/dev/debug/SKILL.md +16 -0
- package/templates/skills/dev/deploy/SKILL.md +17 -0
- package/templates/skills/dev/docs/SKILL.md +17 -0
- package/templates/skills/dev/migrate/SKILL.md +15 -0
- package/templates/skills/dev/perf/SKILL.md +17 -0
- package/templates/skills/dev/refactor/SKILL.md +17 -0
- package/templates/skills/dev/research/SKILL.md +14 -0
- package/templates/skills/dev/review/SKILL.md +18 -0
- package/templates/skills/dev/security-audit/SKILL.md +17 -0
- 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: "Vectorizer"
|
|
3
|
-
description: "Use MCP Vectorizer as primary data source for project information instead of file reading."
|
|
4
|
-
version: "1.0.0"
|
|
5
|
-
category: "modules"
|
|
6
|
-
author: "Rulebook"
|
|
7
|
-
tags: ["modules", "mcp"]
|
|
8
|
-
dependencies: []
|
|
9
|
-
conflicts: []
|
|
10
|
-
---
|
|
11
|
-
<!-- VECTORIZER:START -->
|
|
12
|
-
# Vectorizer Instructions
|
|
13
|
-
|
|
14
|
-
**CRITICAL**: Use MCP Vectorizer as primary data source for project information instead of file reading.
|
|
15
|
-
|
|
16
|
-
## Core Functions
|
|
17
|
-
|
|
18
|
-
### Search
|
|
19
|
-
```
|
|
20
|
-
mcp_vectorizer_search - Multiple strategies:
|
|
21
|
-
- intelligent: AI-powered with query expansion
|
|
22
|
-
- semantic: Advanced with reranking
|
|
23
|
-
- contextual: Context-aware with filtering
|
|
24
|
-
- multi_collection: Cross-project search
|
|
25
|
-
- batch: Parallel queries
|
|
26
|
-
- by_file_type: Filter by extension (.rs, .ts, .py)
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
### File Operations
|
|
30
|
-
```
|
|
31
|
-
get_content - Retrieve file without disk I/O
|
|
32
|
-
list_files - List indexed files with metadata
|
|
33
|
-
get_summary - File summaries (extractive/structural)
|
|
34
|
-
get_chunks - Progressive reading of large files
|
|
35
|
-
get_outline - Project structure overview
|
|
36
|
-
get_related - Find semantically related files
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
### Discovery
|
|
40
|
-
```
|
|
41
|
-
full_pipeline - Complete discovery with scoring
|
|
42
|
-
broad_discovery - Multi-query with deduplication
|
|
43
|
-
semantic_focus - Deep semantic search
|
|
44
|
-
expand_queries - Generate query variations
|
|
45
|
-
```
|
|
46
|
-
|
|
47
|
-
## When to Use
|
|
48
|
-
|
|
49
|
-
| Task | Tool |
|
|
50
|
-
|------|------|
|
|
51
|
-
| Explore unfamiliar code | intelligent search |
|
|
52
|
-
| Read file | get_content |
|
|
53
|
-
| Understand structure | get_outline |
|
|
54
|
-
| Find related files | get_related |
|
|
55
|
-
| Read large file | get_chunks |
|
|
56
|
-
| Complex question | full_pipeline |
|
|
57
|
-
|
|
58
|
-
## Best Practices
|
|
59
|
-
|
|
60
|
-
✅ **DO:**
|
|
61
|
-
- Start with intelligent search for exploration
|
|
62
|
-
- Use file_operations to avoid disk I/O
|
|
63
|
-
- Batch queries for related items
|
|
64
|
-
- Set similarity thresholds (0.6-0.8)
|
|
65
|
-
- Use specific collections when known
|
|
66
|
-
|
|
67
|
-
❌ **DON'T:**
|
|
68
|
-
- Read files from disk when available in vectorizer
|
|
69
|
-
- Use sequential searches (batch instead)
|
|
70
|
-
- Skip similarity thresholds
|
|
71
|
-
- Search entire codebase when collection is known
|
|
72
|
-
|
|
73
|
-
<!-- VECTORIZER:END -->
|
|
1
|
+
---
|
|
2
|
+
name: "Vectorizer"
|
|
3
|
+
description: "Use MCP Vectorizer as primary data source for project information instead of file reading."
|
|
4
|
+
version: "1.0.0"
|
|
5
|
+
category: "modules"
|
|
6
|
+
author: "Rulebook"
|
|
7
|
+
tags: ["modules", "mcp"]
|
|
8
|
+
dependencies: []
|
|
9
|
+
conflicts: []
|
|
10
|
+
---
|
|
11
|
+
<!-- VECTORIZER:START -->
|
|
12
|
+
# Vectorizer Instructions
|
|
13
|
+
|
|
14
|
+
**CRITICAL**: Use MCP Vectorizer as primary data source for project information instead of file reading.
|
|
15
|
+
|
|
16
|
+
## Core Functions
|
|
17
|
+
|
|
18
|
+
### Search
|
|
19
|
+
```
|
|
20
|
+
mcp_vectorizer_search - Multiple strategies:
|
|
21
|
+
- intelligent: AI-powered with query expansion
|
|
22
|
+
- semantic: Advanced with reranking
|
|
23
|
+
- contextual: Context-aware with filtering
|
|
24
|
+
- multi_collection: Cross-project search
|
|
25
|
+
- batch: Parallel queries
|
|
26
|
+
- by_file_type: Filter by extension (.rs, .ts, .py)
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### File Operations
|
|
30
|
+
```
|
|
31
|
+
get_content - Retrieve file without disk I/O
|
|
32
|
+
list_files - List indexed files with metadata
|
|
33
|
+
get_summary - File summaries (extractive/structural)
|
|
34
|
+
get_chunks - Progressive reading of large files
|
|
35
|
+
get_outline - Project structure overview
|
|
36
|
+
get_related - Find semantically related files
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### Discovery
|
|
40
|
+
```
|
|
41
|
+
full_pipeline - Complete discovery with scoring
|
|
42
|
+
broad_discovery - Multi-query with deduplication
|
|
43
|
+
semantic_focus - Deep semantic search
|
|
44
|
+
expand_queries - Generate query variations
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## When to Use
|
|
48
|
+
|
|
49
|
+
| Task | Tool |
|
|
50
|
+
|------|------|
|
|
51
|
+
| Explore unfamiliar code | intelligent search |
|
|
52
|
+
| Read file | get_content |
|
|
53
|
+
| Understand structure | get_outline |
|
|
54
|
+
| Find related files | get_related |
|
|
55
|
+
| Read large file | get_chunks |
|
|
56
|
+
| Complex question | full_pipeline |
|
|
57
|
+
|
|
58
|
+
## Best Practices
|
|
59
|
+
|
|
60
|
+
✅ **DO:**
|
|
61
|
+
- Start with intelligent search for exploration
|
|
62
|
+
- Use file_operations to avoid disk I/O
|
|
63
|
+
- Batch queries for related items
|
|
64
|
+
- Set similarity thresholds (0.6-0.8)
|
|
65
|
+
- Use specific collections when known
|
|
66
|
+
|
|
67
|
+
❌ **DON'T:**
|
|
68
|
+
- Read files from disk when available in vectorizer
|
|
69
|
+
- Use sequential searches (batch instead)
|
|
70
|
+
- Skip similarity thresholds
|
|
71
|
+
- Search entire codebase when collection is known
|
|
72
|
+
|
|
73
|
+
<!-- VECTORIZER:END -->
|
|
@@ -1,194 +1,194 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: "Azure Blob Storage"
|
|
3
|
-
description: "Use Azure Blob Storage for object storage, file uploads, static assets, and backup storage in Azure cloud."
|
|
4
|
-
version: "1.0.0"
|
|
5
|
-
category: "services"
|
|
6
|
-
author: "Rulebook"
|
|
7
|
-
tags: ["services", "storage"]
|
|
8
|
-
dependencies: []
|
|
9
|
-
conflicts: []
|
|
10
|
-
---
|
|
11
|
-
<!-- AZURE_BLOB:START -->
|
|
12
|
-
# Azure Blob Storage Instructions
|
|
13
|
-
|
|
14
|
-
**CRITICAL**: Use Azure Blob Storage for object storage, file uploads, static assets, and backup storage in Azure cloud.
|
|
15
|
-
|
|
16
|
-
## Core Features
|
|
17
|
-
|
|
18
|
-
### Connection
|
|
19
|
-
```typescript
|
|
20
|
-
// Using @azure/storage-blob
|
|
21
|
-
import { BlobServiceClient, StorageSharedKeyCredential } from '@azure/storage-blob'
|
|
22
|
-
|
|
23
|
-
const accountName = process.env.AZURE_STORAGE_ACCOUNT_NAME || ''
|
|
24
|
-
const accountKey = process.env.AZURE_STORAGE_ACCOUNT_KEY || ''
|
|
25
|
-
|
|
26
|
-
const sharedKeyCredential = new StorageSharedKeyCredential(accountName, accountKey)
|
|
27
|
-
const blobServiceClient = new BlobServiceClient(
|
|
28
|
-
`https://${accountName}.blob.core.windows.net`,
|
|
29
|
-
sharedKeyCredential
|
|
30
|
-
)
|
|
31
|
-
|
|
32
|
-
const containerClient = blobServiceClient.getContainerClient(
|
|
33
|
-
process.env.AZURE_CONTAINER_NAME || 'mycontainer'
|
|
34
|
-
)
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
### Basic Operations
|
|
38
|
-
```typescript
|
|
39
|
-
// Create container
|
|
40
|
-
await containerClient.createIfNotExists({
|
|
41
|
-
access: 'blob', // 'blob', 'container', or 'private'
|
|
42
|
-
})
|
|
43
|
-
|
|
44
|
-
// Upload blob
|
|
45
|
-
const blockBlobClient = containerClient.getBlockBlobClient('path/to/file.jpg')
|
|
46
|
-
await blockBlobClient.upload(fileBuffer, fileBuffer.length, {
|
|
47
|
-
blobHTTPHeaders: {
|
|
48
|
-
blobContentType: 'image/jpeg',
|
|
49
|
-
},
|
|
50
|
-
metadata: {
|
|
51
|
-
userId: '123',
|
|
52
|
-
originalName: 'photo.jpg',
|
|
53
|
-
},
|
|
54
|
-
})
|
|
55
|
-
|
|
56
|
-
// Download blob
|
|
57
|
-
const downloadResponse = await blockBlobClient.download()
|
|
58
|
-
const fileContent = await streamToBuffer(downloadResponse.readableStreamBody)
|
|
59
|
-
|
|
60
|
-
// Delete blob
|
|
61
|
-
await blockBlobClient.delete()
|
|
62
|
-
|
|
63
|
-
// List blobs
|
|
64
|
-
for await (const blob of containerClient.listBlobsFlat()) {
|
|
65
|
-
console.log(blob.name, blob.properties.contentLength)
|
|
66
|
-
}
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
### Advanced Features
|
|
70
|
-
```typescript
|
|
71
|
-
// Generate SAS URL
|
|
72
|
-
import { generateBlobSASQueryParameters, BlobSASPermissions, StorageSharedKeyCredential } from '@azure/storage-blob'
|
|
73
|
-
|
|
74
|
-
const sasToken = generateBlobSASQueryParameters(
|
|
75
|
-
{
|
|
76
|
-
containerName: 'mycontainer',
|
|
77
|
-
blobName: 'path/to/file.jpg',
|
|
78
|
-
permissions: BlobSASPermissions.parse('r'), // read
|
|
79
|
-
startsOn: new Date(),
|
|
80
|
-
expiresOn: new Date(new Date().valueOf() + 3600 * 1000), // 1 hour
|
|
81
|
-
},
|
|
82
|
-
sharedKeyCredential
|
|
83
|
-
).toString()
|
|
84
|
-
|
|
85
|
-
const sasUrl = `https://${accountName}.blob.core.windows.net/mycontainer/path/to/file.jpg?${sasToken}`
|
|
86
|
-
|
|
87
|
-
// Copy blob
|
|
88
|
-
const sourceBlobClient = containerClient.getBlockBlobClient('source/file.jpg')
|
|
89
|
-
const destBlobClient = containerClient.getBlockBlobClient('dest/file.jpg')
|
|
90
|
-
await destBlobClient.beginCopyFromURL(sourceBlobClient.url)
|
|
91
|
-
|
|
92
|
-
// Set blob metadata
|
|
93
|
-
await blockBlobClient.setMetadata({
|
|
94
|
-
category: 'profile',
|
|
95
|
-
uploadedBy: 'user-123',
|
|
96
|
-
})
|
|
97
|
-
|
|
98
|
-
// Get blob properties
|
|
99
|
-
const properties = await blockBlobClient.getProperties()
|
|
100
|
-
console.log(properties.contentType, properties.contentLength, properties.metadata)
|
|
101
|
-
```
|
|
102
|
-
|
|
103
|
-
## Common Patterns
|
|
104
|
-
|
|
105
|
-
### File Upload Handler
|
|
106
|
-
```typescript
|
|
107
|
-
async function uploadFile(file: Buffer, filename: string, userId: string) {
|
|
108
|
-
const blobName = `users/${userId}/${Date.now()}-${filename}`
|
|
109
|
-
const blobClient = containerClient.getBlockBlobClient(blobName)
|
|
110
|
-
|
|
111
|
-
await blobClient.upload(file, file.length, {
|
|
112
|
-
blobHTTPHeaders: {
|
|
113
|
-
blobContentType: getContentType(filename),
|
|
114
|
-
},
|
|
115
|
-
metadata: {
|
|
116
|
-
userId,
|
|
117
|
-
originalName: filename,
|
|
118
|
-
uploadedAt: new Date().toISOString(),
|
|
119
|
-
},
|
|
120
|
-
})
|
|
121
|
-
|
|
122
|
-
return {
|
|
123
|
-
blobName,
|
|
124
|
-
url: blobClient.url,
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
```
|
|
128
|
-
|
|
129
|
-
### Temporary Access URL
|
|
130
|
-
```typescript
|
|
131
|
-
async function generateTemporaryUrl(blobName: string, expiresInMinutes: number = 60) {
|
|
132
|
-
const blobClient = containerClient.getBlockBlobClient(blobName)
|
|
133
|
-
const sasToken = generateBlobSASQueryParameters(
|
|
134
|
-
{
|
|
135
|
-
containerName: containerClient.containerName,
|
|
136
|
-
blobName,
|
|
137
|
-
permissions: BlobSASPermissions.parse('r'),
|
|
138
|
-
expiresOn: new Date(Date.now() + expiresInMinutes * 60 * 1000),
|
|
139
|
-
},
|
|
140
|
-
sharedKeyCredential
|
|
141
|
-
).toString()
|
|
142
|
-
|
|
143
|
-
return `${blobClient.url}?${sasToken}`
|
|
144
|
-
}
|
|
145
|
-
```
|
|
146
|
-
|
|
147
|
-
## Best Practices
|
|
148
|
-
|
|
149
|
-
✅ **DO:**
|
|
150
|
-
- Use appropriate access tiers (Hot, Cool, Archive)
|
|
151
|
-
- Set blob metadata for organization
|
|
152
|
-
- Use SAS tokens for temporary access
|
|
153
|
-
- Implement proper error handling
|
|
154
|
-
- Use appropriate content types
|
|
155
|
-
- Enable soft delete for important data
|
|
156
|
-
- Monitor storage usage and costs
|
|
157
|
-
- Use lifecycle management policies
|
|
158
|
-
- Implement retry logic
|
|
159
|
-
- Use connection strings or managed identity
|
|
160
|
-
|
|
161
|
-
❌ **DON'T:**
|
|
162
|
-
- Store sensitive data without encryption
|
|
163
|
-
- Use public access unnecessarily
|
|
164
|
-
- Hardcode credentials
|
|
165
|
-
- Ignore error handling
|
|
166
|
-
- Skip content-type validation
|
|
167
|
-
- Ignore lifecycle policies
|
|
168
|
-
- Skip access logging
|
|
169
|
-
- Use default access levels
|
|
170
|
-
- Ignore cost optimization
|
|
171
|
-
- Store large files without chunking
|
|
172
|
-
|
|
173
|
-
## Configuration
|
|
174
|
-
|
|
175
|
-
### Environment Variables
|
|
176
|
-
```bash
|
|
177
|
-
AZURE_STORAGE_ACCOUNT_NAME=myaccount
|
|
178
|
-
AZURE_STORAGE_ACCOUNT_KEY=your-account-key
|
|
179
|
-
AZURE_CONTAINER_NAME=mycontainer
|
|
180
|
-
AZURE_STORAGE_CONNECTION_STRING=DefaultEndpointsProtocol=https;AccountName=...
|
|
181
|
-
```
|
|
182
|
-
|
|
183
|
-
### Managed Identity (Recommended)
|
|
184
|
-
```typescript
|
|
185
|
-
import { DefaultAzureCredential } from '@azure/identity'
|
|
186
|
-
|
|
187
|
-
const blobServiceClient = new BlobServiceClient(
|
|
188
|
-
`https://${accountName}.blob.core.windows.net`,
|
|
189
|
-
new DefaultAzureCredential()
|
|
190
|
-
)
|
|
191
|
-
```
|
|
192
|
-
|
|
193
|
-
<!-- AZURE_BLOB:END -->
|
|
194
|
-
|
|
1
|
+
---
|
|
2
|
+
name: "Azure Blob Storage"
|
|
3
|
+
description: "Use Azure Blob Storage for object storage, file uploads, static assets, and backup storage in Azure cloud."
|
|
4
|
+
version: "1.0.0"
|
|
5
|
+
category: "services"
|
|
6
|
+
author: "Rulebook"
|
|
7
|
+
tags: ["services", "storage"]
|
|
8
|
+
dependencies: []
|
|
9
|
+
conflicts: []
|
|
10
|
+
---
|
|
11
|
+
<!-- AZURE_BLOB:START -->
|
|
12
|
+
# Azure Blob Storage Instructions
|
|
13
|
+
|
|
14
|
+
**CRITICAL**: Use Azure Blob Storage for object storage, file uploads, static assets, and backup storage in Azure cloud.
|
|
15
|
+
|
|
16
|
+
## Core Features
|
|
17
|
+
|
|
18
|
+
### Connection
|
|
19
|
+
```typescript
|
|
20
|
+
// Using @azure/storage-blob
|
|
21
|
+
import { BlobServiceClient, StorageSharedKeyCredential } from '@azure/storage-blob'
|
|
22
|
+
|
|
23
|
+
const accountName = process.env.AZURE_STORAGE_ACCOUNT_NAME || ''
|
|
24
|
+
const accountKey = process.env.AZURE_STORAGE_ACCOUNT_KEY || ''
|
|
25
|
+
|
|
26
|
+
const sharedKeyCredential = new StorageSharedKeyCredential(accountName, accountKey)
|
|
27
|
+
const blobServiceClient = new BlobServiceClient(
|
|
28
|
+
`https://${accountName}.blob.core.windows.net`,
|
|
29
|
+
sharedKeyCredential
|
|
30
|
+
)
|
|
31
|
+
|
|
32
|
+
const containerClient = blobServiceClient.getContainerClient(
|
|
33
|
+
process.env.AZURE_CONTAINER_NAME || 'mycontainer'
|
|
34
|
+
)
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### Basic Operations
|
|
38
|
+
```typescript
|
|
39
|
+
// Create container
|
|
40
|
+
await containerClient.createIfNotExists({
|
|
41
|
+
access: 'blob', // 'blob', 'container', or 'private'
|
|
42
|
+
})
|
|
43
|
+
|
|
44
|
+
// Upload blob
|
|
45
|
+
const blockBlobClient = containerClient.getBlockBlobClient('path/to/file.jpg')
|
|
46
|
+
await blockBlobClient.upload(fileBuffer, fileBuffer.length, {
|
|
47
|
+
blobHTTPHeaders: {
|
|
48
|
+
blobContentType: 'image/jpeg',
|
|
49
|
+
},
|
|
50
|
+
metadata: {
|
|
51
|
+
userId: '123',
|
|
52
|
+
originalName: 'photo.jpg',
|
|
53
|
+
},
|
|
54
|
+
})
|
|
55
|
+
|
|
56
|
+
// Download blob
|
|
57
|
+
const downloadResponse = await blockBlobClient.download()
|
|
58
|
+
const fileContent = await streamToBuffer(downloadResponse.readableStreamBody)
|
|
59
|
+
|
|
60
|
+
// Delete blob
|
|
61
|
+
await blockBlobClient.delete()
|
|
62
|
+
|
|
63
|
+
// List blobs
|
|
64
|
+
for await (const blob of containerClient.listBlobsFlat()) {
|
|
65
|
+
console.log(blob.name, blob.properties.contentLength)
|
|
66
|
+
}
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### Advanced Features
|
|
70
|
+
```typescript
|
|
71
|
+
// Generate SAS URL
|
|
72
|
+
import { generateBlobSASQueryParameters, BlobSASPermissions, StorageSharedKeyCredential } from '@azure/storage-blob'
|
|
73
|
+
|
|
74
|
+
const sasToken = generateBlobSASQueryParameters(
|
|
75
|
+
{
|
|
76
|
+
containerName: 'mycontainer',
|
|
77
|
+
blobName: 'path/to/file.jpg',
|
|
78
|
+
permissions: BlobSASPermissions.parse('r'), // read
|
|
79
|
+
startsOn: new Date(),
|
|
80
|
+
expiresOn: new Date(new Date().valueOf() + 3600 * 1000), // 1 hour
|
|
81
|
+
},
|
|
82
|
+
sharedKeyCredential
|
|
83
|
+
).toString()
|
|
84
|
+
|
|
85
|
+
const sasUrl = `https://${accountName}.blob.core.windows.net/mycontainer/path/to/file.jpg?${sasToken}`
|
|
86
|
+
|
|
87
|
+
// Copy blob
|
|
88
|
+
const sourceBlobClient = containerClient.getBlockBlobClient('source/file.jpg')
|
|
89
|
+
const destBlobClient = containerClient.getBlockBlobClient('dest/file.jpg')
|
|
90
|
+
await destBlobClient.beginCopyFromURL(sourceBlobClient.url)
|
|
91
|
+
|
|
92
|
+
// Set blob metadata
|
|
93
|
+
await blockBlobClient.setMetadata({
|
|
94
|
+
category: 'profile',
|
|
95
|
+
uploadedBy: 'user-123',
|
|
96
|
+
})
|
|
97
|
+
|
|
98
|
+
// Get blob properties
|
|
99
|
+
const properties = await blockBlobClient.getProperties()
|
|
100
|
+
console.log(properties.contentType, properties.contentLength, properties.metadata)
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
## Common Patterns
|
|
104
|
+
|
|
105
|
+
### File Upload Handler
|
|
106
|
+
```typescript
|
|
107
|
+
async function uploadFile(file: Buffer, filename: string, userId: string) {
|
|
108
|
+
const blobName = `users/${userId}/${Date.now()}-${filename}`
|
|
109
|
+
const blobClient = containerClient.getBlockBlobClient(blobName)
|
|
110
|
+
|
|
111
|
+
await blobClient.upload(file, file.length, {
|
|
112
|
+
blobHTTPHeaders: {
|
|
113
|
+
blobContentType: getContentType(filename),
|
|
114
|
+
},
|
|
115
|
+
metadata: {
|
|
116
|
+
userId,
|
|
117
|
+
originalName: filename,
|
|
118
|
+
uploadedAt: new Date().toISOString(),
|
|
119
|
+
},
|
|
120
|
+
})
|
|
121
|
+
|
|
122
|
+
return {
|
|
123
|
+
blobName,
|
|
124
|
+
url: blobClient.url,
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
### Temporary Access URL
|
|
130
|
+
```typescript
|
|
131
|
+
async function generateTemporaryUrl(blobName: string, expiresInMinutes: number = 60) {
|
|
132
|
+
const blobClient = containerClient.getBlockBlobClient(blobName)
|
|
133
|
+
const sasToken = generateBlobSASQueryParameters(
|
|
134
|
+
{
|
|
135
|
+
containerName: containerClient.containerName,
|
|
136
|
+
blobName,
|
|
137
|
+
permissions: BlobSASPermissions.parse('r'),
|
|
138
|
+
expiresOn: new Date(Date.now() + expiresInMinutes * 60 * 1000),
|
|
139
|
+
},
|
|
140
|
+
sharedKeyCredential
|
|
141
|
+
).toString()
|
|
142
|
+
|
|
143
|
+
return `${blobClient.url}?${sasToken}`
|
|
144
|
+
}
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
## Best Practices
|
|
148
|
+
|
|
149
|
+
✅ **DO:**
|
|
150
|
+
- Use appropriate access tiers (Hot, Cool, Archive)
|
|
151
|
+
- Set blob metadata for organization
|
|
152
|
+
- Use SAS tokens for temporary access
|
|
153
|
+
- Implement proper error handling
|
|
154
|
+
- Use appropriate content types
|
|
155
|
+
- Enable soft delete for important data
|
|
156
|
+
- Monitor storage usage and costs
|
|
157
|
+
- Use lifecycle management policies
|
|
158
|
+
- Implement retry logic
|
|
159
|
+
- Use connection strings or managed identity
|
|
160
|
+
|
|
161
|
+
❌ **DON'T:**
|
|
162
|
+
- Store sensitive data without encryption
|
|
163
|
+
- Use public access unnecessarily
|
|
164
|
+
- Hardcode credentials
|
|
165
|
+
- Ignore error handling
|
|
166
|
+
- Skip content-type validation
|
|
167
|
+
- Ignore lifecycle policies
|
|
168
|
+
- Skip access logging
|
|
169
|
+
- Use default access levels
|
|
170
|
+
- Ignore cost optimization
|
|
171
|
+
- Store large files without chunking
|
|
172
|
+
|
|
173
|
+
## Configuration
|
|
174
|
+
|
|
175
|
+
### Environment Variables
|
|
176
|
+
```bash
|
|
177
|
+
AZURE_STORAGE_ACCOUNT_NAME=myaccount
|
|
178
|
+
AZURE_STORAGE_ACCOUNT_KEY=your-account-key
|
|
179
|
+
AZURE_CONTAINER_NAME=mycontainer
|
|
180
|
+
AZURE_STORAGE_CONNECTION_STRING=DefaultEndpointsProtocol=https;AccountName=...
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
### Managed Identity (Recommended)
|
|
184
|
+
```typescript
|
|
185
|
+
import { DefaultAzureCredential } from '@azure/identity'
|
|
186
|
+
|
|
187
|
+
const blobServiceClient = new BlobServiceClient(
|
|
188
|
+
`https://${accountName}.blob.core.windows.net`,
|
|
189
|
+
new DefaultAzureCredential()
|
|
190
|
+
)
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
<!-- AZURE_BLOB:END -->
|
|
194
|
+
|