@duckmind/deepquark-darwin-arm64 0.9.83 → 0.9.90

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 (70) hide show
  1. package/.deepquark/skills/bundled/knowledge-graph/SKILL.md +385 -0
  2. package/.deepquark/skills/bundled/knowledge-graph/STANDARDS.md +461 -0
  3. package/.deepquark/skills/bundled/knowledge-graph/lib/cli.ts +588 -0
  4. package/.deepquark/skills/bundled/knowledge-graph/lib/config.ts +630 -0
  5. package/.deepquark/skills/bundled/knowledge-graph/lib/connection-profile.ts +629 -0
  6. package/.deepquark/skills/bundled/knowledge-graph/lib/container.ts +756 -0
  7. package/.deepquark/skills/bundled/knowledge-graph/lib/mcp-client.ts +1310 -0
  8. package/.deepquark/skills/bundled/knowledge-graph/lib/output-formatter.ts +997 -0
  9. package/.deepquark/skills/bundled/knowledge-graph/lib/token-metrics.ts +335 -0
  10. package/.deepquark/skills/bundled/knowledge-graph/lib/transformation-log.ts +137 -0
  11. package/.deepquark/skills/bundled/knowledge-graph/lib/wrapper-config.ts +113 -0
  12. package/.deepquark/skills/bundled/knowledge-graph/server/.env.example +129 -0
  13. package/.deepquark/skills/bundled/knowledge-graph/server/compare-embeddings.ts +175 -0
  14. package/.deepquark/skills/bundled/knowledge-graph/server/config-falkordb.yaml +108 -0
  15. package/.deepquark/skills/bundled/knowledge-graph/server/config-neo4j.yaml +111 -0
  16. package/.deepquark/skills/bundled/knowledge-graph/server/diagnose.ts +483 -0
  17. package/.deepquark/skills/bundled/knowledge-graph/server/docker-compose-falkordb-dev.yml +146 -0
  18. package/.deepquark/skills/bundled/knowledge-graph/server/docker-compose-falkordb.yml +151 -0
  19. package/.deepquark/skills/bundled/knowledge-graph/server/docker-compose-neo4j-dev-local.yml +161 -0
  20. package/.deepquark/skills/bundled/knowledge-graph/server/docker-compose-neo4j-dev.yml +161 -0
  21. package/.deepquark/skills/bundled/knowledge-graph/server/docker-compose-neo4j.yml +169 -0
  22. package/.deepquark/skills/bundled/knowledge-graph/server/docker-compose-production.yml +128 -0
  23. package/.deepquark/skills/bundled/knowledge-graph/server/docker-compose-test.yml +10 -0
  24. package/.deepquark/skills/bundled/knowledge-graph/server/docker-compose.yml +84 -0
  25. package/.deepquark/skills/bundled/knowledge-graph/server/entrypoint.sh +40 -0
  26. package/.deepquark/skills/bundled/knowledge-graph/server/install.ts +2054 -0
  27. package/.deepquark/skills/bundled/knowledge-graph/server/podman-compose-falkordb.yml +78 -0
  28. package/.deepquark/skills/bundled/knowledge-graph/server/podman-compose-neo4j.yml +88 -0
  29. package/.deepquark/skills/bundled/knowledge-graph/server/podman-compose.yml +83 -0
  30. package/.deepquark/skills/bundled/knowledge-graph/server/test-all-llms-mcp.ts +387 -0
  31. package/.deepquark/skills/bundled/knowledge-graph/server/test-embedding-models.ts +201 -0
  32. package/.deepquark/skills/bundled/knowledge-graph/server/test-embedding-providers.ts +641 -0
  33. package/.deepquark/skills/bundled/knowledge-graph/server/test-graphiti-model.ts +217 -0
  34. package/.deepquark/skills/bundled/knowledge-graph/server/test-grok-correct.ts +141 -0
  35. package/.deepquark/skills/bundled/knowledge-graph/server/test-grok-llms-mcp.ts +386 -0
  36. package/.deepquark/skills/bundled/knowledge-graph/server/test-grok-models.ts +173 -0
  37. package/.deepquark/skills/bundled/knowledge-graph/server/test-llama-extraction.ts +188 -0
  38. package/.deepquark/skills/bundled/knowledge-graph/server/test-mcp-final.ts +240 -0
  39. package/.deepquark/skills/bundled/knowledge-graph/server/test-mcp-live.ts +187 -0
  40. package/.deepquark/skills/bundled/knowledge-graph/server/test-mcp-session.ts +127 -0
  41. package/.deepquark/skills/bundled/knowledge-graph/server/test-model-combinations.ts +316 -0
  42. package/.deepquark/skills/bundled/knowledge-graph/server/test-ollama-models.ts +228 -0
  43. package/.deepquark/skills/bundled/knowledge-graph/server/test-openrouter-models.ts +460 -0
  44. package/.deepquark/skills/bundled/knowledge-graph/server/test-real-life-mcp.ts +311 -0
  45. package/.deepquark/skills/bundled/knowledge-graph/server/test-search-debug.ts +199 -0
  46. package/.deepquark/skills/bundled/knowledge-graph/tools/Install.md +104 -0
  47. package/.deepquark/skills/bundled/knowledge-graph/tools/README.md +120 -0
  48. package/.deepquark/skills/bundled/knowledge-graph/tools/knowledge-cli.ts +996 -0
  49. package/.deepquark/skills/bundled/knowledge-graph/tools/server-cli.ts +531 -0
  50. package/.deepquark/skills/bundled/knowledge-graph/workflows/BulkImport.md +514 -0
  51. package/.deepquark/skills/bundled/knowledge-graph/workflows/CaptureEpisode.md +242 -0
  52. package/.deepquark/skills/bundled/knowledge-graph/workflows/ClearGraph.md +392 -0
  53. package/.deepquark/skills/bundled/knowledge-graph/workflows/GetRecent.md +352 -0
  54. package/.deepquark/skills/bundled/knowledge-graph/workflows/GetStatus.md +373 -0
  55. package/.deepquark/skills/bundled/knowledge-graph/workflows/HealthReport.md +212 -0
  56. package/.deepquark/skills/bundled/knowledge-graph/workflows/InvestigateEntity.md +142 -0
  57. package/.deepquark/skills/bundled/knowledge-graph/workflows/OntologyManagement.md +201 -0
  58. package/.deepquark/skills/bundled/knowledge-graph/workflows/RunMaintenance.md +302 -0
  59. package/.deepquark/skills/bundled/knowledge-graph/workflows/SearchByDate.md +255 -0
  60. package/.deepquark/skills/bundled/knowledge-graph/workflows/SearchFacts.md +382 -0
  61. package/.deepquark/skills/bundled/knowledge-graph/workflows/SearchKnowledge.md +374 -0
  62. package/.deepquark/skills/bundled/knowledge-graph/workflows/StixImport.md +212 -0
  63. package/bin/deepquark +0 -0
  64. package/package.json +1 -1
  65. package/.deepquark/skills/bundled/ge-payroll/SKILL.md +0 -153
  66. package/.deepquark/skills/bundled/ge-payroll/evals/evals.json +0 -23
  67. package/.deepquark/skills/bundled/ge-payroll/references/pain-points-improvements.md +0 -106
  68. package/.deepquark/skills/bundled/ge-payroll/references/process-detail.md +0 -217
  69. package/.deepquark/skills/bundled/ge-payroll/references/raci-stakeholders.md +0 -85
  70. package/.deepquark/skills/bundled/ge-payroll/references/timeline-mandays.md +0 -64
@@ -0,0 +1,461 @@
1
+ # Madeinoz Knowledge System - Usage Standards
2
+
3
+ Standards for effectively capturing, organizing, and retrieving knowledge from your personal knowledge graph.
4
+
5
+ ---
6
+
7
+ ## Naming Conventions (Hybrid Approach)
8
+
9
+ The knowledge system uses a **hybrid naming convention** that balances technical accuracy with user-friendliness:
10
+
11
+ | Layer | Naming Style | Example |
12
+ |-------|--------------|---------|
13
+ | **User-facing (Skills/Triggers)** | Knowledge-friendly | "store this", "search my knowledge", "find relationships" |
14
+ | **Internal (TypeScript methods)** | Graphiti-native | `addEpisode()`, `searchNodes()`, `searchFacts()` |
15
+ | **MCP Tools (API layer)** | Graphiti MCP server | `add_memory`, `search_memory_nodes`, `search_memory_facts` |
16
+
17
+ ### Graphiti Core Terminology
18
+
19
+ | Term | Definition | User-Friendly Equivalent |
20
+ |------|------------|--------------------------|
21
+ | **Episode** | Unit of knowledge capture (diary entry) | "Knowledge entry", "Memory" |
22
+ | **Node** | Entity/concept extracted by LLM | "Entity", "Thing you know about" |
23
+ | **Fact** | Relationship/edge connecting entities | "Relationship", "Connection" |
24
+ | **Edge** | Same as Fact | "Relationship" |
25
+
26
+ ### MCP Tool Reference
27
+
28
+ | MCP Tool | Graphiti Concept | TypeScript Method |
29
+ |----------|------------------|-------------------|
30
+ | `add_memory` | Add Episode | `addEpisode()` |
31
+ | `search_memory_nodes` | Search Nodes | `searchNodes()` |
32
+ | `search_memory_facts` | Search Facts/Edges | `searchFacts()` |
33
+ | `get_episodes` | Get Episodes | `getEpisodes()` |
34
+ | `delete_episode` | Delete Episode | `deleteEpisode()` |
35
+ | `delete_entity_edge` | Delete Edge | `deleteEntityEdge()` |
36
+ | `get_entity_edge` | Get Edge | `getEntityEdge()` |
37
+ | `clear_graph` | Clear Graph | `clearGraph()` |
38
+ | `get_status` | Get Status | `getStatus()` |
39
+
40
+ ---
41
+
42
+ ## Response Caching
43
+
44
+ The MCP client implements an LRU (Least Recently Used) cache for search operations to reduce API latency and improve responsiveness for repeated queries.
45
+
46
+ ### What Gets Cached
47
+
48
+ | Operation | Cached | Reason |
49
+ |-----------|--------|--------|
50
+ | `search_memory_nodes` | ✅ Yes | Read-only, frequently repeated |
51
+ | `search_memory_facts` | ✅ Yes | Read-only, frequently repeated |
52
+ | `add_memory` | ❌ No | Write operation, must hit server |
53
+ | `get_episodes` | ❌ No | Time-sensitive, needs fresh data |
54
+ | `get_status` | ❌ No | Status should be real-time |
55
+ | `clear_graph` | ❌ No | Destructive operation |
56
+
57
+ ### Cache Configuration
58
+
59
+ ```typescript
60
+ const client = new MCPClient({
61
+ enableCache: true, // Enable/disable caching (default: true)
62
+ cacheMaxSize: 100, // Max cached entries (default: 100)
63
+ cacheTtlMs: 5 * 60 * 1000 // Time-to-live in ms (default: 5 minutes)
64
+ });
65
+ ```
66
+
67
+ ### Cache Behavior
68
+
69
+ 1. **Cache Key**: Generated from tool name + JSON-serialized parameters
70
+ 2. **TTL Expiry**: Entries automatically expire after `cacheTtlMs`
71
+ 3. **LRU Eviction**: When at capacity, oldest accessed entry is evicted
72
+ 4. **Cache Hit**: Returns cached data immediately without API call
73
+ 5. **Cache Miss**: Fetches from API, caches successful responses
74
+
75
+ ### When to Clear Cache
76
+
77
+ ```typescript
78
+ // Clear after adding new knowledge (ensures fresh search results)
79
+ await client.addEpisode({ name: "New Learning", episode_body: "..." });
80
+ client.clearCache();
81
+
82
+ // Or check cache stats
83
+ const stats = client.getCacheStats();
84
+ console.log(`Cache: ${stats.size} entries, enabled: ${stats.enabled}`);
85
+ ```
86
+
87
+ ### Best Practices
88
+
89
+ - **Don't disable caching** unless you need real-time search results
90
+ - **Clear cache** after bulk imports to ensure new knowledge is searchable
91
+ - **Adjust TTL** based on your update frequency (shorter for active sessions)
92
+ - **Monitor cache stats** to tune `cacheMaxSize` for your usage patterns
93
+
94
+ ---
95
+
96
+ ## Episode Capture Standards
97
+
98
+ An **episode** is the fundamental unit of knowledge in the system. Well-structured episodes enable better entity extraction, relationship mapping, and future retrieval.
99
+
100
+ ### What Makes a Good Episode
101
+
102
+ | Quality | Poor Example | Good Example |
103
+ |---------|--------------|--------------|
104
+ | **Specific** | "Learned something about Docker" | "Docker containers share the host kernel, unlike VMs which run separate OS instances" |
105
+ | **Contextual** | "Use retry logic" | "API calls to OpenAI should use exponential backoff with max 3 retries to handle rate limits" |
106
+ | **Complete** | "Meeting notes" | "Product review meeting: Decided to delay v2.0 launch to add OAuth support. John owns implementation, due March 15" |
107
+ | **Attributable** | "Someone said X" | "Per AWS documentation, Lambda cold starts average 100-200ms for Python runtimes" |
108
+
109
+ ### Episode Structure Template
110
+
111
+ ```
112
+ [WHAT] - The core fact, insight, or decision
113
+ [CONTEXT] - When/where/why this matters
114
+ [SOURCE] - Where this came from (optional but valuable)
115
+ [RELATED] - Connected concepts or entities (helps relationship extraction)
116
+ ```
117
+
118
+ **Example:**
119
+ ```
120
+ Bun runtime is 3x faster than Node.js for TypeScript execution.
121
+ Discovered while benchmarking the PAI hook system.
122
+ Source: Personal testing with sync-memory-to-knowledge.ts
123
+ Related: TypeScript, Node.js, performance optimization
124
+ ```
125
+
126
+ ---
127
+
128
+ ## When to Capture Knowledge
129
+
130
+ ### Capture Immediately
131
+
132
+ | Trigger | Example |
133
+ |---------|---------|
134
+ | **Learning something new** | "TIL that PostgreSQL JSONB indexes can use GIN for faster queries" |
135
+ | **Making a decision** | "Decided to use FalkorDB over Neo4j for lower memory footprint" |
136
+ | **Solving a problem** | "Fixed the race condition by adding mutex lock in sync-state.ts" |
137
+ | **Receiving advice** | "Code reviewer suggested using discriminated unions for error handling" |
138
+ | **Discovering a preference** | "Prefer using `bun test` over Jest for faster test execution" |
139
+
140
+ ### Capture Later (Batch)
141
+
142
+ | Trigger | Example |
143
+ |---------|---------|
144
+ | **After meetings** | Key decisions, action items, ownership assignments |
145
+ | **After research sessions** | Synthesized findings, sources, confidence levels |
146
+ | **After debugging sessions** | Root cause, solution, prevention strategies |
147
+ | **End of day review** | Important learnings not yet captured |
148
+
149
+ ### Don't Capture
150
+
151
+ - Temporary information (task lists, reminders)
152
+ - Sensitive credentials or secrets
153
+ - Highly volatile data that changes frequently
154
+ - Information already well-documented elsewhere
155
+
156
+ ---
157
+
158
+ ## Source Types
159
+
160
+ Choose the appropriate source type for your content:
161
+
162
+ ### `text` (Default)
163
+
164
+ For natural language content, insights, and prose.
165
+
166
+ ```typescript
167
+ {
168
+ source: "text",
169
+ episode_body: "GraphQL subscriptions use WebSockets under the hood for real-time updates",
170
+ source_description: "learning from Apollo docs"
171
+ }
172
+ ```
173
+
174
+ **Best for:** Learnings, insights, decisions, meeting notes, research findings
175
+
176
+ ### `json`
177
+
178
+ For structured data with clear entity relationships.
179
+
180
+ ```typescript
181
+ {
182
+ source: "json",
183
+ episode_body: "{\"project\": \"PAI\", \"decision\": \"Use FalkorDB\", \"reason\": \"Lower memory\", \"date\": \"2025-01-04\"}",
184
+ source_description: "architecture decision record"
185
+ }
186
+ ```
187
+
188
+ **Best for:** Configuration, structured records, data imports, API responses
189
+
190
+ ### `message`
191
+
192
+ For conversation-style content with speaker attribution.
193
+
194
+ ```typescript
195
+ {
196
+ source: "message",
197
+ episode_body: "user: What's the best database for graphs?\nassistant: FalkorDB for lightweight, Neo4j for enterprise features.",
198
+ source_description: "chat transcript"
199
+ }
200
+ ```
201
+
202
+ **Best for:** Chat logs, Q&A pairs, interview notes, support tickets
203
+
204
+ ---
205
+
206
+ ## Group ID Conventions
207
+
208
+ Group IDs partition your knowledge graph into isolated namespaces. Use them strategically.
209
+
210
+ ### Recommended Group IDs
211
+
212
+ | Group ID | Purpose |
213
+ |----------|---------|
214
+ | `main` | Primary personal knowledge (default) |
215
+ | `work` | Professional/work-related knowledge |
216
+ | `project-{name}` | Project-specific knowledge (e.g., `project-pai`) |
217
+ | `research-{topic}` | Research area isolation (e.g., `research-llm`) |
218
+ | `osint-profiles` | OSINT reconnaissance data (usernames, people) |
219
+ | `osint-domains` | Domain/infrastructure reconnaissance |
220
+ | `osint-companies` | Corporate/business intelligence |
221
+ | `archive` | Historical knowledge, less frequently accessed |
222
+
223
+ ### Group ID Best Practices
224
+
225
+ 1. **Start with `main`** - Use the default until you have a clear need for separation
226
+ 2. **Project isolation** - Create project-specific groups for large, distinct projects
227
+ 3. **Avoid proliferation** - Too many groups fragments your knowledge; prefer fewer, broader groups
228
+ 4. **Document your groups** - Keep a record of what each group contains
229
+
230
+ ---
231
+
232
+ ## Entity Naming Standards
233
+
234
+ The system automatically extracts entities, but you can help by using consistent naming.
235
+
236
+ ### Entity Type Guidelines
237
+
238
+ | Entity Type | Naming Convention | Examples |
239
+ |-------------|-------------------|----------|
240
+ | **People** | Full name, consistent format | "John Smith", not "John" or "J. Smith" |
241
+ | **Organizations** | Official name | "Anthropic", not "anthropic" or "the Claude company" |
242
+ | **Technologies** | Official casing | "TypeScript", "PostgreSQL", "GraphQL" |
243
+ | **Projects** | Consistent identifier | "Madeinoz Knowledge System", not "knowledge system" or "the KG project" |
244
+ | **Concepts** | Noun phrases | "rate limiting", "exponential backoff" |
245
+
246
+ ### Improving Entity Extraction
247
+
248
+ Include explicit entity mentions to improve extraction:
249
+
250
+ **Less effective:**
251
+ ```
252
+ "The database is fast because it uses in-memory storage"
253
+ ```
254
+
255
+ **More effective:**
256
+ ```
257
+ "FalkorDB achieves high performance through Redis-based in-memory storage"
258
+ ```
259
+
260
+ ---
261
+
262
+ ## Search Query Standards
263
+
264
+ Effective queries return relevant results. Follow these patterns for best results.
265
+
266
+ ### Query Patterns
267
+
268
+ | Pattern | Example | Use When |
269
+ |---------|---------|----------|
270
+ | **Entity search** | "FalkorDB" | Looking for everything about a specific entity |
271
+ | **Concept search** | "rate limiting strategies" | Exploring a topic area |
272
+ | **Relationship search** | "how FalkorDB connects to Graphiti" | Finding connections |
273
+ | **Temporal search** | "decisions made in January" | Time-based retrieval |
274
+ | **Problem search** | "debugging WebSocket connections" | Finding solutions |
275
+
276
+ ### Search Tips
277
+
278
+ 1. **Start broad, then narrow** - "databases" → "graph databases" → "FalkorDB configuration"
279
+ 2. **Use entity names** - Search for specific entities rather than vague descriptions
280
+ 3. **Try synonyms** - If "auth" returns nothing, try "authentication" or "login"
281
+ 4. **Combine concepts** - "TypeScript AND testing" for intersection queries
282
+
283
+ ### Node Search vs Fact Search
284
+
285
+ | Tool | Returns | Use When |
286
+ |------|---------|----------|
287
+ | `search_memory_nodes` | Entity summaries with context | "What do I know about X?" |
288
+ | `search_memory_facts` | Relationships between entities | "How are X and Y connected?" |
289
+
290
+ ---
291
+
292
+ ## Knowledge Quality Indicators
293
+
294
+ ### High-Quality Knowledge Graph
295
+
296
+ - Entities have clear, descriptive summaries
297
+ - Relationships capture meaningful connections
298
+ - Episodes are retrievable via intuitive queries
299
+ - Knowledge builds on itself over time
300
+
301
+ ### Warning Signs
302
+
303
+ | Issue | Symptom | Fix |
304
+ |-------|---------|-----|
305
+ | **Sparse entities** | Few connections per entity | Capture more context around entities |
306
+ | **Orphan episodes** | Episodes with no extracted entities | Add explicit entity mentions |
307
+ | **Duplicate entities** | Same entity with different names | Use consistent naming |
308
+ | **Stale knowledge** | Outdated information | Capture updates, note temporal context |
309
+
310
+ ---
311
+
312
+ ## Capture Workflows
313
+
314
+ ### Quick Capture
315
+
316
+ For immediate insights during work:
317
+
318
+ ```
319
+ "Remember that [specific fact with context]"
320
+ ```
321
+
322
+ Example: "Remember that Bun's test runner supports TypeScript natively without compilation"
323
+
324
+ ### Structured Capture
325
+
326
+ For comprehensive knowledge with metadata:
327
+
328
+ ```
329
+ "Store this to knowledge:
330
+ - Topic: [subject]
331
+ - Insight: [the knowledge]
332
+ - Source: [where from]
333
+ - Confidence: [high/medium/low]
334
+ "
335
+ ```
336
+
337
+ ### Bulk Import
338
+
339
+ For importing existing documentation or notes:
340
+
341
+ 1. Prepare content in a consistent format
342
+ 2. Use the BulkImport workflow
343
+ 3. Review extracted entities
344
+ 4. Verify relationships
345
+
346
+ ---
347
+
348
+ ## Integration with Memory System
349
+
350
+ Knowledge syncs automatically from the PAI Memory System (`~/.claude/MEMORY/`):
351
+
352
+ | Memory Directory | Sync Behavior |
353
+ |------------------|---------------|
354
+ | `LEARNING/ALGORITHM/` | Auto-synced as LEARNING episodes (task execution insights) |
355
+ | `LEARNING/SYSTEM/` | Auto-synced as LEARNING episodes (PAI/tooling insights) |
356
+ | `RESEARCH/` | Auto-synced as RESEARCH episodes |
357
+
358
+ ### Frontmatter Standards for Memory Files
359
+
360
+ Include frontmatter to improve entity extraction:
361
+
362
+ ```yaml
363
+ ---
364
+ title: "FalkorDB Performance Tuning"
365
+ date: 2025-01-04
366
+ tags: [database, performance, falkordb]
367
+ entities: [FalkorDB, Redis, Performance]
368
+ ---
369
+ ```
370
+
371
+ ---
372
+
373
+ ## Maintenance Standards
374
+
375
+ ### Regular Maintenance
376
+
377
+ | Task | Frequency | Purpose |
378
+ |------|-----------|---------|
379
+ | **Review recent episodes** | Weekly | Ensure quality capture |
380
+ | **Search for gaps** | Monthly | Identify missing knowledge areas |
381
+ | **Check entity consistency** | Monthly | Fix naming inconsistencies |
382
+ | **Archive stale knowledge** | Quarterly | Move outdated content to archive group |
383
+
384
+ ### Graph Health Check
385
+
386
+ Run periodically to assess knowledge graph health:
387
+
388
+ ```
389
+ "Show knowledge graph status"
390
+ ```
391
+
392
+ Review:
393
+ - Total episode count (growing over time)
394
+ - Entity count (reasonable ratio to episodes)
395
+ - Last updated (recent activity)
396
+
397
+ ---
398
+
399
+ ## Anti-Patterns to Avoid
400
+
401
+ | Anti-Pattern | Problem | Better Approach |
402
+ |--------------|---------|-----------------|
403
+ | **Dumping raw text** | Poor entity extraction | Add context and structure |
404
+ | **Vague references** | "that thing" isn't searchable | Use specific entity names |
405
+ | **No context** | Isolated facts are hard to connect | Include why/when/where |
406
+ | **Over-capturing** | Noise drowns out signal | Be selective, capture signal |
407
+ | **Never searching** | Knowledge unused is knowledge lost | Regularly query your graph |
408
+ | **Single huge episode** | Entity extraction degrades | Break into focused episodes |
409
+
410
+ ---
411
+
412
+ ## Examples
413
+
414
+ ### Good Episode Capture
415
+
416
+ ```
417
+ "Remember that when implementing retry logic for the OpenAI API, use exponential
418
+ backoff starting at 1 second with a maximum of 3 retries. This handles both
419
+ rate limiting (429) and temporary server errors (500). Learned while building
420
+ the Madeinoz Knowledge System's LLM integration."
421
+ ```
422
+
423
+ **Why it works:**
424
+ - Specific technical details
425
+ - Clear context (when to use)
426
+ - Source attribution
427
+ - Related entities mentioned (OpenAI, Madeinoz Knowledge System)
428
+
429
+ ### Good Search Query
430
+
431
+ ```
432
+ "What do I know about handling API rate limits?"
433
+ ```
434
+
435
+ **Why it works:**
436
+ - Concept-focused (not just entity)
437
+ - Natural language
438
+ - Broad enough to capture related knowledge
439
+
440
+ ---
441
+
442
+ ## Quick Reference
443
+
444
+ ### Capture Checklist
445
+
446
+ - [ ] Is the knowledge specific and actionable?
447
+ - [ ] Is there enough context for future understanding?
448
+ - [ ] Are key entities explicitly mentioned?
449
+ - [ ] Is the source noted (if applicable)?
450
+ - [ ] Is this the right group_id?
451
+
452
+ ### Search Checklist
453
+
454
+ - [ ] Start with entity/concept name
455
+ - [ ] Try node search first, then fact search
456
+ - [ ] Use synonyms if results are sparse
457
+ - [ ] Narrow scope if results are too broad
458
+
459
+ ---
460
+
461
+ **Last Updated:** 2025-01-04