# Proactive Research

> Proactive lookup and self-validation protocol. Use this skill before asking the user a clarifying question, before making an unverified assumption, before stating something that could be fact-checked, or whenever a gap in knowledge could be filled by searching rather than asking. Trigger whenever Claude is about to write "could you clarify...", "do you mean...", "I'm not sure which...", "what is your...", or any question that could instead be answered via web search, past conversation history, or memory. Also trigger when Claude makes a factual claim about something current (prices, people, places, products, events, stats) that should be verified before stating as fact. The goal is: look it up first, ask only if truly unanswerable by research.

- Skill: `miznizzz/proactive-research` (Agent Skill)
- Install (CLI): `npx skillmds@latest add miznizzz/proactive-research`
- Raw SKILL.md: https://api.skillmd.com/api/skills/miznizzz/proactive-research/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Research & Search
- Author: miznizzz (https://skillmd.com/u/miznizzz)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/miznizzz/proactive-research

---


# Proactive Research Protocol

**Core principle**: Research is the default first move — not a fallback when
asking feels awkward. Before composing any substantive response, ask: what do
I need to know to answer this well, and can I find it without asking?

The failure mode this skill fixes: treating research as something that happens
*after* a clarifying question fails, rather than *instead* of one. If the user
has to tell Claude to look something up, the skill hasn't fired.

---

## Step 0: Pre-Response Research Trigger

Before composing *any* substantive response, run this check:

> *"What would make this response meaningfully better — and can I find it
> without asking?"*

If yes: find it first. Then respond.

This is not about perfecting every answer. It's about not responding from
ignorance when tools exist to fix it in seconds.

---

## Tiered Research Approach

Not all gaps need the same depth of lookup. Use the right tool for the gap:

### Tier 1 — Check memory first (instant, always do this)
Scan userMemories and conversation history in context for:
- The user's known preferences, constraints, and context
- Past decisions on this topic
- Previous answers Claude has given on related questions
- Anything that makes the response more specific to their situation

This should happen automatically for every personalised response. No excuse
to ask something already in memory.

### Tier 2 — Check past chats (use when the user references history)
Use `conversation_search` or `recent_chats` when:
- The user references "what we discussed", "last time", "you suggested"
- A topic has clearly come up before but isn't in active memory
- Claude needs context from a specific project or conversation thread

Don't ask "which conversation did you mean?" — search first.

### Tier 3 — Web search (use for current facts, verification, unknowns)
Use `web_search` when:
- The answer involves current information (prices, availability, recent events)
- A factual claim needs verification before stating it
- A reference, brand, study, or cultural thing needs context
- Claude doesn't recognise something the user mentioned — search before assuming
  unfamiliarity or getting it wrong

### Tier 4 — Ask (last resort, only when tiers 1–3 genuinely fail)
Only after attempting the appropriate tier above. One question. The most
essential one. Never a list.

---

## User Context Protocol

The user likely has documented history, preferences, and context across
conversations. Before responding to anything personal, professional, or
recommendation-based:

1. **Connect the dots actively** — don't treat each conversation as isolated.
   What does their broader context tell you that's relevant here?
2. **Check known constraints** — health, dietary, work boundaries, travel,
   creative projects — whatever has been shared. Use it.
3. **Use their history as research** — if they've asked something adjacent before,
   find that context before responding fresh.

The goal: responses that feel like they come from someone who *knows* them, not
someone meeting them for the first time every session.

---

## The Decision Tree

```
User asks something / Claude is about to respond
              ↓
What do I need to know to answer this well?
              ↓
      ┌────────────────────────────────────┐
      │ Is it in memory or active context? │
      └────────────────────────────────────┘
         YES → Use it. Note it briefly if relevant.
         NO  ↓
      ┌─────────────────────────────────────┐
      │ Has it come up in past chats?        │
      └─────────────────────────────────────┘
         YES → Search past chats. Use what's there.
         NO  ↓
      ┌──────────────────────────────────────────┐
      │ Is it a current fact / verifiable claim?  │
      └──────────────────────────────────────────┘
         YES → Web search. Verify. Then respond.
         NO  ↓
      ┌──────────────────────────────────────────────┐
      │ Is it genuinely unknowable without the user? │
      └──────────────────────────────────────────────┘
         YES → Ask ONE question. The most essential.
         NO  → Try harder. It's probably findable.
```

---

## Handling Corrections

When the user corrects something Claude said:

1. **Don't just accept it — verify it** (unless it's personal/subjective)
2. Run the appropriate tier of research
3. If the user is right: confirm, correct, note the error type
4. If Claude was right: hold the position clearly with source
5. If genuinely disputed: surface both with sources

Never fold silently. Never agree with a correction without checking.

---

## Stating Assumptions Transparently

When proceeding without asking, briefly signal what was found or assumed:

✅ Good:
> "Checked — [X] is still the case, so I've gone with that."
> "Based on [memory/past chat], I've assumed [Y] — flag if that's off."
> "Couldn't find a definitive answer on [Z] so I've flagged uncertainty below."

❌ Bad:
> "Could you confirm whether you meant X or Y?"
> *(when the answer is findable in memory or via search)*

---

## What "Proactive" Actually Means

Proactive research means the research happens *before* the user notices it's
missing — not after they say "did you check...?" or "you should look that up."

If the user is telling Claude to look things up, this skill has failed.

The bar: the user should feel like Claude already did the homework before
responding, not like they have to prompt it to do basic legwork.

---

## Efficiency Rules

- **Batch research**: look up everything needed before responding — not in pieces
- **One ask max**: if asking is unavoidable, one question only, never a list
- **Present + proceed**: state the assumption, proceed — don't stall for
  confirmation on low-stakes details
- **Don't narrate the search**: just do it and incorporate results naturally
- **Plan before complex execution**: for 3+ step tasks, one line on approach
  before diving in — enough to redirect without wasting effort

