Skill: yumoezhung/remembering-conversations (version 1.0.0)

--- name: remembering-conversations description: Use when user asks 'how should I...' or 'what's the best approach...' after exploring code, OR when you've tried to solve something and are stuck, OR for unfamiliar workflows, OR when user references past work. Searches conversation history. --- # Remembering Conversations **Core principle:** Search before reinventing. Searching costs nothing; reinventing or repeating mistakes costs everything. ## Mandatory: Use the Search Agent **YOU MUST dispatch the search-conversations agent for any historical search.** Announce: "Dispatching search agent to find [topic]." Then use the Task tool with `subagent_type: "search-conversations"`: ``` Task tool: description: "Search past conversations for [topic]" prompt: "Search for [specific query or topic]. Focus on [what you're looking for - e.g., decisions, patterns, gotchas, code examples]." subagent_type: "search-conversations" ``` The agent will: 1. Search with the `search` tool 2. Read top 2-5 results with the `show` tool 3. Synthesize findings (200-1000 words) 4. Return actionable insights + sources **Saves 50-100x context vs. loading raw conversations.** ## When to Use You often get value out of consulting your episodic memory once you understand what you're being asked. Search memory in these situations: **After understanding the task:** - User asks "how should I..." or "what's the best approach..." - You've explored current codebase and need to make architectural decisions - User asks for implementation approach after describing what they want **When you're stuck:** - You've investigated a problem and can't find the solution - Facing a complex problem without obvious solution in current code - Need to follow an unfamiliar workflow or process **When historical signals are present:** - User says "last time", "before", "we discussed", "you implemented" - User asks "why did we...", "what was the reason..." - User says "do you remember...", "what do we know about..." **Don't search first:** - For current codebase structure (use Grep/Read to explore first) - For info in current conversation - Before understanding what you're being asked to do ## Direct Tool Access (Discouraged) You CAN use MCP tools directly, but DON'T: - `mcp__plugin_episodic-memory_episodic-memory__search` - `mcp__plugin_episodic-memory_episodic-memory__show` Using these directly wastes your context window. Always dispatch the agent instead. See MCP-TOOLS.md for complete API reference if needed for advanced usage.

path: MCP-TOOLS.md
content: # Episodic Memory MCP Tools Reference

The episodic-memory plugin exposes two MCP tools for searching and displaying past conversations.

## search

Search your episodic memory of past Claude Code conversations using semantic or text search.

**Tool name:** `mcp__plugin_episodic-memory_episodic-memory__search`

### Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `query` | `string` or `string[]` | Yes | Search query. String for single-concept search, array of 2-5 strings for multi-concept AND search |
| `mode` | `"vector"` \| `"text"` \| `"both"` | No | Search mode (default: `"both"`). Only used for single-concept searches |
| `limit` | `number` | No | Maximum results to return, 1-50 (default: 10) |
| `after` | `string` | No | Only return conversations after this date (YYYY-MM-DD) |
| `before` | `string` | No | Only return conversations before this date (YYYY-MM-DD) |
| `response_format` | `"markdown"` \| `"json"` | No | Output format (default: `"markdown"`) |

### Search Modes

- **`vector`** - Semantic similarity search using embeddings
- **`text`** - Exact text matching (case-insensitive)
- **`both`** - Combined semantic + text search (default, recommended)

### Single-Concept Search

```typescript
{
  query: "React Router authentication errors",
  mode: "both",
  limit: 10
}
```

### Multi-Concept Search (AND)

Search for conversations containing ALL concepts:

```typescript
{
  query: ["authentication", "React Router", "error handling"],
  limit: 10
}
```

Note: `mode` is ignored for multi-concept searches (always uses vector similarity).

### Date Filtering

```typescript
{
  query: "refactoring patterns",
  after: "2025-09-01",
  before: "2025-10-01"
}
```

### Response Format

#### Markdown (default)

Human-readable format with:
- Project name and date
- Conversation summary
- Matched exchange snippet
- Similarity score
- File path and line numbers

#### JSON

Machine-readable format:
```json
{
  "results": [...],
  "count": 5,
  "mode": "both"
}
```

## read

Display a full conversation from episodic memory as markdown.

**Tool name:** `mcp__plugin_episodic-memory_episodic-memory__read`

### Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `path` | `string` | Yes | Absolute path to the JSONL conversation file |
| `startLine` | `number` | No | Starting line number (1-indexed, inclusive) |
| `endLine` | `number` | No | Ending line number (1-indexed, inclusive) |

### Usage

**Read entire conversation:**
```typescript
{
  path: "/Users/name/.config/superpowers/conversation-archive/project/uuid.jsonl"
}
```

**Read specific range:**
```typescript
{
  path: "/Users/name/.config/superpowers/conversation-archive/project/uuid.jsonl",
  startLine: 100,
  endLine: 200
}
```

### Response Format

Markdown-formatted conversation with:
- Message roles (user/assistant)
- Content (including tool uses and results)
- Line numbers for reference

## Error Handling

Both tools return errors as text content with `isError: true`:
- Invalid parameters (validation errors)
- File not found
- Date parsing errors
- Search failures

## Performance Notes

- **Search** is fast (< 100ms typically)
- **Show** can be slow for large conversations
  - Use `startLine`/`endLine` to paginate
  - Conversations can be 1000+ lines
- Vector search uses sqlite-vec with cached embeddings
- Text search uses SQLite FTS5 full-text index


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)