@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.
- package/.deepquark/skills/bundled/knowledge-graph/SKILL.md +385 -0
- package/.deepquark/skills/bundled/knowledge-graph/STANDARDS.md +461 -0
- package/.deepquark/skills/bundled/knowledge-graph/lib/cli.ts +588 -0
- package/.deepquark/skills/bundled/knowledge-graph/lib/config.ts +630 -0
- package/.deepquark/skills/bundled/knowledge-graph/lib/connection-profile.ts +629 -0
- package/.deepquark/skills/bundled/knowledge-graph/lib/container.ts +756 -0
- package/.deepquark/skills/bundled/knowledge-graph/lib/mcp-client.ts +1310 -0
- package/.deepquark/skills/bundled/knowledge-graph/lib/output-formatter.ts +997 -0
- package/.deepquark/skills/bundled/knowledge-graph/lib/token-metrics.ts +335 -0
- package/.deepquark/skills/bundled/knowledge-graph/lib/transformation-log.ts +137 -0
- package/.deepquark/skills/bundled/knowledge-graph/lib/wrapper-config.ts +113 -0
- package/.deepquark/skills/bundled/knowledge-graph/server/.env.example +129 -0
- package/.deepquark/skills/bundled/knowledge-graph/server/compare-embeddings.ts +175 -0
- package/.deepquark/skills/bundled/knowledge-graph/server/config-falkordb.yaml +108 -0
- package/.deepquark/skills/bundled/knowledge-graph/server/config-neo4j.yaml +111 -0
- package/.deepquark/skills/bundled/knowledge-graph/server/diagnose.ts +483 -0
- package/.deepquark/skills/bundled/knowledge-graph/server/docker-compose-falkordb-dev.yml +146 -0
- package/.deepquark/skills/bundled/knowledge-graph/server/docker-compose-falkordb.yml +151 -0
- package/.deepquark/skills/bundled/knowledge-graph/server/docker-compose-neo4j-dev-local.yml +161 -0
- package/.deepquark/skills/bundled/knowledge-graph/server/docker-compose-neo4j-dev.yml +161 -0
- package/.deepquark/skills/bundled/knowledge-graph/server/docker-compose-neo4j.yml +169 -0
- package/.deepquark/skills/bundled/knowledge-graph/server/docker-compose-production.yml +128 -0
- package/.deepquark/skills/bundled/knowledge-graph/server/docker-compose-test.yml +10 -0
- package/.deepquark/skills/bundled/knowledge-graph/server/docker-compose.yml +84 -0
- package/.deepquark/skills/bundled/knowledge-graph/server/entrypoint.sh +40 -0
- package/.deepquark/skills/bundled/knowledge-graph/server/install.ts +2054 -0
- package/.deepquark/skills/bundled/knowledge-graph/server/podman-compose-falkordb.yml +78 -0
- package/.deepquark/skills/bundled/knowledge-graph/server/podman-compose-neo4j.yml +88 -0
- package/.deepquark/skills/bundled/knowledge-graph/server/podman-compose.yml +83 -0
- package/.deepquark/skills/bundled/knowledge-graph/server/test-all-llms-mcp.ts +387 -0
- package/.deepquark/skills/bundled/knowledge-graph/server/test-embedding-models.ts +201 -0
- package/.deepquark/skills/bundled/knowledge-graph/server/test-embedding-providers.ts +641 -0
- package/.deepquark/skills/bundled/knowledge-graph/server/test-graphiti-model.ts +217 -0
- package/.deepquark/skills/bundled/knowledge-graph/server/test-grok-correct.ts +141 -0
- package/.deepquark/skills/bundled/knowledge-graph/server/test-grok-llms-mcp.ts +386 -0
- package/.deepquark/skills/bundled/knowledge-graph/server/test-grok-models.ts +173 -0
- package/.deepquark/skills/bundled/knowledge-graph/server/test-llama-extraction.ts +188 -0
- package/.deepquark/skills/bundled/knowledge-graph/server/test-mcp-final.ts +240 -0
- package/.deepquark/skills/bundled/knowledge-graph/server/test-mcp-live.ts +187 -0
- package/.deepquark/skills/bundled/knowledge-graph/server/test-mcp-session.ts +127 -0
- package/.deepquark/skills/bundled/knowledge-graph/server/test-model-combinations.ts +316 -0
- package/.deepquark/skills/bundled/knowledge-graph/server/test-ollama-models.ts +228 -0
- package/.deepquark/skills/bundled/knowledge-graph/server/test-openrouter-models.ts +460 -0
- package/.deepquark/skills/bundled/knowledge-graph/server/test-real-life-mcp.ts +311 -0
- package/.deepquark/skills/bundled/knowledge-graph/server/test-search-debug.ts +199 -0
- package/.deepquark/skills/bundled/knowledge-graph/tools/Install.md +104 -0
- package/.deepquark/skills/bundled/knowledge-graph/tools/README.md +120 -0
- package/.deepquark/skills/bundled/knowledge-graph/tools/knowledge-cli.ts +996 -0
- package/.deepquark/skills/bundled/knowledge-graph/tools/server-cli.ts +531 -0
- package/.deepquark/skills/bundled/knowledge-graph/workflows/BulkImport.md +514 -0
- package/.deepquark/skills/bundled/knowledge-graph/workflows/CaptureEpisode.md +242 -0
- package/.deepquark/skills/bundled/knowledge-graph/workflows/ClearGraph.md +392 -0
- package/.deepquark/skills/bundled/knowledge-graph/workflows/GetRecent.md +352 -0
- package/.deepquark/skills/bundled/knowledge-graph/workflows/GetStatus.md +373 -0
- package/.deepquark/skills/bundled/knowledge-graph/workflows/HealthReport.md +212 -0
- package/.deepquark/skills/bundled/knowledge-graph/workflows/InvestigateEntity.md +142 -0
- package/.deepquark/skills/bundled/knowledge-graph/workflows/OntologyManagement.md +201 -0
- package/.deepquark/skills/bundled/knowledge-graph/workflows/RunMaintenance.md +302 -0
- package/.deepquark/skills/bundled/knowledge-graph/workflows/SearchByDate.md +255 -0
- package/.deepquark/skills/bundled/knowledge-graph/workflows/SearchFacts.md +382 -0
- package/.deepquark/skills/bundled/knowledge-graph/workflows/SearchKnowledge.md +374 -0
- package/.deepquark/skills/bundled/knowledge-graph/workflows/StixImport.md +212 -0
- package/bin/deepquark +0 -0
- package/package.json +1 -1
- package/.deepquark/skills/bundled/ge-payroll/SKILL.md +0 -153
- package/.deepquark/skills/bundled/ge-payroll/evals/evals.json +0 -23
- package/.deepquark/skills/bundled/ge-payroll/references/pain-points-improvements.md +0 -106
- package/.deepquark/skills/bundled/ge-payroll/references/process-detail.md +0 -217
- package/.deepquark/skills/bundled/ge-payroll/references/raci-stakeholders.md +0 -85
- 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
|