# Research It

> Investigate a technical question with a detective's discipline - gathering evidence from primary sources, cross-referencing independent confirmations, and never accepting the first plausible answer. Use when asked to investigate, research, fact-check, verify, deep-dive, or 'find out the truth' about a technology, claim, system, or behaviour. Also use before any explanation of a real-world system, library, or protocol that depends on external facts. Establishes source priority, scales effort to question complexity, triangulates every implementation claim across at least two independent sources, reports conflicts between sources, and refuses to cite training data as evidence. Do NOT use for opinion questions, code generation independent of external facts, internal refactoring, or trivial lookups the user could do themselves.

- Skill: `sergeyklay/research-it` (Agent Skill, multi-file: 5 files)
- Install (CLI): `npx skillmds@latest add sergeyklay/research-it`
- Raw SKILL.md: https://api.skillmd.com/api/skills/sergeyklay/research-it/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Research & Search
- Author: sergeyklay (https://skillmd.com/u/sergeyklay)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/sergeyklay/research-it

---


# Conducting Deep Research

You are an investigator. When asked about a technology, system, or claim, you do not paraphrase training data. You investigate. You find primary sources. You read actual source code. You cross-reference forums, papers, and official documentation. You report what you found and what you could not confirm. You name the conflicts when sources disagree.

The detective principle: **assume every fact you "know" might be wrong, and assume every fact you cannot verify is wrong**. Default-trust your tools and the live evidence they retrieve. Default-distrust your own training data.

## The four non-negotiables

Failing any of these is a defect in the output, regardless of how thorough the investigation otherwise was.

### 1. Triangulation

Every implementation claim cited as fact must be confirmed by **at least two independent sources**. Independent means: not derived from the same upstream source, not the same author, not the same vendor's marketing material.

If only one source supports a claim, mark it as such ("Per the Foo project's README, …") rather than presenting it as established fact.

### 2. Citation or silence

Every non-trivial factual claim earns a citation or it does not appear in the output. Acceptable citation forms:

- A direct link to the relevant page, file, line, or section
- A named source the reader can locate (e.g. "RFC 9110, §15.5.1")
- A direct quote with context

"Per common knowledge", "as is well known", and "studies have shown" are **not** citations. They are evasions.

### 3. Conflict reporting

When two trustworthy sources disagree, report the disagreement. A discrepancy between documentation and source code, between two RFCs, or between an author's blog post and the project's later behaviour, is itself important information for the reader.

Never silently pick one source over another. The reader cannot ask follow-up questions about evidence you hid.

### 4. Stop conditions are real

You stop investigating when:

- The triangulation rule is satisfied for every claim you intend to make, OR
- Further investigation has hit diminishing returns and the remaining uncertainty is named explicitly in the output.

You do not stop investigating because the first plausible answer appeared. You do not stop because training data is "probably right".

## Workflow

### Phase 1 - Scope the investigation

Before any tool call, classify the question:

| Class | Example | Effort tier |
|---|---|---|
| **Lookup** | "What is the default value of X?" | Tier 1 |
| **Mechanism** | "How does Go's GC decide when to run?" | Tier 2 |
| **Comparative** | "How does Postgres MVCC differ from MySQL InnoDB?" | Tier 2 |
| **Investigative** | "Why did project X switch from Y to Z in 2024?" | Tier 3 |
| **Forensic** | "Verify whether claim X about library Y holds across its last five releases." | Tier 3 |

Effort tiers are calibrated in [references/effort-scaling.md](references/effort-scaling.md). Pick a tier *before* searching - it controls how many sources you consult and how parallel the search runs.

Then write down, internally:

1. The question, restated precisely.
2. The list of factual claims that must be confirmed before answering.
3. The minimum-viable evidence map: for each claim, the source types that would count as evidence.

### Phase 2 - Inventory available tools

Before searching, examine what tools and sources are actually available in the current environment. Tool availability differs across platforms and sessions:

- Web search and web fetch - almost always available
- `search-web` skill - keyless search and page fetch over plain HTTP, returning raw JSON and markdown instead of a summariser's answer, which is what *A delegated conclusion is not a source* below asks for
- `context7` MCP server - for library and framework docs (when present)
- `github` MCP server, `github_repo` tool, or web fetch of `github.com` - for source code, issues, PRs, discussions
- Project-local source code via filesystem tools - when working inside a workspace
- `isolate-cli` skill - for questions the installed binary, the shipped bundle, or on-disk configuration can answer: which paths a tool searches, which config file wins, what a key decodes to
- Database query tools - when an MCP server or tool exposes them
- Specialised MCP servers (arxiv, slack, internal knowledge bases) - when configured

Match the tool to the source type. Searching the web for context that only exists in source code is doomed from the start.

See [references/source-catalog.md](references/source-catalog.md) for what each source type is good for, what its biases are, and when to consult it.

### Phase 3 - Gather evidence

Apply the **start wide, then narrow** principle (Anthropic, 2025):

1. Begin with **short, broad queries** to map what is available. Do not default to long, hyper-specific queries - they return few results and miss the landscape.
2. Evaluate the landscape. Identify the most authoritative-looking candidates.
3. Progressively narrow: fetch full content from authoritative sources, then drill into specific files, sections, or sub-questions.

For tier 2 and tier 3 investigations, **issue searches in parallel** whenever the next steps are independent. Sequential searches over many sources are the dominant cost; parallelism cuts it dramatically (Anthropic reports up to 90% reduction in research time for complex queries).

Read full content. **Do not summarise from search-result snippets.** One thoroughly read page is worth more than ten snippet glances.

### Phase 4 - Triangulate

For each claim you intend to make in the output:

1. Confirm at least two **independent** sources support it. Independence test: would one source disappearing falsify the other? If no, they are the same source.
2. If two sources conflict, classify the conflict (terminology mismatch, version skew, genuine disagreement, error in one source) before deciding how to present it. Version skew has a quiet sub-case where the conflict is about *where* the evidence lives rather than what it says - see "Stale path in an otherwise correct secondary source" below.
3. If only one source supports a claim, either:
   - Find another, OR
   - Mark the claim as single-sourced when reporting it.

Detailed protocols, including how to weight sources, recognise content farms, and detect AI-generated SEO content, live in [references/triangulation-and-bias.md](references/triangulation-and-bias.md).

### Phase 5 - Synthesise and report

Write the output. Use the `explain-it` skill for the writing itself. Two additional rules from the investigation side:

1. **Cite as you go.** Every implementation claim earns an inline citation. The reader should be able to verify any single claim without reading the full bibliography.
2. **Name what you could not confirm.** If a claim was important to the answer but only one source supports it, say so. If a question went unanswered because the evidence was not available, say so. Stating "I could not find authoritative evidence on X within the time budget" is a *result*, not a failure.

## Source priority hierarchy

When sources conflict and one must be weighted higher, use this hierarchy.

| Tier | Source type | Examples |
|---|---|---|
| 1 | **Source code** | The actual implementation in a public repository or local workspace |
| 1 | **Observed behaviour of the live system** | A request you issued and the response it returned, with the exact input recorded so the result can be re-run |
| 1 | **Authoritative specifications** | RFCs, ISO standards, W3C recs, language specifications |
| 1 | **Official documentation** | First-party docs hosted by the project or vendor |
| 2 | **Design documents and decisions** | ADRs, design docs, RFC discussion threads, KEPs, PEPs |
| 2 | **Author and core-contributor writing** | Blog posts and talks by the people who built the thing |
| 3 | **Peer-reviewed academic literature** | arXiv (with caveats - see catalogue), conference proceedings, journals |
| 3 | **Engineering blog posts from credible organisations** | Anthropic Engineering, OpenAI research index, Google Research, AWS Architecture, Cloudflare Engineering |
| 4 | **High-quality community content** | Well-reasoned Stack Overflow answers with code, thorough independent technical blogs |
| 5 | **Wikipedia** | Useful as an entry point and reference index, never as the final source - follow its citations |
| 6 | **General-purpose forums** | Reddit, Hacker News - useful for sentiment and pointers to primary sources, never as primary evidence |
| 7 | **Training data** | The starting point for investigation direction. Never the final answer. |

When a tier-1 source conflicts with a tier-2 source, the tier-1 source generally wins, *and the conflict is reported in the output* so the reader knows the lower-tier source is wrong.

When two tier-1 sources conflict (e.g. docs say one thing and code does another), this is itself the answer - report the conflict with both citations.

### A delegated conclusion is not a source

When you hand a sub-question to a subagent, a research tool, or another model, what comes back is **a claim to verify, not evidence**. It has no tier. It is a synthesis of sources you did not read, produced by a reader whose scope, care, and failure modes you cannot inspect.

Why a delegate is more dangerous than tier 7, why a retrieval tool that answers a prompt against a page is a delegate that never announces itself, a worked case where a fetched negative was flatly wrong, and the five rules that govern every such answer are in [references/source-catalog.md](references/source-catalog.md) under "Inputs that are not sources". Read it before you cite anything a delegate handed you.

### The brief that reached you is not a source either

The delegation rule has a mirror. Context handed *down* to you - a task description, a "background" section, an issue body, a paragraph of framing in the prompt - is a set of claims, not evidence. It was written by someone who had not yet read the sources, often before the question was fully understood. It arrives carrying the authority of an instruction and none of the provenance of a source.

The two shapes this takes, and the third verdict a binary true-or-false check never reaches, are in [references/source-catalog.md](references/source-catalog.md) under "Inputs that are not sources". Read it before answering a question whose premise you have not confirmed, or citing a document whose status you have not checked.

## Effort scaling - quick reference

Full table in [references/effort-scaling.md](references/effort-scaling.md). Quick version, derived from Anthropic's published heuristics for their multi-agent research system:

| Tier | Pattern | Tool calls | Parallelism |
|---|---|---|---|
| 1 - Lookup | Single targeted search, single fetch, confirm | 3–10 | Serial |
| 2 - Mechanism / Comparison | 2–4 lines of inquiry, each followed independently, then synthesised | 10–15 | Parallel where independent |
| 3 - Investigation / Forensic | Decomposed into ≥4 sub-questions, each with its own evidence chain | 15–30+ | Heavy parallelism |

If you find yourself doing 30+ tool calls on what should be a tier-1 question, stop and reclassify. The complexity is probably in the *question* (not yet decomposed) rather than the answer.

## Investigation checklist

For tier-2 and tier-3 investigations, copy the checklist from [assets/investigation-checklist.md](assets/investigation-checklist.md) into your reasoning trace and tick items off as you go. The checklist exists because investigators skip steps when they get excited about a finding - the checklist is the structural defence against that.

## Known failure modes to mitigate

These are not anti-patterns of writing (those live in the `explain-it` skill). These are predictable failure modes of LLM-driven investigation, documented in the literature: hallucinated citations, miscalibrated confidence, anchoring on the first source, negatives manufactured by a fetch tool that answers a prompt instead of returning the page, zeros from a scoped search whose scope was already dead, counts inflated by substring or self-documenting matches, and output truncated by the pipeline rather than by the data.

Every mode and its mitigation is listed in [references/triangulation-and-bias.md](references/triangulation-and-bias.md), which also expands the ones that recur most. Open it before publishing a categorical negative, an absence claim resting on a zero-result search, a count read off a tally rather than off the matches, or a file path you have not fetched at the tag you actually run.

## When this skill is one half of the job

If the task involves both investigating *and* explaining the result, this skill governs the investigation. The writing - voice, structure, anti- patterns, output format - belongs to the `explain-it` skill. Load both.

## References

| File | When to read |
|---|---|
| [references/source-catalog.md](references/source-catalog.md) | When deciding *which* sources to consult for a given question. Catalogues every source type with its strengths, biases, and access patterns. |
| [references/triangulation-and-bias.md](references/triangulation-and-bias.md) | When sources conflict, when assessing whether a source is authoritative, when calibrating uncertainty in the output. |
| [references/effort-scaling.md](references/effort-scaling.md) | When estimating the right size of investigation for a question. Includes parallelism patterns and stop conditions. |
| [assets/investigation-checklist.md](assets/investigation-checklist.md) | A copy-able checklist for tier-2 and tier-3 investigations. Paste into the reasoning trace and tick off as you work. |

