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.
Files changed (182) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +463 -0
  3. package/dist/cli.js +1064 -0
  4. package/package.json +49 -0
  5. package/platforms/claude/adapter.ts +115 -0
  6. package/platforms/junie/adapter.ts +254 -0
  7. package/platforms/junie/agents-template.md +113 -0
  8. package/platforms/junie/hook-translations.md +84 -0
  9. package/platforms/shared/detector.ts +27 -0
  10. package/platforms/shared/installer.ts +202 -0
  11. package/platforms/shared/types.ts +78 -0
  12. package/plugins/ima-claude/.claude-plugin/plugin.json +25 -0
  13. package/plugins/ima-claude/agents/explorer.md +30 -0
  14. package/plugins/ima-claude/agents/implementer.md +30 -0
  15. package/plugins/ima-claude/agents/memory.md +42 -0
  16. package/plugins/ima-claude/agents/reviewer.md +53 -0
  17. package/plugins/ima-claude/agents/tester.md +33 -0
  18. package/plugins/ima-claude/agents/wp-developer.md +46 -0
  19. package/plugins/ima-claude/hooks/README.md +145 -0
  20. package/plugins/ima-claude/hooks/atlassian_prereqs.py +112 -0
  21. package/plugins/ima-claude/hooks/block_sed_edits.py +59 -0
  22. package/plugins/ima-claude/hooks/bootstrap.sh +90 -0
  23. package/plugins/ima-claude/hooks/bootstrap_utility_check.py +94 -0
  24. package/plugins/ima-claude/hooks/composer_autoload_check.py +70 -0
  25. package/plugins/ima-claude/hooks/docs_organization.py +104 -0
  26. package/plugins/ima-claude/hooks/enforce_rg_over_grep.py +56 -0
  27. package/plugins/ima-claude/hooks/fp_utility_check.py +90 -0
  28. package/plugins/ima-claude/hooks/hook_logger.py +69 -0
  29. package/plugins/ima-claude/hooks/hooks.json +239 -0
  30. package/plugins/ima-claude/hooks/jira_issue_fetch.py +79 -0
  31. package/plugins/ima-claude/hooks/jquery_in_wordpress.py +92 -0
  32. package/plugins/ima-claude/hooks/memory_bootstrap.py +79 -0
  33. package/plugins/ima-claude/hooks/memory_store_reminder.py +75 -0
  34. package/plugins/ima-claude/hooks/prompt_coach.py +125 -0
  35. package/plugins/ima-claude/hooks/prompt_coach_digest.md +48 -0
  36. package/plugins/ima-claude/hooks/prompt_coach_system.md +30 -0
  37. package/plugins/ima-claude/hooks/sequential_thinking_check.py +81 -0
  38. package/plugins/ima-claude/hooks/serena_over_grep.py +96 -0
  39. package/plugins/ima-claude/hooks/serena_over_read.py +66 -0
  40. package/plugins/ima-claude/hooks/serena_project_check.py +133 -0
  41. package/plugins/ima-claude/hooks/sql_injection_check.py +73 -0
  42. package/plugins/ima-claude/hooks/task_master_after_plan.py +31 -0
  43. package/plugins/ima-claude/hooks/task_master_before_impl.py +93 -0
  44. package/plugins/ima-claude/hooks/tavily_extract_advanced.py +48 -0
  45. package/plugins/ima-claude/hooks/vestige_before_external.py +86 -0
  46. package/plugins/ima-claude/hooks/webfetch_to_tavily.py +42 -0
  47. package/plugins/ima-claude/hooks/websearch_to_tavily.py +41 -0
  48. package/plugins/ima-claude/hooks/wp_security_check.py +150 -0
  49. package/plugins/ima-claude/personalities/README.md +45 -0
  50. package/plugins/ima-claude/personalities/enable-40k.md +69 -0
  51. package/plugins/ima-claude/personalities/enable-templars.md +69 -0
  52. package/plugins/ima-claude/skills/.research-summary.md +340 -0
  53. package/plugins/ima-claude/skills/architect/SKILL.md +304 -0
  54. package/plugins/ima-claude/skills/compound-bridge/SKILL.md +200 -0
  55. package/plugins/ima-claude/skills/discourse/SKILL.md +440 -0
  56. package/plugins/ima-claude/skills/discourse-admin/SKILL.md +192 -0
  57. package/plugins/ima-claude/skills/discourse-admin/references/api-endpoints.md +441 -0
  58. package/plugins/ima-claude/skills/discourse-admin/references/gotchas.md +107 -0
  59. package/plugins/ima-claude/skills/discourse-admin/references/staging-defaults.md +98 -0
  60. package/plugins/ima-claude/skills/discourse-admin/scripts/discourse-admin.py +319 -0
  61. package/plugins/ima-claude/skills/docs-organize/SKILL.md +254 -0
  62. package/plugins/ima-claude/skills/docs-organize/templates/active-README.md +50 -0
  63. package/plugins/ima-claude/skills/docs-organize/templates/archive-README.md +57 -0
  64. package/plugins/ima-claude/skills/docs-organize/templates/docs-README.md +43 -0
  65. package/plugins/ima-claude/skills/docs-organize/templates/phase-archive-README.md +83 -0
  66. package/plugins/ima-claude/skills/docs-organize/templates/section-README.md +48 -0
  67. package/plugins/ima-claude/skills/docs-organize/templates/transient-README.md +79 -0
  68. package/plugins/ima-claude/skills/docs-organize/templates/transient-gitignore +9 -0
  69. package/plugins/ima-claude/skills/ember-discourse/SKILL.md +496 -0
  70. package/plugins/ima-claude/skills/functional-programmer/SKILL.md +258 -0
  71. package/plugins/ima-claude/skills/ima-bootstrap/SKILL.md +278 -0
  72. package/plugins/ima-claude/skills/ima-bootstrap/references/bootstrap-patterns.md +356 -0
  73. package/plugins/ima-claude/skills/ima-bootstrap/references/ima-brand.md +273 -0
  74. package/plugins/ima-claude/skills/ima-bootstrap/references/theme-integration.md +212 -0
  75. package/plugins/ima-claude/skills/ima-brand/SKILL.md +108 -0
  76. package/plugins/ima-claude/skills/ima-brand/references/brand-identity.md +140 -0
  77. package/plugins/ima-claude/skills/ima-brand/references/digital-standards.md +180 -0
  78. package/plugins/ima-claude/skills/ima-brand/references/visual-system.md +173 -0
  79. package/plugins/ima-claude/skills/ima-forms-expert/SKILL.md +175 -0
  80. package/plugins/ima-claude/skills/ima-forms-expert/references/container-components.md +154 -0
  81. package/plugins/ima-claude/skills/ima-forms-expert/references/examples.md +328 -0
  82. package/plugins/ima-claude/skills/ima-forms-expert/references/field-components.md +298 -0
  83. package/plugins/ima-claude/skills/ima-forms-expert/references/form-factory.md +193 -0
  84. package/plugins/ima-claude/skills/ima-forms-expert/references/quick-reference.md +153 -0
  85. package/plugins/ima-claude/skills/ima-forms-expert/references/validation-engine.md +336 -0
  86. package/plugins/ima-claude/skills/jira-checkpoint/SKILL.md +178 -0
  87. package/plugins/ima-claude/skills/jquery/SKILL.md +413 -0
  88. package/plugins/ima-claude/skills/js-fp/SKILL.md +463 -0
  89. package/plugins/ima-claude/skills/js-fp/core-principles.md +487 -0
  90. package/plugins/ima-claude/skills/js-fp/examples/pure-functions.js +260 -0
  91. package/plugins/ima-claude/skills/js-fp/examples/tests/pure-functions.test.js +262 -0
  92. package/plugins/ima-claude/skills/js-fp/references/anti-patterns.md +120 -0
  93. package/plugins/ima-claude/skills/js-fp/references/performance-patterns.md +116 -0
  94. package/plugins/ima-claude/skills/js-fp/references/testing-patterns.md +134 -0
  95. package/plugins/ima-claude/skills/js-fp-api/SKILL.md +280 -0
  96. package/plugins/ima-claude/skills/js-fp-api/examples/crud-endpoint.js +258 -0
  97. package/plugins/ima-claude/skills/js-fp-api/references/middleware-patterns.md +134 -0
  98. package/plugins/ima-claude/skills/js-fp-api/references/security-sql.md +110 -0
  99. package/plugins/ima-claude/skills/js-fp-api/references/validation-patterns.md +165 -0
  100. package/plugins/ima-claude/skills/js-fp-react/SKILL.md +447 -0
  101. package/plugins/ima-claude/skills/js-fp-react/examples/ProductCard.tsx +65 -0
  102. package/plugins/ima-claude/skills/js-fp-react/references/hooks-advanced.md +136 -0
  103. package/plugins/ima-claude/skills/js-fp-react/references/performance-patterns.md +175 -0
  104. package/plugins/ima-claude/skills/js-fp-vue/SKILL.md +322 -0
  105. package/plugins/ima-claude/skills/js-fp-vue/references/complete-examples.md +397 -0
  106. package/plugins/ima-claude/skills/js-fp-vue/references/composables-advanced.md +282 -0
  107. package/plugins/ima-claude/skills/js-fp-vue/references/reactivity-patterns.md +348 -0
  108. package/plugins/ima-claude/skills/js-fp-vue/references/testing.md +314 -0
  109. package/plugins/ima-claude/skills/js-fp-wordpress/SKILL.md +301 -0
  110. package/plugins/ima-claude/skills/js-fp-wordpress/references/ajax-patterns.md +192 -0
  111. package/plugins/ima-claude/skills/js-fp-wordpress/references/event-patterns.md +136 -0
  112. package/plugins/ima-claude/skills/js-fp-wordpress/references/wp-integration.md +248 -0
  113. package/plugins/ima-claude/skills/livecanvas/SKILL.md +209 -0
  114. package/plugins/ima-claude/skills/livecanvas/references/livecanvas-features.md +311 -0
  115. package/plugins/ima-claude/skills/livecanvas/references/loops-and-logic.md +730 -0
  116. package/plugins/ima-claude/skills/livecanvas/references/picostrap.md +227 -0
  117. package/plugins/ima-claude/skills/mcp-atlassian/SKILL.md +339 -0
  118. package/plugins/ima-claude/skills/mcp-context7/SKILL.md +109 -0
  119. package/plugins/ima-claude/skills/mcp-memory/SKILL.md +182 -0
  120. package/plugins/ima-claude/skills/mcp-qdrant/SKILL.md +233 -0
  121. package/plugins/ima-claude/skills/mcp-sequential/SKILL.md +149 -0
  122. package/plugins/ima-claude/skills/mcp-serena/SKILL.md +174 -0
  123. package/plugins/ima-claude/skills/mcp-tavily/SKILL.md +118 -0
  124. package/plugins/ima-claude/skills/mcp-vestige/SKILL.md +259 -0
  125. package/plugins/ima-claude/skills/php-authnet/SKILL.md +275 -0
  126. package/plugins/ima-claude/skills/php-authnet/references/api-reference.md +624 -0
  127. package/plugins/ima-claude/skills/php-authnet/references/sandbox-testing.md +424 -0
  128. package/plugins/ima-claude/skills/php-fp/SKILL.md +333 -0
  129. package/plugins/ima-claude/skills/php-fp/examples/pure-functions.php +403 -0
  130. package/plugins/ima-claude/skills/php-fp/examples/tests/PureFunctionsTest.php +515 -0
  131. package/plugins/ima-claude/skills/php-fp/references/core-principles.md +277 -0
  132. package/plugins/ima-claude/skills/php-fp/references/testing-patterns.md +374 -0
  133. package/plugins/ima-claude/skills/php-fp-wordpress/SKILL.md +216 -0
  134. package/plugins/ima-claude/skills/php-fp-wordpress/references/fp-patterns.md +275 -0
  135. package/plugins/ima-claude/skills/php-fp-wordpress/references/plugin-architecture.md +295 -0
  136. package/plugins/ima-claude/skills/php-fp-wordpress/references/security-examples.md +203 -0
  137. package/plugins/ima-claude/skills/php-fp-wordpress/references/testing-strategy.md +259 -0
  138. package/plugins/ima-claude/skills/phpunit-wp/SKILL.md +716 -0
  139. package/plugins/ima-claude/skills/playwright/SKILL.md +434 -0
  140. package/plugins/ima-claude/skills/playwright/references/accessibility-testing.md +153 -0
  141. package/plugins/ima-claude/skills/playwright/references/ci-cd.md +268 -0
  142. package/plugins/ima-claude/skills/playwright/references/network-mocking.md +270 -0
  143. package/plugins/ima-claude/skills/playwright/references/visual-regression.md +215 -0
  144. package/plugins/ima-claude/skills/py-fp/SKILL.md +663 -0
  145. package/plugins/ima-claude/skills/py-fp/examples/pure-functions.py +185 -0
  146. package/plugins/ima-claude/skills/py-fp/examples/tests/test_pure_functions.py +244 -0
  147. package/plugins/ima-claude/skills/py-fp/references/core-principles.md +381 -0
  148. package/plugins/ima-claude/skills/py-fp/references/testing-patterns.md +283 -0
  149. package/plugins/ima-claude/skills/quasar-fp/SKILL.md +327 -0
  150. package/plugins/ima-claude/skills/quasar-fp/metadata.json +85 -0
  151. package/plugins/ima-claude/skills/quasar-fp/references/component-patterns.md +257 -0
  152. package/plugins/ima-claude/skills/quasar-fp/references/theme-integration.md +233 -0
  153. package/plugins/ima-claude/skills/quasar-fp/references/utility-classes.md +237 -0
  154. package/plugins/ima-claude/skills/quickstart/SKILL.md +129 -0
  155. package/plugins/ima-claude/skills/rails/SKILL.md +359 -0
  156. package/plugins/ima-claude/skills/resume-session/SKILL.md +68 -0
  157. package/plugins/ima-claude/skills/rg/SKILL.md +205 -0
  158. package/plugins/ima-claude/skills/ruby-fp/SKILL.md +336 -0
  159. package/plugins/ima-claude/skills/save-session/SKILL.md +81 -0
  160. package/plugins/ima-claude/skills/scorecard/SKILL.md +96 -0
  161. package/plugins/ima-claude/skills/skill-analyzer/SKILL.md +127 -0
  162. package/plugins/ima-claude/skills/skill-analyzer/references/advanced-checklist.md +44 -0
  163. package/plugins/ima-claude/skills/skill-analyzer/references/core-checklist.md +60 -0
  164. package/plugins/ima-claude/skills/skill-analyzer/scripts/analyze_skill.py +418 -0
  165. package/plugins/ima-claude/skills/skill-creator/LICENSE.txt +202 -0
  166. package/plugins/ima-claude/skills/skill-creator/SKILL.md +343 -0
  167. package/plugins/ima-claude/skills/skill-creator/references/output-patterns.md +82 -0
  168. package/plugins/ima-claude/skills/skill-creator/references/workflows.md +28 -0
  169. package/plugins/ima-claude/skills/skill-creator/scripts/init_skill.py +303 -0
  170. package/plugins/ima-claude/skills/skill-creator/scripts/package_skill.py +110 -0
  171. package/plugins/ima-claude/skills/skill-creator/scripts/quick_validate.py +103 -0
  172. package/plugins/ima-claude/skills/task-master/SKILL.md +51 -0
  173. package/plugins/ima-claude/skills/task-planner/SKILL.md +228 -0
  174. package/plugins/ima-claude/skills/task-runner/SKILL.md +192 -0
  175. package/plugins/ima-claude/skills/unit-testing/SKILL.md +198 -0
  176. package/plugins/ima-claude/skills/unit-testing/references/mock-patterns.md +181 -0
  177. package/plugins/ima-claude/skills/unit-testing/references/tdd-workflow.md +177 -0
  178. package/plugins/ima-claude/skills/unit-testing/references/test-strategy.md +126 -0
  179. package/plugins/ima-claude/skills/wp-local/SKILL.md +246 -0
  180. package/plugins/ima-claude/skills/wp-local/references/configuration.md +198 -0
  181. package/plugins/ima-claude/skills/wp-local/references/wp-cli-reference.md +406 -0
  182. 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).