ima-claude 2.9.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/LICENSE +21 -0
- package/README.md +463 -0
- package/dist/cli.js +1064 -0
- package/package.json +49 -0
- package/platforms/claude/adapter.ts +115 -0
- package/platforms/junie/adapter.ts +254 -0
- package/platforms/junie/agents-template.md +113 -0
- package/platforms/junie/hook-translations.md +84 -0
- package/platforms/shared/detector.ts +27 -0
- package/platforms/shared/installer.ts +202 -0
- package/platforms/shared/types.ts +78 -0
- package/plugins/ima-claude/.claude-plugin/plugin.json +25 -0
- package/plugins/ima-claude/agents/explorer.md +30 -0
- package/plugins/ima-claude/agents/implementer.md +30 -0
- package/plugins/ima-claude/agents/memory.md +42 -0
- package/plugins/ima-claude/agents/reviewer.md +53 -0
- package/plugins/ima-claude/agents/tester.md +33 -0
- package/plugins/ima-claude/agents/wp-developer.md +46 -0
- package/plugins/ima-claude/hooks/README.md +145 -0
- package/plugins/ima-claude/hooks/atlassian_prereqs.py +112 -0
- package/plugins/ima-claude/hooks/block_sed_edits.py +59 -0
- package/plugins/ima-claude/hooks/bootstrap.sh +90 -0
- package/plugins/ima-claude/hooks/bootstrap_utility_check.py +94 -0
- package/plugins/ima-claude/hooks/composer_autoload_check.py +70 -0
- package/plugins/ima-claude/hooks/docs_organization.py +104 -0
- package/plugins/ima-claude/hooks/enforce_rg_over_grep.py +56 -0
- package/plugins/ima-claude/hooks/fp_utility_check.py +90 -0
- package/plugins/ima-claude/hooks/hook_logger.py +69 -0
- package/plugins/ima-claude/hooks/hooks.json +239 -0
- package/plugins/ima-claude/hooks/jira_issue_fetch.py +79 -0
- package/plugins/ima-claude/hooks/jquery_in_wordpress.py +92 -0
- package/plugins/ima-claude/hooks/memory_bootstrap.py +79 -0
- package/plugins/ima-claude/hooks/memory_store_reminder.py +75 -0
- package/plugins/ima-claude/hooks/prompt_coach.py +125 -0
- package/plugins/ima-claude/hooks/prompt_coach_digest.md +48 -0
- package/plugins/ima-claude/hooks/prompt_coach_system.md +30 -0
- package/plugins/ima-claude/hooks/sequential_thinking_check.py +81 -0
- package/plugins/ima-claude/hooks/serena_over_grep.py +96 -0
- package/plugins/ima-claude/hooks/serena_over_read.py +66 -0
- package/plugins/ima-claude/hooks/serena_project_check.py +133 -0
- package/plugins/ima-claude/hooks/sql_injection_check.py +73 -0
- package/plugins/ima-claude/hooks/task_master_after_plan.py +31 -0
- package/plugins/ima-claude/hooks/task_master_before_impl.py +93 -0
- package/plugins/ima-claude/hooks/tavily_extract_advanced.py +48 -0
- package/plugins/ima-claude/hooks/vestige_before_external.py +86 -0
- package/plugins/ima-claude/hooks/webfetch_to_tavily.py +42 -0
- package/plugins/ima-claude/hooks/websearch_to_tavily.py +41 -0
- package/plugins/ima-claude/hooks/wp_security_check.py +150 -0
- package/plugins/ima-claude/personalities/README.md +45 -0
- package/plugins/ima-claude/personalities/enable-40k.md +69 -0
- package/plugins/ima-claude/personalities/enable-templars.md +69 -0
- package/plugins/ima-claude/skills/.research-summary.md +340 -0
- package/plugins/ima-claude/skills/architect/SKILL.md +304 -0
- package/plugins/ima-claude/skills/compound-bridge/SKILL.md +200 -0
- package/plugins/ima-claude/skills/discourse/SKILL.md +440 -0
- package/plugins/ima-claude/skills/discourse-admin/SKILL.md +192 -0
- package/plugins/ima-claude/skills/discourse-admin/references/api-endpoints.md +441 -0
- package/plugins/ima-claude/skills/discourse-admin/references/gotchas.md +107 -0
- package/plugins/ima-claude/skills/discourse-admin/references/staging-defaults.md +98 -0
- package/plugins/ima-claude/skills/discourse-admin/scripts/discourse-admin.py +319 -0
- package/plugins/ima-claude/skills/docs-organize/SKILL.md +254 -0
- package/plugins/ima-claude/skills/docs-organize/templates/active-README.md +50 -0
- package/plugins/ima-claude/skills/docs-organize/templates/archive-README.md +57 -0
- package/plugins/ima-claude/skills/docs-organize/templates/docs-README.md +43 -0
- package/plugins/ima-claude/skills/docs-organize/templates/phase-archive-README.md +83 -0
- package/plugins/ima-claude/skills/docs-organize/templates/section-README.md +48 -0
- package/plugins/ima-claude/skills/docs-organize/templates/transient-README.md +79 -0
- package/plugins/ima-claude/skills/docs-organize/templates/transient-gitignore +9 -0
- package/plugins/ima-claude/skills/ember-discourse/SKILL.md +496 -0
- package/plugins/ima-claude/skills/functional-programmer/SKILL.md +258 -0
- package/plugins/ima-claude/skills/ima-bootstrap/SKILL.md +278 -0
- package/plugins/ima-claude/skills/ima-bootstrap/references/bootstrap-patterns.md +356 -0
- package/plugins/ima-claude/skills/ima-bootstrap/references/ima-brand.md +273 -0
- package/plugins/ima-claude/skills/ima-bootstrap/references/theme-integration.md +212 -0
- package/plugins/ima-claude/skills/ima-brand/SKILL.md +108 -0
- package/plugins/ima-claude/skills/ima-brand/references/brand-identity.md +140 -0
- package/plugins/ima-claude/skills/ima-brand/references/digital-standards.md +180 -0
- package/plugins/ima-claude/skills/ima-brand/references/visual-system.md +173 -0
- package/plugins/ima-claude/skills/ima-forms-expert/SKILL.md +175 -0
- package/plugins/ima-claude/skills/ima-forms-expert/references/container-components.md +154 -0
- package/plugins/ima-claude/skills/ima-forms-expert/references/examples.md +328 -0
- package/plugins/ima-claude/skills/ima-forms-expert/references/field-components.md +298 -0
- package/plugins/ima-claude/skills/ima-forms-expert/references/form-factory.md +193 -0
- package/plugins/ima-claude/skills/ima-forms-expert/references/quick-reference.md +153 -0
- package/plugins/ima-claude/skills/ima-forms-expert/references/validation-engine.md +336 -0
- package/plugins/ima-claude/skills/jira-checkpoint/SKILL.md +178 -0
- package/plugins/ima-claude/skills/jquery/SKILL.md +413 -0
- package/plugins/ima-claude/skills/js-fp/SKILL.md +463 -0
- package/plugins/ima-claude/skills/js-fp/core-principles.md +487 -0
- package/plugins/ima-claude/skills/js-fp/examples/pure-functions.js +260 -0
- package/plugins/ima-claude/skills/js-fp/examples/tests/pure-functions.test.js +262 -0
- package/plugins/ima-claude/skills/js-fp/references/anti-patterns.md +120 -0
- package/plugins/ima-claude/skills/js-fp/references/performance-patterns.md +116 -0
- package/plugins/ima-claude/skills/js-fp/references/testing-patterns.md +134 -0
- package/plugins/ima-claude/skills/js-fp-api/SKILL.md +280 -0
- package/plugins/ima-claude/skills/js-fp-api/examples/crud-endpoint.js +258 -0
- package/plugins/ima-claude/skills/js-fp-api/references/middleware-patterns.md +134 -0
- package/plugins/ima-claude/skills/js-fp-api/references/security-sql.md +110 -0
- package/plugins/ima-claude/skills/js-fp-api/references/validation-patterns.md +165 -0
- package/plugins/ima-claude/skills/js-fp-react/SKILL.md +447 -0
- package/plugins/ima-claude/skills/js-fp-react/examples/ProductCard.tsx +65 -0
- package/plugins/ima-claude/skills/js-fp-react/references/hooks-advanced.md +136 -0
- package/plugins/ima-claude/skills/js-fp-react/references/performance-patterns.md +175 -0
- package/plugins/ima-claude/skills/js-fp-vue/SKILL.md +322 -0
- package/plugins/ima-claude/skills/js-fp-vue/references/complete-examples.md +397 -0
- package/plugins/ima-claude/skills/js-fp-vue/references/composables-advanced.md +282 -0
- package/plugins/ima-claude/skills/js-fp-vue/references/reactivity-patterns.md +348 -0
- package/plugins/ima-claude/skills/js-fp-vue/references/testing.md +314 -0
- package/plugins/ima-claude/skills/js-fp-wordpress/SKILL.md +301 -0
- package/plugins/ima-claude/skills/js-fp-wordpress/references/ajax-patterns.md +192 -0
- package/plugins/ima-claude/skills/js-fp-wordpress/references/event-patterns.md +136 -0
- package/plugins/ima-claude/skills/js-fp-wordpress/references/wp-integration.md +248 -0
- package/plugins/ima-claude/skills/livecanvas/SKILL.md +209 -0
- package/plugins/ima-claude/skills/livecanvas/references/livecanvas-features.md +311 -0
- package/plugins/ima-claude/skills/livecanvas/references/loops-and-logic.md +730 -0
- package/plugins/ima-claude/skills/livecanvas/references/picostrap.md +227 -0
- package/plugins/ima-claude/skills/mcp-atlassian/SKILL.md +339 -0
- package/plugins/ima-claude/skills/mcp-context7/SKILL.md +109 -0
- package/plugins/ima-claude/skills/mcp-memory/SKILL.md +182 -0
- package/plugins/ima-claude/skills/mcp-qdrant/SKILL.md +233 -0
- package/plugins/ima-claude/skills/mcp-sequential/SKILL.md +149 -0
- package/plugins/ima-claude/skills/mcp-serena/SKILL.md +174 -0
- package/plugins/ima-claude/skills/mcp-tavily/SKILL.md +118 -0
- package/plugins/ima-claude/skills/mcp-vestige/SKILL.md +259 -0
- package/plugins/ima-claude/skills/php-authnet/SKILL.md +275 -0
- package/plugins/ima-claude/skills/php-authnet/references/api-reference.md +624 -0
- package/plugins/ima-claude/skills/php-authnet/references/sandbox-testing.md +424 -0
- package/plugins/ima-claude/skills/php-fp/SKILL.md +333 -0
- package/plugins/ima-claude/skills/php-fp/examples/pure-functions.php +403 -0
- package/plugins/ima-claude/skills/php-fp/examples/tests/PureFunctionsTest.php +515 -0
- package/plugins/ima-claude/skills/php-fp/references/core-principles.md +277 -0
- package/plugins/ima-claude/skills/php-fp/references/testing-patterns.md +374 -0
- package/plugins/ima-claude/skills/php-fp-wordpress/SKILL.md +216 -0
- package/plugins/ima-claude/skills/php-fp-wordpress/references/fp-patterns.md +275 -0
- package/plugins/ima-claude/skills/php-fp-wordpress/references/plugin-architecture.md +295 -0
- package/plugins/ima-claude/skills/php-fp-wordpress/references/security-examples.md +203 -0
- package/plugins/ima-claude/skills/php-fp-wordpress/references/testing-strategy.md +259 -0
- package/plugins/ima-claude/skills/phpunit-wp/SKILL.md +716 -0
- package/plugins/ima-claude/skills/playwright/SKILL.md +434 -0
- package/plugins/ima-claude/skills/playwright/references/accessibility-testing.md +153 -0
- package/plugins/ima-claude/skills/playwright/references/ci-cd.md +268 -0
- package/plugins/ima-claude/skills/playwright/references/network-mocking.md +270 -0
- package/plugins/ima-claude/skills/playwright/references/visual-regression.md +215 -0
- package/plugins/ima-claude/skills/py-fp/SKILL.md +663 -0
- package/plugins/ima-claude/skills/py-fp/examples/pure-functions.py +185 -0
- package/plugins/ima-claude/skills/py-fp/examples/tests/test_pure_functions.py +244 -0
- package/plugins/ima-claude/skills/py-fp/references/core-principles.md +381 -0
- package/plugins/ima-claude/skills/py-fp/references/testing-patterns.md +283 -0
- package/plugins/ima-claude/skills/quasar-fp/SKILL.md +327 -0
- package/plugins/ima-claude/skills/quasar-fp/metadata.json +85 -0
- package/plugins/ima-claude/skills/quasar-fp/references/component-patterns.md +257 -0
- package/plugins/ima-claude/skills/quasar-fp/references/theme-integration.md +233 -0
- package/plugins/ima-claude/skills/quasar-fp/references/utility-classes.md +237 -0
- package/plugins/ima-claude/skills/quickstart/SKILL.md +129 -0
- package/plugins/ima-claude/skills/rails/SKILL.md +359 -0
- package/plugins/ima-claude/skills/resume-session/SKILL.md +68 -0
- package/plugins/ima-claude/skills/rg/SKILL.md +205 -0
- package/plugins/ima-claude/skills/ruby-fp/SKILL.md +336 -0
- package/plugins/ima-claude/skills/save-session/SKILL.md +81 -0
- package/plugins/ima-claude/skills/scorecard/SKILL.md +96 -0
- package/plugins/ima-claude/skills/skill-analyzer/SKILL.md +127 -0
- package/plugins/ima-claude/skills/skill-analyzer/references/advanced-checklist.md +44 -0
- package/plugins/ima-claude/skills/skill-analyzer/references/core-checklist.md +60 -0
- package/plugins/ima-claude/skills/skill-analyzer/scripts/analyze_skill.py +418 -0
- package/plugins/ima-claude/skills/skill-creator/LICENSE.txt +202 -0
- package/plugins/ima-claude/skills/skill-creator/SKILL.md +343 -0
- package/plugins/ima-claude/skills/skill-creator/references/output-patterns.md +82 -0
- package/plugins/ima-claude/skills/skill-creator/references/workflows.md +28 -0
- package/plugins/ima-claude/skills/skill-creator/scripts/init_skill.py +303 -0
- package/plugins/ima-claude/skills/skill-creator/scripts/package_skill.py +110 -0
- package/plugins/ima-claude/skills/skill-creator/scripts/quick_validate.py +103 -0
- package/plugins/ima-claude/skills/task-master/SKILL.md +51 -0
- package/plugins/ima-claude/skills/task-planner/SKILL.md +228 -0
- package/plugins/ima-claude/skills/task-runner/SKILL.md +192 -0
- package/plugins/ima-claude/skills/unit-testing/SKILL.md +198 -0
- package/plugins/ima-claude/skills/unit-testing/references/mock-patterns.md +181 -0
- package/plugins/ima-claude/skills/unit-testing/references/tdd-workflow.md +177 -0
- package/plugins/ima-claude/skills/unit-testing/references/test-strategy.md +126 -0
- package/plugins/ima-claude/skills/wp-local/SKILL.md +246 -0
- package/plugins/ima-claude/skills/wp-local/references/configuration.md +198 -0
- package/plugins/ima-claude/skills/wp-local/references/wp-cli-reference.md +406 -0
- package/plugins/ima-claude/skills/wp-local/scripts/wp-local.sh +61 -0
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: mcp-serena
|
|
3
|
+
description: "Use Serena MCP for ALL code navigation and investigation — it saves 40-70% tokens vs reading files. Use INSTEAD of Read/Grep when exploring code structure: get_symbols_overview (structure without reading), find_symbol (locate any class/method/function), find_referencing_symbols (all callers). Triggers on: where is X used, find references, what calls X, rename X, refactor X, show X usage, track down X, what does class X look like, find the function, look up the method, explore this file, understand this code, how is X implemented. With PHPStorm+Serena: works across PHP, TypeScript, JS, Vue, Python."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Serena MCP - Code Symbol Operations
|
|
7
|
+
|
|
8
|
+
Use Serena for code symbol discovery and modification instead of reading entire files.
|
|
9
|
+
|
|
10
|
+
## Setup: Direct Access
|
|
11
|
+
|
|
12
|
+
Serena runs directly (not through Airis gateway). Tools are available as `mcp__serena__*`.
|
|
13
|
+
|
|
14
|
+
## MCP Tools
|
|
15
|
+
|
|
16
|
+
| Tool | Purpose |
|
|
17
|
+
|------|---------|
|
|
18
|
+
| `mcp__serena__jet_brains_find_symbol` | Find symbols by name path pattern |
|
|
19
|
+
| `mcp__serena__jet_brains_find_referencing_symbols` | Find all references to a symbol |
|
|
20
|
+
| `mcp__serena__rename_symbol` | Rename symbol across entire codebase |
|
|
21
|
+
| `mcp__serena__jet_brains_get_symbols_overview` | Get top-level symbols in a file |
|
|
22
|
+
| `mcp__serena__search_for_pattern` | Regex pattern search (better for Vue) |
|
|
23
|
+
| `mcp__serena__list_dir` | List directory contents |
|
|
24
|
+
|
|
25
|
+
## Workflow: Symbol Discovery
|
|
26
|
+
|
|
27
|
+
### Find a Symbol
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
mcp__serena__jet_brains_find_symbol
|
|
31
|
+
name_path_pattern: "UserService"
|
|
32
|
+
include_body: false
|
|
33
|
+
depth: 1
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
- Use `depth: 1` to see methods/properties
|
|
37
|
+
- Use `include_body: true` only when you need implementation details
|
|
38
|
+
- Use `relative_path` to narrow search scope
|
|
39
|
+
|
|
40
|
+
### Find All References
|
|
41
|
+
|
|
42
|
+
```
|
|
43
|
+
mcp__serena__jet_brains_find_referencing_symbols
|
|
44
|
+
name_path: "UserService/getUserData"
|
|
45
|
+
relative_path: "src/services/user.ts"
|
|
46
|
+
include_info: true
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### Get File Overview
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
mcp__serena__jet_brains_get_symbols_overview
|
|
53
|
+
relative_path: "src/services/user.ts"
|
|
54
|
+
depth: 1
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
Better than reading entire file when you just need structure.
|
|
58
|
+
|
|
59
|
+
## Workflow: Symbol Modification
|
|
60
|
+
|
|
61
|
+
### Rename Symbol
|
|
62
|
+
|
|
63
|
+
```
|
|
64
|
+
mcp__serena__rename_symbol
|
|
65
|
+
name_path: "getUserData"
|
|
66
|
+
relative_path: "src/services/user.ts"
|
|
67
|
+
new_name: "fetchUserData"
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
Automatically updates all references across the codebase.
|
|
71
|
+
|
|
72
|
+
## Gitignore Handling (Important)
|
|
73
|
+
|
|
74
|
+
**Known Issue**: Serena has problems with complex `.gitignore` negation patterns (GitHub Issue #600).
|
|
75
|
+
|
|
76
|
+
Example problem:
|
|
77
|
+
```gitignore
|
|
78
|
+
plugins/ # Ignored
|
|
79
|
+
!plugins/custom/ # Re-included (but Serena may still ignore it)
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
Serena's `is_ignored_path()` returns `True` early, bypassing negation logic.
|
|
83
|
+
|
|
84
|
+
### Workarounds
|
|
85
|
+
|
|
86
|
+
**For `list_dir`** - use `skip_ignored_files: false`:
|
|
87
|
+
```
|
|
88
|
+
mcp__serena__list_dir
|
|
89
|
+
relative_path: "plugins"
|
|
90
|
+
recursive: true
|
|
91
|
+
skip_ignored_files: false
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
**For `search_for_pattern`** - target folder directly with `relative_path`:
|
|
95
|
+
```
|
|
96
|
+
mcp__serena__search_for_pattern
|
|
97
|
+
substring_pattern: "functionName"
|
|
98
|
+
relative_path: "plugins/custom"
|
|
99
|
+
context_lines_before: 2
|
|
100
|
+
context_lines_after: 2
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
**Alternative** - use explicit glob to include:
|
|
104
|
+
```
|
|
105
|
+
mcp__serena__search_for_pattern
|
|
106
|
+
substring_pattern: "functionName"
|
|
107
|
+
paths_include_glob: "**/plugins/**"
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
## Vue 3 / Quasar Projects
|
|
111
|
+
|
|
112
|
+
**Important**: TypeScript LSP doesn't fully understand Vue 3 `<script setup>` syntax.
|
|
113
|
+
|
|
114
|
+
For `.vue` files and `src/composables/`, prefer pattern search:
|
|
115
|
+
|
|
116
|
+
```
|
|
117
|
+
mcp__serena__search_for_pattern
|
|
118
|
+
substring_pattern: "import.*useAuth|from.*useAuth"
|
|
119
|
+
paths_include_glob: "**/*.vue"
|
|
120
|
+
context_lines_before: 2
|
|
121
|
+
context_lines_after: 2
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
**Decision Logic for Vue**:
|
|
125
|
+
```
|
|
126
|
+
IF target is .vue file OR src/composables/:
|
|
127
|
+
→ Use search_for_pattern (more reliable)
|
|
128
|
+
ELSE IF pure .ts/.js files:
|
|
129
|
+
→ Use LSP tools (find_symbol, find_referencing_symbols)
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
## Decision Logic
|
|
133
|
+
|
|
134
|
+
```
|
|
135
|
+
IF need to find/understand code symbols:
|
|
136
|
+
→ Use find_symbol, find_referencing_symbols
|
|
137
|
+
ELSE IF need to rename/refactor symbol:
|
|
138
|
+
→ Use rename_symbol (handles dependencies automatically)
|
|
139
|
+
ELSE IF simple text pattern search:
|
|
140
|
+
→ Use search_for_pattern
|
|
141
|
+
ELSE IF searching in gitignore-negated folder:
|
|
142
|
+
→ Use relative_path to target directly OR skip_ignored_files: false
|
|
143
|
+
ELSE IF reading full file needed:
|
|
144
|
+
→ Use native Read tool
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
## Error Recovery
|
|
148
|
+
|
|
149
|
+
| Error | Recovery |
|
|
150
|
+
|-------|----------|
|
|
151
|
+
| Symbol not found | Try broader name_path_pattern, check spelling |
|
|
152
|
+
| Vue SFC issues | Switch to search_for_pattern |
|
|
153
|
+
| Gitignore blocking folder | Use relative_path directly or skip_ignored_files: false |
|
|
154
|
+
| Rename failed | Check if symbol is in external dependency |
|
|
155
|
+
| Too many results | Add relative_path to narrow scope |
|
|
156
|
+
|
|
157
|
+
## When NOT to Use
|
|
158
|
+
|
|
159
|
+
- Simple text searches (use Grep)
|
|
160
|
+
- Reading configuration files (use Read)
|
|
161
|
+
- Operations on non-code files (markdown, json, yaml)
|
|
162
|
+
- When you need file content, not symbol info
|
|
163
|
+
|
|
164
|
+
## Examples
|
|
165
|
+
|
|
166
|
+
| User Request | Action |
|
|
167
|
+
|--------------|--------|
|
|
168
|
+
| "Where is UserService used?" | find_referencing_symbols(name_path: "UserService") |
|
|
169
|
+
| "Rename getUserData to fetchUser" | rename_symbol(name_path: "getUserData", new_name: "fetchUser") |
|
|
170
|
+
| "What methods does AuthService have?" | find_symbol(name_path: "AuthService", depth: 1) |
|
|
171
|
+
| "Find useAuth usage in Vue files" | search_for_pattern(pattern: "useAuth", glob: "**/*.vue") |
|
|
172
|
+
| "Search in plugins folder" | search_for_pattern(relative_path: "plugins/custom") |
|
|
173
|
+
| "List plugins directory" | list_dir(relative_path: "plugins", skip_ignored_files: false) |
|
|
174
|
+
| "Show me the user.ts file" | Native Read (full file needed) |
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: mcp-tavily
|
|
3
|
+
description: Use Tavily MCP for web research and current information beyond knowledge cutoff (post-January 2025). Triggers on 'latest', 'current', '2025', '2026', 'what's new', 'recent updates', 'modern approach', 'compare options', research questions requiring multiple sources, or any question about events/releases/changes after January 2025. Provides 60-70% token savings over multiple WebFetch calls.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Tavily MCP - Web Research & Current Information
|
|
7
|
+
|
|
8
|
+
Use Tavily for current information and research instead of multiple WebFetch calls.
|
|
9
|
+
|
|
10
|
+
## MCP Tools
|
|
11
|
+
|
|
12
|
+
| Tool | Purpose |
|
|
13
|
+
|------|---------|
|
|
14
|
+
| `mcp__tavily__search` | Web search with depth control |
|
|
15
|
+
| `mcp__tavily__extract` | Extract content from specific URLs |
|
|
16
|
+
|
|
17
|
+
## Basic Search
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
mcp__tavily__search
|
|
21
|
+
query: "Vue 4 new features 2026"
|
|
22
|
+
search_depth: "basic"
|
|
23
|
+
max_results: 10
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
**Key parameters**:
|
|
27
|
+
- `query` (required): Search query string
|
|
28
|
+
- `search_depth`: "basic" | "advanced" (default: "basic")
|
|
29
|
+
- `max_results`: Number of results (default: 5)
|
|
30
|
+
- `topic`: "general" | "news" (default: "general")
|
|
31
|
+
- `days`: Limit results to last N days (optional)
|
|
32
|
+
- `include_domains`: Array of domains to include (optional)
|
|
33
|
+
- `exclude_domains`: Array of domains to exclude (optional)
|
|
34
|
+
|
|
35
|
+
## Search Depth Selection
|
|
36
|
+
|
|
37
|
+
| Depth | Use Case | Response Time |
|
|
38
|
+
|-------|----------|---------------|
|
|
39
|
+
| `basic` | Standard factual lookups, quick answers | Fast |
|
|
40
|
+
| `advanced` | Comprehensive research, comparisons, multiple perspectives | Slower, more thorough |
|
|
41
|
+
|
|
42
|
+
## Query Optimization
|
|
43
|
+
|
|
44
|
+
**Effective queries**:
|
|
45
|
+
- Include year: "React 19 features 2026"
|
|
46
|
+
- Be specific: "Vite 6 breaking changes" not "Vite updates"
|
|
47
|
+
- Add context: "TypeScript 5.5 new utility types"
|
|
48
|
+
|
|
49
|
+
**Query patterns**:
|
|
50
|
+
| Need | Query Pattern |
|
|
51
|
+
|------|---------------|
|
|
52
|
+
| Latest version features | "[library] [version] new features [year]" |
|
|
53
|
+
| Breaking changes | "[library] [version] migration breaking changes" |
|
|
54
|
+
| Comparisons | "[tool A] vs [tool B] comparison [year]" |
|
|
55
|
+
| Best practices | "[topic] best practices [year]" |
|
|
56
|
+
|
|
57
|
+
## Extract Content
|
|
58
|
+
|
|
59
|
+
```
|
|
60
|
+
mcp__tavily__extract
|
|
61
|
+
urls: ["https://example.com/article"]
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
Extracts clean content from specific URLs.
|
|
65
|
+
|
|
66
|
+
## Decision Logic
|
|
67
|
+
|
|
68
|
+
```
|
|
69
|
+
IF question requires post-January-2025 information:
|
|
70
|
+
→ Use Tavily
|
|
71
|
+
ELSE IF research needs multiple web sources:
|
|
72
|
+
→ Use Tavily
|
|
73
|
+
ELSE IF single known URL needed:
|
|
74
|
+
→ Use native WebFetch
|
|
75
|
+
ELSE IF question within Claude's knowledge:
|
|
76
|
+
→ Use native Claude
|
|
77
|
+
ELSE IF asking about library API (not "what's new"):
|
|
78
|
+
→ Use Context7 instead
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
## When NOT to Use
|
|
82
|
+
|
|
83
|
+
- Library API documentation (use Context7)
|
|
84
|
+
- Code symbol searches (use Serena)
|
|
85
|
+
- Questions Claude already knows (pre-cutoff knowledge)
|
|
86
|
+
- Single URL content extraction where native WebFetch works
|
|
87
|
+
|
|
88
|
+
## Examples
|
|
89
|
+
|
|
90
|
+
| User Request | Action |
|
|
91
|
+
|--------------|--------|
|
|
92
|
+
| "What's new in Vue 4?" | tavily search(query: "Vue 4 new features 2026", search_depth: "basic") |
|
|
93
|
+
| "Compare Bun vs Node 2026" | tavily search(query: "Bun vs Node.js comparison 2026", search_depth: "advanced") |
|
|
94
|
+
| "Latest Vite features" | tavily search(query: "Vite latest features 2026") |
|
|
95
|
+
| "How does useState work?" | Native Claude (known knowledge) |
|
|
96
|
+
| "Quasar QDialog API" | Use Context7 (library docs) |
|
|
97
|
+
|
|
98
|
+
## Source Attribution
|
|
99
|
+
|
|
100
|
+
After using Tavily, always include sources section:
|
|
101
|
+
|
|
102
|
+
```
|
|
103
|
+
Sources:
|
|
104
|
+
- [Official Vue Blog](https://blog.vuejs.org/...)
|
|
105
|
+
- [Release Notes](https://github.com/vuejs/...)
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
## Setup
|
|
109
|
+
|
|
110
|
+
Requires Tavily API key. Install with:
|
|
111
|
+
```bash
|
|
112
|
+
bun run scripts/setup-mcp.ts
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
Or manually:
|
|
116
|
+
```bash
|
|
117
|
+
claude mcp add --scope user -e TAVILY_API_KEY=your-key -- tavily npx -y tavily-mcp@latest
|
|
118
|
+
```
|
|
@@ -0,0 +1,259 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: "mcp-vestige"
|
|
3
|
+
description: "Cognitive memory engine with semantic search, spaced repetition, and codebase awareness. Replaces Memory MCP for all persistent knowledge: preferences, decisions, patterns, bugs, intentions. You MUST use this proactively - search at session start, store decisions as they happen, set intentions for future work. Triggers on: remember this, what did we decide, previously, last time, remind me, set intention, and always proactively."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Vestige MCP - Cognitive Memory Engine
|
|
7
|
+
|
|
8
|
+
**Replaces Memory MCP.** Vestige is a Rust-based cognitive memory system with FSRS-6 spaced repetition, semantic search, prediction error gating, and codebase awareness.
|
|
9
|
+
|
|
10
|
+
## Architecture (3-Tier Memory)
|
|
11
|
+
|
|
12
|
+
| System | Role | Lifecycle | Example |
|
|
13
|
+
|--------|------|-----------|---------|
|
|
14
|
+
| **Vestige** | Neural memory — decisions, preferences, patterns, bugs, learnings | Fades if unused (FSRS-6 decay) | "We chose JWT over sessions because..." |
|
|
15
|
+
| **Qdrant** | Permanent library — reference material, standards, PRDs, architecture docs | Persistent forever | "Our payment system uses Accept.js with ARB" |
|
|
16
|
+
| **Serena Memory** | Project workbench — session state, task progress | Project-scoped, survives git ops | "Currently on task 3/5, next: write tests" |
|
|
17
|
+
|
|
18
|
+
## Session Start Protocol (REQUIRED)
|
|
19
|
+
|
|
20
|
+
At session start, BEFORE asking questions:
|
|
21
|
+
|
|
22
|
+
```
|
|
23
|
+
mcp__vestige__search query: "{project-name}" limit: 5
|
|
24
|
+
mcp__vestige__search query: "user-eric preferences" limit: 5
|
|
25
|
+
mcp__vestige__intention action: "check"
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
If working in a Serena-activated project, also check:
|
|
29
|
+
```
|
|
30
|
+
mcp__serena__list_memories
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Core Tools
|
|
34
|
+
|
|
35
|
+
### Search (Your Most-Used Tool)
|
|
36
|
+
|
|
37
|
+
```
|
|
38
|
+
mcp__vestige__search
|
|
39
|
+
query: "authentication decision"
|
|
40
|
+
limit: 5
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Hybrid search — keyword + semantic + RRF fusion. Returns ranked results with similarity scores.
|
|
44
|
+
|
|
45
|
+
### Smart Ingest (Intelligent Storage)
|
|
46
|
+
|
|
47
|
+
```
|
|
48
|
+
mcp__vestige__smart_ingest
|
|
49
|
+
content: "We chose Zod over Yup for validation because..."
|
|
50
|
+
node_type: "decision"
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
Automatically handles CREATE/UPDATE/SUPERSEDE based on similarity thresholds:
|
|
54
|
+
|
|
55
|
+
| Similarity | Action | Meaning |
|
|
56
|
+
|------------|--------|---------|
|
|
57
|
+
| >92% | REINFORCE | Near-duplicate — strengthen existing memory |
|
|
58
|
+
| 75-92% | UPDATE | Related — merge new info into existing |
|
|
59
|
+
| <75% | CREATE | Novel — store as new memory |
|
|
60
|
+
|
|
61
|
+
**Always prefer `smart_ingest` over `ingest`** — it prevents duplicates and maintains coherence.
|
|
62
|
+
|
|
63
|
+
### Direct Ingest (When You Need Control)
|
|
64
|
+
|
|
65
|
+
```
|
|
66
|
+
mcp__vestige__ingest
|
|
67
|
+
content: "User prefers early returns over nested conditionals"
|
|
68
|
+
node_type: "preference"
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
Bypasses dedup logic. Use only when you specifically want to force a new entry.
|
|
72
|
+
|
|
73
|
+
### Memory (Retrieve/Remove/Check)
|
|
74
|
+
|
|
75
|
+
```
|
|
76
|
+
mcp__vestige__memory
|
|
77
|
+
action: "get"
|
|
78
|
+
id: "{memory-id}"
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
Actions: `get`, `remove`, `check_state`
|
|
82
|
+
|
|
83
|
+
## Codebase Tools
|
|
84
|
+
|
|
85
|
+
```
|
|
86
|
+
mcp__vestige__codebase
|
|
87
|
+
content: "LoginForm uses composition API with Zod validation"
|
|
88
|
+
pattern_type: "architecture"
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
Store codebase patterns and architectural decisions. Pattern types: `architecture`, `pattern`, `convention`, `dependency`.
|
|
92
|
+
|
|
93
|
+
## Feedback Tools
|
|
94
|
+
|
|
95
|
+
```
|
|
96
|
+
mcp__vestige__promote_memory id: "{memory-id}"
|
|
97
|
+
mcp__vestige__demote_memory id: "{memory-id}"
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
Strengthen or weaken memories based on relevance. Use when:
|
|
101
|
+
- **Promote**: Memory proved useful, user referenced it, decision confirmed
|
|
102
|
+
- **Demote**: Memory outdated, user contradicted it, no longer relevant
|
|
103
|
+
|
|
104
|
+
## Intention Tools
|
|
105
|
+
|
|
106
|
+
```
|
|
107
|
+
mcp__vestige__intention
|
|
108
|
+
action: "set"
|
|
109
|
+
content: "Review test coverage after auth refactor"
|
|
110
|
+
trigger: "next session"
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
Actions: `set`, `check`, `complete`, `cancel`
|
|
114
|
+
|
|
115
|
+
Set reminders and future triggers that surface automatically at session start.
|
|
116
|
+
|
|
117
|
+
## Session & Maintenance Tools
|
|
118
|
+
|
|
119
|
+
| Tool | Purpose |
|
|
120
|
+
|------|---------|
|
|
121
|
+
| `session_checkpoint` | Batch-save an entire session's work |
|
|
122
|
+
| `find_duplicates` | Detect and merge redundant memories |
|
|
123
|
+
| `consolidate` | Run FSRS-6 decay and maintenance |
|
|
124
|
+
| `importance_score` | 4-channel scoring (novelty, arousal, reward, attention) |
|
|
125
|
+
| `memory_timeline` | Browse memories chronologically |
|
|
126
|
+
| `health_check` | System health with warnings |
|
|
127
|
+
|
|
128
|
+
## Proactive Behavior Rules
|
|
129
|
+
|
|
130
|
+
**These are MUST behaviors, not suggestions:**
|
|
131
|
+
|
|
132
|
+
### 1. Session Start: Search for Context
|
|
133
|
+
When beginning work on any project, **automatically search** for relevant context:
|
|
134
|
+
```
|
|
135
|
+
mcp__vestige__search query: "{project-name}"
|
|
136
|
+
mcp__vestige__search query: "user-eric"
|
|
137
|
+
mcp__vestige__intention action: "check"
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
### 2. During Work: Store Decisions As They Happen
|
|
141
|
+
When ANY of these occur, **immediately store without being asked**:
|
|
142
|
+
|
|
143
|
+
| Event | Action |
|
|
144
|
+
|-------|--------|
|
|
145
|
+
| User states a preference | `smart_ingest` with node_type: "preference" |
|
|
146
|
+
| Architectural decision made | `smart_ingest` with node_type: "decision" |
|
|
147
|
+
| Bug root cause identified | `smart_ingest` with node_type: "bug" |
|
|
148
|
+
| Pattern chosen over alternatives | `smart_ingest` with node_type: "pattern" |
|
|
149
|
+
| User corrects your approach | `smart_ingest` with node_type: "preference" |
|
|
150
|
+
| Codebase pattern discovered | `codebase` with appropriate pattern_type |
|
|
151
|
+
| `/workflows:compound` creates solution | `smart_ingest` with node_type: "pattern" (root cause + insight) |
|
|
152
|
+
| `/workflows:plan` research completes | `smart_ingest` with node_type: "decision" (approach chosen) |
|
|
153
|
+
| `/workflows:review` finds P1/P2 | `smart_ingest` with node_type: "pattern" (finding summary) |
|
|
154
|
+
|
|
155
|
+
**Recognition patterns** — store when you hear:
|
|
156
|
+
- "I prefer..." / "I like..." / "I always..." / "I never..."
|
|
157
|
+
- "Let's go with X because..." / "We chose X over Y"
|
|
158
|
+
- "The reason this failed was..." / "Root cause:"
|
|
159
|
+
- "From now on..." / "Going forward..."
|
|
160
|
+
- "That's not how we do it" / "Actually, we..."
|
|
161
|
+
|
|
162
|
+
### 3. Session End: Capture Learnings
|
|
163
|
+
Before ending significant sessions:
|
|
164
|
+
- What decisions were made that should persist?
|
|
165
|
+
- What did you learn about the user's preferences?
|
|
166
|
+
- Set any intentions for future work?
|
|
167
|
+
|
|
168
|
+
### 4. Before Asking Questions You Might Already Know
|
|
169
|
+
Before asking "What framework do you use?" or "How do you prefer X?", **search first**:
|
|
170
|
+
```
|
|
171
|
+
mcp__vestige__search query: "preference {topic}"
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
## Node Types Reference
|
|
175
|
+
|
|
176
|
+
| Type | Use For |
|
|
177
|
+
|------|---------|
|
|
178
|
+
| `preference` | User preferences, corrections, working style |
|
|
179
|
+
| `decision` | Architectural choices with rationale |
|
|
180
|
+
| `pattern` | Reusable code patterns, conventions |
|
|
181
|
+
| `bug` | Root causes worth remembering |
|
|
182
|
+
| `codebase` | Code architecture, file structure, dependencies |
|
|
183
|
+
| `intention` | Future reminders and triggers |
|
|
184
|
+
| `note` | General knowledge, learnings |
|
|
185
|
+
|
|
186
|
+
## Memory States
|
|
187
|
+
|
|
188
|
+
Vestige manages memory lifecycle automatically via FSRS-6:
|
|
189
|
+
|
|
190
|
+
| State | Meaning |
|
|
191
|
+
|-------|---------|
|
|
192
|
+
| **Active** | Readily accessible, frequently retrieved |
|
|
193
|
+
| **Dormant** | Stored but weakly retrievable — promote if still relevant |
|
|
194
|
+
| **Silent** | Deeply encoded, temporarily inaccessible |
|
|
195
|
+
| **Unavailable** | Naturally decayed or removed |
|
|
196
|
+
|
|
197
|
+
Memories that are searched for get reinforced. Unused memories naturally decay. This prevents knowledge bloat without manual cleanup.
|
|
198
|
+
|
|
199
|
+
## Decision Logic
|
|
200
|
+
|
|
201
|
+
**Will it fade if we stop referencing it? That determines where it goes.**
|
|
202
|
+
|
|
203
|
+
```
|
|
204
|
+
IF knowledge that should strengthen with use, fade if unused
|
|
205
|
+
(preferences, decisions, patterns, bugs, learnings):
|
|
206
|
+
→ Vestige smart_ingest (neural memory — decays naturally)
|
|
207
|
+
ELSE IF reference material that should never be forgotten
|
|
208
|
+
(wiki, standards, PRDs, architecture docs, code samples):
|
|
209
|
+
→ Qdrant qdrant-store (permanent library)
|
|
210
|
+
ELSE IF session state or project progress:
|
|
211
|
+
→ Serena write_memory (project workbench)
|
|
212
|
+
ELSE IF future reminder or intention:
|
|
213
|
+
→ Vestige intention
|
|
214
|
+
ELSE IF codebase architecture pattern:
|
|
215
|
+
→ Vestige codebase
|
|
216
|
+
ELSE IF searching for prior context:
|
|
217
|
+
→ Vestige search (semantic + keyword)
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
## What NOT to Store
|
|
221
|
+
|
|
222
|
+
- Temporary debugging steps (use Serena session state instead)
|
|
223
|
+
- One-off fixes unlikely to recur
|
|
224
|
+
- Information already in project docs (CLAUDE.md, README)
|
|
225
|
+
- Sensitive data (credentials, API keys)
|
|
226
|
+
- Session progress (use Serena for that)
|
|
227
|
+
|
|
228
|
+
## Migration from Memory MCP
|
|
229
|
+
|
|
230
|
+
Vestige replaces Memory MCP. The mapping:
|
|
231
|
+
|
|
232
|
+
| Memory MCP | Vestige Equivalent |
|
|
233
|
+
|------------|-------------------|
|
|
234
|
+
| `search_nodes` | `search` (semantic + keyword hybrid) |
|
|
235
|
+
| `open_nodes` | `search` with specific name |
|
|
236
|
+
| `create_entities` | `smart_ingest` (auto-dedup) |
|
|
237
|
+
| `add_observations` | `smart_ingest` (auto-UPDATE on similarity) |
|
|
238
|
+
| `create_relations` | Not needed — spreading activation via semantic similarity |
|
|
239
|
+
| `read_graph` | `memory_timeline` or `search` |
|
|
240
|
+
| `delete_*` | `memory` with action: "remove" or `demote_memory` |
|
|
241
|
+
|
|
242
|
+
## Setup
|
|
243
|
+
|
|
244
|
+
Install Vestige MCP:
|
|
245
|
+
|
|
246
|
+
```bash
|
|
247
|
+
# Via cargo (Rust required)
|
|
248
|
+
cargo install vestige-mcp
|
|
249
|
+
|
|
250
|
+
# Or download binary from releases
|
|
251
|
+
# https://github.com/samvallad33/vestige/releases
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
Configure in Claude Code:
|
|
255
|
+
```bash
|
|
256
|
+
claude mcp add --scope user vestige -- vestige-mcp
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
Configuration is stored in `~/.config/vestige/` (global) or `.vestige/` (per-project).
|