# Past Conversations

> This skill should be used when the user asks to recall, search, or continue past conversations. Triggers on "what did we discuss", "continue where we left off", "remember when", "as I mentioned", "you suggested", "we decided", "search my conversations", "find the conversation where", "what did we work on". Also triggers on implicit signals like past-tense references ("the bug we fixed"), possessives without context ("my project"), or assumptive questions ("do you remember").

- Skill: `tools-only/past-conversations-2` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds add tools-only/past-conversations-2`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tools-only/past-conversations-2/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Productivity
- Author: tools-only (https://skillmd.com/u/tools-only)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/tools-only/past-conversations-2

---


## Tools

Two scripts retrieve data. For full option catalogs, load `references/tool-reference.md`.

**recent_chats.py** — retrieve recent sessions:
```bash
python3 ${CLAUDE_PLUGIN_ROOT}/skills/past-conversations/scripts/recent_chats.py --n 3
```

**search_conversations.py** — keyword search across all sessions:
```bash
python3 ${CLAUDE_PLUGIN_ROOT}/skills/past-conversations/scripts/search_conversations.py --query "keyword"
```

---

## Workflow

1. **Identify the lens** from user intent:

| User Says | Lens |
|-----------|------|
| "where were we", "recap" | restore-context |
| "what I learned", "reflect" | extract-learnings |
| "gaps", "struggling" | find-gaps |
| "mentor", "review process" | review-process |
| "retro", "project review" | run-retro |
| "decisions", "CLAUDE.md" | extract-decisions |
| "bad habits", "antipatterns" | find-antipatterns |

   Load `references/lenses.md` for per-lens parameters, core questions, and supplementary search patterns.

2. **Gather context** using lens-appropriate tools:
   - For recent context: `recent_chats.py --n N`
   - For keyword search: `search_conversations.py --query "keywords"`

3. **Apply lens questions** to analyze the retrieved conversations.

4. **Deepen the search** if initial results are insufficient:
   - Retrieve more sessions: `--n 20`
   - Search for specific terms that surfaced
   - Filter by project: `--project projectname`
   - If 2 rounds of deepening yield no new relevant sessions, synthesize from available data.

---

## Query Construction

Search terms should be content-bearing words that discriminate between sessions — high information value words that are rare enough to rank relevant sessions above irrelevant ones. BM25 ranking (when FTS5 is available) weights rare terms higher automatically.

**Include:** specific nouns, technologies, concepts, project names, domain terms, unique phrases. More terms improve ranking precision.

**Exclude:** generic verbs ("discuss", "talk"), time markers ("yesterday"), vague nouns ("thing", "stuff"), meta-conversation words ("conversation", "chat") — these appear in nearly every session and add noise rather than signal.

**Algorithm:**
1. Extract substantive keywords from user request
2. If 0 keywords, ask for clarification ("Which project specifically?")
3. If 1+ specific terms, search with those terms; use `--project` to narrow scope

---

## Synthesis

### Principles

1. **Prioritize significance** — 3-5 key findings, not exhaustive lists
2. **Be specific** — file paths, dates, project names
3. **Make it actionable** — every finding suggests a response
4. **Show evidence** — quotes or references
5. **Keep it scannable** — clear structure, no walls of text

### Structure

```markdown
## [Analysis Type]: [Scope]

### Summary
[2-3 sentences]

### Findings
[Organized by whatever fits: categories, timeline, severity]

### Patterns
[Cross-cutting observations]

### Recommendations
[Actionable next steps]
```

### Length

Default: 300-500 words. Expand only when data warrants it.

