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,182 @@
1
+ ---
2
+ name: "mcp-memory"
3
+ description: "DEPRECATED — Use mcp-vestige instead. Vestige provides semantic search, spaced repetition, auto-dedup, and codebase awareness as a superset of Memory MCP. Triggers on: mcp-memory."
4
+ ---
5
+
6
+ > **DEPRECATED**: This skill is replaced by **mcp-vestige**. Vestige is a superset of Memory MCP with semantic search, FSRS-6 spaced repetition, prediction error gating, and codebase awareness. All proactive memory behaviors now route through Vestige.
7
+ >
8
+ > This file is retained for reference during the transition period.
9
+
10
+ # Memory MCP - Proactive Knowledge Graph (DEPRECATED)
11
+
12
+ **You have access to a persistent knowledge graph that you rely on across all sessions.**
13
+
14
+ Like Serena for code operations, Memory MCP is your system for preserving context. You use it **proactively** without being asked - checking for relevant context, storing decisions as they're made, and capturing learnings.
15
+
16
+ ## Proactive Behavior Rules
17
+
18
+ **These are MUST behaviors, not suggestions:**
19
+
20
+ ### 1. Session Start: Check for Context
21
+ When beginning work on any project, **automatically search memory** for relevant context:
22
+ ```
23
+ mcp__memory__search_nodes query: "{project-name}"
24
+ mcp__memory__open_nodes names: ["user-eric"]
25
+ ```
26
+ This takes 2 seconds and prevents re-learning what you already know.
27
+
28
+ ### 2. During Work: Store Decisions As They Happen
29
+ When ANY of these occur, **immediately store without being asked**:
30
+
31
+ | Event | Action |
32
+ |-------|--------|
33
+ | User states a preference | Store to `user-eric` entity |
34
+ | Architectural decision made | Create `decision-{topic}` entity |
35
+ | Bug root cause identified | Create `bug-{description}` entity |
36
+ | Pattern chosen over alternatives | Create `pattern-{name}` with rationale |
37
+ | User corrects your approach | Update `user-eric` with the correction |
38
+ | Configuration choice with rationale | Create `decision-{topic}` entity |
39
+
40
+ **Recognition patterns** - store when you hear:
41
+ - "I prefer..." / "I like..." / "I always..." / "I never..."
42
+ - "Let's go with X because..." / "We chose X over Y"
43
+ - "The reason this failed was..." / "Root cause:"
44
+ - "From now on..." / "Going forward..."
45
+ - "That's not how we do it" / "Actually, we..."
46
+
47
+ ### 3. Session End: Capture Learnings
48
+ Before ending significant sessions, consider:
49
+ - What decisions were made that should persist?
50
+ - What did you learn about the user's preferences?
51
+ - What patterns or approaches worked well?
52
+ - What should you remember for next time?
53
+
54
+ ### 4. Before Asking Questions You Might Already Know
55
+ Before asking "What framework do you use?" or "How do you prefer X?", **check memory first**:
56
+ ```
57
+ mcp__memory__search_nodes query: "preference"
58
+ mcp__memory__search_nodes query: "{topic}"
59
+ ```
60
+
61
+ ## Entity Structure
62
+
63
+ ### Core Entities (create these)
64
+
65
+ **User Entity** (singleton - add observations, don't recreate):
66
+ ```
67
+ name: "user-eric"
68
+ entityType: "user"
69
+ observations:
70
+ - "Prefers FP patterns over OOP"
71
+ - "Anti-over-engineering philosophy"
72
+ - "Wants minimal code comments"
73
+ - "Uses Quasar for Vue projects"
74
+ ```
75
+
76
+ **Project Entities**:
77
+ ```
78
+ name: "project-{name}"
79
+ entityType: "project"
80
+ observations:
81
+ - "Tech stack: X, Y, Z"
82
+ - "Key patterns: ..."
83
+ - "Gotchas: ..."
84
+ ```
85
+
86
+ **Decision Entities**:
87
+ ```
88
+ name: "decision-{topic}"
89
+ entityType: "decision"
90
+ observations:
91
+ - "Chose X over Y"
92
+ - "Rationale: ..."
93
+ - "Made: {date}"
94
+ - "Applies to: {scope}"
95
+ ```
96
+
97
+ ### Relations (create these to build the graph)
98
+ ```
99
+ user-eric → owns → project-imanetwork
100
+ project-imanetwork → follows → decision-fp-patterns
101
+ decision-fp-patterns → supersedes → decision-old-oop-approach
102
+ ```
103
+
104
+ ## Available Tools
105
+
106
+ | Tool | When to Use |
107
+ |------|-------------|
108
+ | `search_nodes` | **First** - before creating, before asking user |
109
+ | `open_nodes` | Load specific known entities |
110
+ | `create_entities` | New project, decision, pattern, bug |
111
+ | `add_observations` | New facts about existing entity |
112
+ | `create_relations` | Connect related entities |
113
+ | `read_graph` | Debug / audit (use sparingly) |
114
+ | `delete_*` | Cleanup outdated information |
115
+
116
+ ## Quick Patterns
117
+
118
+ ### Store a user preference (do this automatically)
119
+ ```
120
+ mcp__memory__search_nodes query: "user-eric"
121
+ # If exists:
122
+ mcp__memory__add_observations
123
+ observations: [{"entityName": "user-eric", "contents": ["Prefers early returns over nested conditionals"]}]
124
+ # If not exists:
125
+ mcp__memory__create_entities
126
+ entities: [{"name": "user-eric", "entityType": "user", "observations": ["..."]}]
127
+ ```
128
+
129
+ ### Store a decision with rationale
130
+ ```
131
+ mcp__memory__create_entities
132
+ entities: [{
133
+ "name": "decision-validators-at-registration",
134
+ "entityType": "decision",
135
+ "observations": [
136
+ "IMA Forms: validators defined at field registration, not validation time",
137
+ "Rationale: single source of truth, template IS the definition",
138
+ "Made: 2026-01-15",
139
+ "Supersedes: separate validation schema approach"
140
+ ]
141
+ }]
142
+ mcp__memory__create_relations
143
+ relations: [{"from": "project-ima-forms", "to": "decision-validators-at-registration", "relationType": "follows"}]
144
+ ```
145
+
146
+ ### Check before asking
147
+ ```
148
+ # Instead of asking "What's your code style preference?"
149
+ mcp__memory__search_nodes query: "code style"
150
+ mcp__memory__search_nodes query: "preference"
151
+ # Only ask if nothing found
152
+ ```
153
+
154
+ ## What NOT to Store
155
+
156
+ - Temporary debugging steps
157
+ - One-off fixes unlikely to recur
158
+ - Information already in project docs (CLAUDE.md, README)
159
+ - Sensitive data (credentials, API keys)
160
+
161
+ ## Naming Conventions
162
+
163
+ | Prefix | Use |
164
+ |--------|-----|
165
+ | `user-{name}` | User preferences, corrections |
166
+ | `project-{name}` | Project context, tech stack |
167
+ | `decision-{topic}` | Architectural choices with rationale |
168
+ | `pattern-{name}` | Reusable code patterns |
169
+ | `bug-{description}` | Root causes worth remembering |
170
+ | `standard-{topic}` | Team/org standards |
171
+
172
+ ## The Key Insight
173
+
174
+ **Serena works because it's wired into code operations automatically.**
175
+ **Memory works when it's wired into decision-making automatically.**
176
+
177
+ Don't wait to be asked. When context flows through the conversation that should persist:
178
+ 1. Recognize it
179
+ 2. Store it
180
+ 3. Mention briefly: "I've noted your preference for X"
181
+
182
+ This builds a knowledge graph that makes every future session better.
@@ -0,0 +1,233 @@
1
+ ---
2
+ name: mcp-qdrant
3
+ description: "Qdrant MCP — the permanent library. Unlike Vestige (neural memory that fades), nothing stored here is ever forgotten. Use for all reference material: wiki articles, coding standards, architecture docs, code samples, PRDs, plans, meeting notes, research findings. Triggers on: 'store this', 'what do we know about', 'search knowledge', 'add to library', 'find in docs'. Triggers proactively when reference material is created, discussed, or finalized — feed the library without being asked. Search the library before starting any new work."
4
+ ---
5
+
6
+ # Qdrant MCP - The Permanent Library
7
+
8
+ Our permanent reference library. Unlike Vestige (neural memory that fades if unused), nothing stored here is ever forgotten. This is where we feed our entire universe — wiki articles, coding standards, architecture docs, code samples, PRDs, plans, and research findings.
9
+
10
+ ## Architecture: How This Fits
11
+
12
+ | System | Role | Lifecycle | Example |
13
+ |--------|------|-----------|---------|
14
+ | **Qdrant** | Permanent library — reference material, standards, PRDs, architecture docs, code samples | Persistent forever | "Our payment system uses Accept.js with ARB" |
15
+ | **Vestige** | Neural memory — decisions, preferences, patterns, bugs, learnings | Fades if unused (FSRS-6 decay) | "We chose JWT over sessions because..." |
16
+ | **Serena Memory** | Project workbench — session state, task progress | Project-scoped, survives git ops | "Currently on task 3/5" |
17
+
18
+ **Will it fade if we stop referencing it?** If no → Qdrant (permanent). If yes → Vestige (neural decay).
19
+
20
+ ## Embedding Stack
21
+
22
+ | Component | Value |
23
+ |---|---|
24
+ | MCP server | `qdrant-mcp` (custom, at `~/dev/qdrant-mcp-server`) |
25
+ | Embedding model | `nomic-embed-text` via Ollama |
26
+ | Vector dimensions | 768 |
27
+ | Distance metric | Cosine |
28
+ | Vector type | Default (unnamed) |
29
+ | Default collection | `ima-knowledge` |
30
+
31
+ ## Per-Project Collection
32
+
33
+ Projects can specify their Qdrant collection via a `.qdrant` file in the project root (YAML format, like `.serena`):
34
+
35
+ ```yaml
36
+ # .qdrant — project-level config
37
+ collection: my-project-knowledge
38
+ ```
39
+
40
+ **At session start**, check for a `.qdrant` file in the working directory. If found, read its `collection` value and pass it as `collection_name` on every `qdrant_store` and `qdrant_find` call for that session.
41
+
42
+ If no `.qdrant` file is found, omit `collection_name` — the server defaults to `ima-knowledge` (from the `COLLECTION_NAME` env var).
43
+
44
+ ## MCP Tools
45
+
46
+ MCP server name: `qdrant-memory`. Tool prefix: `mcp__qdrant-memory__`.
47
+
48
+ | Tool | Purpose | Parameters |
49
+ |------|---------|------------|
50
+ | `qdrant_store` | Store text with auto-embedding | `information` (required), `collection_name`, `metadata` |
51
+ | `qdrant_find` | Semantic search across stored knowledge | `query` (required), `collection_name`, `limit` |
52
+
53
+ ## Storing Knowledge
54
+
55
+ ```
56
+ mcp__qdrant-memory__qdrant_store
57
+ information: "The IMA donation system uses Authorize.net Accept.js for payment
58
+ processing. Guest donations use charge-then-profile for ARB recurring."
59
+ metadata: {"source": "donation-system-prd", "type": "architecture", "date": "2026-02-21"}
60
+ ```
61
+
62
+ To target a specific collection explicitly:
63
+
64
+ ```
65
+ mcp__qdrant-memory__qdrant_store
66
+ collection_name: "other-project-knowledge"
67
+ information: "..."
68
+ ```
69
+
70
+ ### What to Store
71
+
72
+ Anything that should never be forgotten — reference material for our permanent library.
73
+
74
+ | Content Type | Metadata `type` |
75
+ |---|---|
76
+ | PRDs / Feature Specs | `prd` |
77
+ | Architecture decisions & diagrams | `architecture` |
78
+ | Integration guides | `integration` |
79
+ | Domain knowledge | `domain` |
80
+ | Requirements / meeting notes | `requirements` |
81
+ | Coding standards & conventions | `standard` |
82
+ | Useful code samples | `sample` |
83
+
84
+ ### Chunking Large Documents
85
+
86
+ For documents over ~2000 words, store by section:
87
+
88
+ ```
89
+ Store: "Donation System PRD - Overview: [content]"
90
+ metadata: {"source": "donation-prd", "type": "prd", "section": "overview"}
91
+
92
+ Store: "Donation System PRD - Payment Flow: [content]"
93
+ metadata: {"source": "donation-prd", "type": "prd", "section": "payment-flow"}
94
+ ```
95
+
96
+ Include the document title in each chunk so search results have context.
97
+
98
+ ## Searching Knowledge
99
+
100
+ ```
101
+ mcp__qdrant-memory__qdrant_find
102
+ query: "how does guest recurring donation work"
103
+ ```
104
+
105
+ **Broad**: `"payment processing"` — discover what's available
106
+ **Specific**: `"Authorize.net ARB guest checkout"` — find exact knowledge
107
+ **Problem-oriented**: `"SSO authentication between WordPress and Discourse"` — find solutions
108
+
109
+ ## Proactive Behavior
110
+
111
+ ### Feed the Library When:
112
+
113
+ - A wiki article, PRD, or spec is created or discussed → store it
114
+ - Architecture is documented or diagrammed → store it
115
+ - A coding standard or convention is established → store it
116
+ - A useful code sample is written → store it
117
+ - Research is completed on a topic → store the findings
118
+ - A Compound Engineering solution is finalized → store it
119
+ - Integration is documented → store it
120
+ - Meeting notes capture decisions or context → store them
121
+ - User says "add this to knowledge base" or "store this"
122
+
123
+ ### Search the Library When:
124
+
125
+ - Starting implementation of any feature → check if prior art exists
126
+ - Debugging an integration → search for architecture context
127
+ - User asks "how does X work" → check library before guessing
128
+ - Planning new work → search for related PRDs or standards
129
+ - Before making architectural decisions → search for existing conventions
130
+
131
+ ## Ingestion: Claude Web → Qdrant
132
+
133
+ When user shares content from Claude Web Projects:
134
+
135
+ 1. User pastes document content
136
+ 2. For short docs (<2000 words): store as single entry
137
+ 3. For long docs: chunk by section with shared `source` metadata
138
+ 4. Confirm: "Stored [title] in knowledge base ([N] chunks)"
139
+
140
+ ## Decision Logic
141
+
142
+ **Will it fade if we stop referencing it?** If no → store here. Qdrant is the permanent library.
143
+
144
+ ```
145
+ IF reference material that should never be forgotten
146
+ (wiki, standards, PRDs, architecture docs, code samples, plans):
147
+ → Qdrant qdrant_store (permanent library)
148
+ ELSE IF knowledge that should strengthen with use, fade if unused
149
+ (preferences, decisions, patterns, bugs):
150
+ → Vestige smart_ingest (neural memory)
151
+ ELSE IF session state or project progress:
152
+ → Serena write_memory (project workbench)
153
+
154
+ Searching:
155
+ IF need reference docs, architecture context, prior art:
156
+ → Qdrant qdrant_find
157
+ IF need user preferences or past decisions:
158
+ → Vestige search
159
+ IF starting any new work:
160
+ → Search BOTH Qdrant and Vestige
161
+ ```
162
+
163
+ ## Metadata Conventions
164
+
165
+ | Key | Values | Purpose |
166
+ |-----|--------|---------|
167
+ | `source` | Document name (kebab-case) | Group chunks from same doc |
168
+ | `type` | `prd`, `architecture`, `integration`, `domain`, `requirements`, `standard`, `sample` | Categorize |
169
+ | `date` | `YYYY-MM-DD` | When stored |
170
+
171
+ ## Error Recovery
172
+
173
+ | Issue | Resolution |
174
+ |-------|------------|
175
+ | No results | Broaden query terms |
176
+ | Irrelevant results | Use more specific key terms |
177
+ | Qdrant not responding | `docker ps \| grep qdrant` — restart if needed |
178
+ | Ollama not responding | `ollama list` — ensure it's running with `nomic-embed-text` |
179
+ | Duplicate content | Search before storing to verify novelty |
180
+
181
+ ## When NOT to Use
182
+
183
+ - Knowledge that should fade if unused (preferences, decisions, patterns) → Vestige (neural memory)
184
+ - Session state or task progress → Serena memory (project workbench)
185
+ - Code symbol search → Serena or Grep
186
+ - Current web info → Tavily
187
+ - Library API docs → Context7
188
+
189
+ ## Setup
190
+
191
+ ```bash
192
+ # 1. Start Qdrant with persistent storage
193
+ docker run -d --name qdrant \
194
+ -p 6333:6333 \
195
+ -v qdrant_storage:/qdrant/storage \
196
+ qdrant/qdrant:latest
197
+
198
+ # 2. Install Ollama and pull embedding model
199
+ ollama pull nomic-embed-text
200
+
201
+ # 3. Install custom MCP server
202
+ cd ~/dev/qdrant-mcp-server && pip install -e .
203
+
204
+ # 4. Add to Claude Code (in ~/.claude.json mcpServers)
205
+ # "qdrant-memory": {
206
+ # "type": "stdio",
207
+ # "command": "qdrant-mcp",
208
+ # "args": [],
209
+ # "env": {
210
+ # "QDRANT_URL": "http://localhost:6333",
211
+ # "COLLECTION_NAME": "ima-knowledge",
212
+ # "OLLAMA_URL": "http://localhost:11434",
213
+ # "EMBEDDING_MODEL": "nomic-embed-text"
214
+ # }
215
+ # }
216
+
217
+ # 5. Verify
218
+ curl http://localhost:6333/health
219
+ ```
220
+
221
+ **Persistence**: `-v qdrant_storage:/qdrant/storage` preserves data across restarts.
222
+ **Embeddings**: Ollama with `nomic-embed-text` (768d). All data stays on your machine.
223
+
224
+ ### Per-Project Setup
225
+
226
+ Add a `.qdrant` file to any project root to use a project-specific collection:
227
+
228
+ ```yaml
229
+ # .qdrant
230
+ collection: my-project-knowledge
231
+ ```
232
+
233
+ This keeps project knowledge isolated from the global `ima-knowledge` collection. The collection is created automatically on first store.
@@ -0,0 +1,149 @@
1
+ ---
2
+ name: "mcp-sequential"
3
+ description: "Sequential Thinking MCP — use for debugging, root cause analysis, trade-off evaluation, architectural decisions, and any multi-step problem where the approach may need revision mid-stream. Triggers on: think through, step by step, debug this, figure out why, what's causing, root cause, troubleshoot, analyze, trade-offs, pros and cons, why is this failing, complex problem, design decision, how should we approach. Prevents expensive trial-and-error by structuring reasoning before acting."
4
+ ---
5
+
6
+ # Sequential Thinking MCP - Structured Reasoning
7
+
8
+ Use Sequential Thinking for complex problems that benefit from structured, revisable analysis.
9
+
10
+ ## Available Tool
11
+
12
+ | Tool | Purpose |
13
+ |------|---------|
14
+ | `mcp__sequential-thinking__sequentialThinking` | Execute a thought in a reasoning chain |
15
+
16
+ ## When to Use
17
+
18
+ **Use Sequential Thinking for:**
19
+ - Breaking down complex problems into steps
20
+ - Debugging issues where the cause isn't obvious
21
+ - Architectural/design decisions with trade-offs
22
+ - Problems where you might need to revise your approach
23
+ - Multi-step analysis that needs context maintained
24
+ - Filtering irrelevant information from complex scenarios
25
+ - Hypothesis generation and verification
26
+
27
+ **Don't use for:**
28
+ - Simple, straightforward tasks
29
+ - Questions with obvious answers
30
+ - Tasks that don't require multi-step reasoning
31
+
32
+ ## Basic Usage
33
+
34
+ Each call represents one thought in your reasoning chain.
35
+
36
+ ```
37
+ mcp__sequential-thinking__sequentialThinking
38
+ thought: "First, let me understand the problem. We have X happening when Y..."
39
+ nextThoughtNeeded: true
40
+ thoughtNumber: 1
41
+ totalThoughts: 5
42
+ ```
43
+
44
+ ## Parameters
45
+
46
+ | Parameter | Required | Description |
47
+ |-----------|----------|-------------|
48
+ | `thought` | Yes | Current thinking step content |
49
+ | `nextThoughtNeeded` | Yes | `true` to continue, `false` when done |
50
+ | `thoughtNumber` | Yes | Current step number (1, 2, 3...) |
51
+ | `totalThoughts` | Yes | Estimated total (can adjust up/down) |
52
+ | `isRevision` | No | `true` if revising previous thought |
53
+ | `revisesThought` | No | Which thought number being revised |
54
+ | `branchFromThought` | No | Thought number to branch from |
55
+ | `branchId` | No | Identifier for the branch |
56
+
57
+ ## Continue Chain
58
+
59
+ ```
60
+ mcp__sequential-thinking__sequentialThinking
61
+ thought: "Based on step 1, the likely cause is Z because..."
62
+ nextThoughtNeeded: true
63
+ thoughtNumber: 2
64
+ totalThoughts: 5
65
+ ```
66
+
67
+ ## Revise if Needed
68
+
69
+ ```
70
+ mcp__sequential-thinking__sequentialThinking
71
+ thought: "Actually, my assumption in thought 2 was wrong. Let me reconsider..."
72
+ nextThoughtNeeded: true
73
+ thoughtNumber: 3
74
+ totalThoughts: 6
75
+ isRevision: true
76
+ revisesThought: 2
77
+ ```
78
+
79
+ ## Branch for Alternatives
80
+
81
+ ```
82
+ mcp__sequential-thinking__sequentialThinking
83
+ thought: "Let me explore an alternative approach from step 2..."
84
+ nextThoughtNeeded: true
85
+ thoughtNumber: 4
86
+ totalThoughts: 7
87
+ branchFromThought: 2
88
+ branchId: "alternative-approach"
89
+ ```
90
+
91
+ ## Conclude
92
+
93
+ ```
94
+ mcp__sequential-thinking__sequentialThinking
95
+ thought: "Based on my analysis, the solution is X because of Y and Z."
96
+ nextThoughtNeeded: false
97
+ thoughtNumber: 5
98
+ totalThoughts: 5
99
+ ```
100
+
101
+ ## Best Practices
102
+
103
+ 1. **Start with estimate, adjust as needed** - `totalThoughts` is flexible
104
+ 2. **Express uncertainty** - It's OK to say "I'm not sure, but..."
105
+ 3. **Revise freely** - Use `isRevision` when your understanding changes
106
+ 4. **Branch for alternatives** - Explore multiple approaches
107
+ 5. **Verify hypotheses** - Don't just guess, test your reasoning
108
+ 6. **Filter noise** - Focus on relevant information per step
109
+ 7. **Only conclude when confident** - Keep `nextThoughtNeeded: true` until satisfied
110
+
111
+ ## Example: Debugging a Bug
112
+
113
+ ```
114
+ Thought 1: "The bug report says the form submits but data isn't saved. Let me identify possible failure points: 1) Frontend validation, 2) AJAX request, 3) Backend handler, 4) Database write."
115
+
116
+ Thought 2: "Starting with the AJAX request - I should check if the request is being sent and what response comes back."
117
+
118
+ Thought 3: "The request is sent but returns 500. So the issue is backend. Let me check the error logs."
119
+
120
+ Thought 4: "Error log shows 'undefined index: email'. The frontend is sending 'user_email' but backend expects 'email'. This is a field name mismatch."
121
+
122
+ Thought 5 (conclusion): "Root cause: Field name mismatch between frontend ('user_email') and backend ('email'). Solution: Update frontend to use 'email' or backend to accept 'user_email'."
123
+ ```
124
+
125
+ ## Example: Architecture Decision
126
+
127
+ ```
128
+ Thought 1: "Need to decide between REST API and GraphQL for this project. Let me list the requirements: multiple clients, varying data needs, team experience."
129
+
130
+ Thought 2: "REST pros: Team knows it well, simple caching, established patterns. Cons: Over-fetching for mobile, multiple endpoints."
131
+
132
+ Thought 3: "GraphQL pros: Single endpoint, client specifies data needs, good for mobile. Cons: Learning curve, caching complexity."
133
+
134
+ Thought 4 (revision): "Wait, I should also consider that we're using WordPress backend. REST is native to WordPress, GraphQL would need WPGraphQL plugin."
135
+
136
+ Thought 5 (conclusion): "Recommendation: REST API. Reasons: 1) Native WordPress support, 2) Team expertise, 3) Simpler caching. The over-fetching concern can be mitigated with sparse fieldsets."
137
+ ```
138
+
139
+ ## Setup
140
+
141
+ No API key required. Install with:
142
+ ```bash
143
+ bun run scripts/setup-mcp.ts
144
+ ```
145
+
146
+ Or manually:
147
+ ```bash
148
+ claude mcp add --scope user sequential-thinking -- npx -y @modelcontextprotocol/server-sequential-thinking@latest
149
+ ```