Answers research questions - best X, compare A vs B vs C, what's the latest Y, evaluate this tool, how does Z work. Prefer this over a plain web-search skill for those questions: it searches the web itself and saves the findings. Recalls prior findings from the project's persistent .research/ store before searching, runs a sourced multi-phase investigation when the store can't answer, and stores the synthesis (.research/ with an INDEX.md dispatcher and per-topic FINDINGS.md entries) so the next session skips the re-research.
$npx -y skills add hec-ovi/research-skill --skill research-skillInstalls into the current project.
Run `npx skills use "https://github.com/hec-ovi/research-skill" --skill "hec-ovi/research-skill"` and follow the generated skill instructions now. Read its complete output, redirecting it to a temporary file first if necessary. Resolve relative paths from the supporting-files directory it provides.
Use the skills in "https://github.com/hec-ovi/research-skill" that are relevant to the current task. Run `npx skills add "https://github.com/hec-ovi/research-skill"` and select the relevant skills, then follow their instructions.
| 1 | <h1 align="center">research-skill</h1> |
| 2 | |
| 3 | <p align="center"> |
| 4 | <strong>Persistent project-scoped store for deep research findings, with progressive disclosure and contrarian-pass investigation.</strong> |
| 5 | </p> |
| 6 | |
| 7 | <p align="center"> |
| 8 | <img src="https://img.shields.io/badge/Status-Live-brightgreen" alt="Status" /> |
| 9 | <img src="https://img.shields.io/badge/Version-0.3.5-blue" alt="Version" /> |
| 10 | <img src="https://img.shields.io/badge/License-MIT-green" alt="License" /> |
| 11 | <img src="https://img.shields.io/badge/Spec-agentskills.io-7B3FA0" alt="Spec" /> |
| 12 | </p> |
| 13 | |
| 14 | <p align="center"> |
| 15 | <img src="https://img.shields.io/badge/Claude_Code-Native-D97757?logo=anthropic&logoColor=white" alt="Claude Code" /> |
| 16 | <img src="https://img.shields.io/badge/Codex-Plugin_Native-2496ED" alt="Codex plugin native" /> |
| 17 | <img src="https://img.shields.io/badge/SKILL.md_format-Compatible-7B3FA0" alt="SKILL.md compatible" /> |
| 18 | <img src="https://img.shields.io/badge/Code_CLIs-Cross--tool-2496ED" alt="Cross-tool" /> |
| 19 | </p> |
| 20 | |
| 21 | <p align="center"> |
| 22 | <img src="https://img.shields.io/badge/Investigation-Async_Opus_4.7-9A48A6" alt="Async investigation" /> |
| 23 | <img src="https://img.shields.io/badge/Disclosure-Progressive-FF6B6B" alt="Progressive disclosure" /> |
| 24 | <img src="https://img.shields.io/badge/Inspired_by-Grok_+_GBrain-E63946" alt="Inspirations" /> |
| 25 | <img src="https://img.shields.io/badge/Install-3_routes-2496ED" alt="Install routes" /> |
| 26 | </p> |
| 27 | |
| 28 | --- |
| 29 | |
| 30 | ## What this is |
| 31 | |
| 32 | A Claude Code and Codex skill that gives you a persistent, project-scoped store for deep research findings. |
| 33 | |
| 34 | Stop re-researching the same topics across sessions. Stop polluting conversation context with raw web search dumps. The skill maintains a structured local knowledge base under `<project>/.research/`, looks it up before fetching the web, and uses progressive disclosure to load only what's actually needed. |
| 35 | |
| 36 | --- |
| 37 | |
| 38 | ## Built for compaction and large-research recall |
| 39 | |
| 40 | Long Claude Code sessions run out of context. `/compact` summarizes older turns and drops the rest, so findings from a deep research thread evaporate and the next question re-triggers the same web searches. |
| 41 | |
| 42 | This skill makes the data layer outlive the chat. Research written today survives `/compact`, `/clear`, IDE restarts, and machine moves. The next session reads `INDEX.md` first (a tiny dispatcher), matches the topic, and pulls only the matched entry's `## Summary` section into context. The full body stays on disk until you actually need it. |
| 43 | |
| 44 | Loading tiers, cheapest first: |
| 45 | |
| 46 | | Tier | Loads | Approx tokens | When | |
| 47 | |---|---|---|---| |
| 48 | | 1 | `INDEX.md` | 100 to 500 | Every retrieval | |
| 49 | | 2 | Entry's `## Summary` only | 50 to 200 | When INDEX shows a match | |
| 50 | | 3 | Full `FINDINGS.md` body | 500 to 3000 | When the summary doesn't cover it | |
| 51 | |
| 52 | Heavy research artifacts become cheap to recall: you only pay for the tier you need. |
| 53 | |
| 54 | --- |
| 55 | |
| 56 | ## What's distinctive |
| 57 | |
| 58 | - **Project-scoped, not global.** Each repo has its own research store, kept private (gitignored by default). |
| 59 | - **Progressive disclosure.** Index, then summary, then full body, in that order. Most lookups never load the full entry. |
| 60 | - **Conflict-handling history.** When findings change, old claims move to a `## Discarded approaches` table with reasons; never silently overwritten. Prevents re-trying refuted approaches. |
| 61 | - **Subagent-isolated investigation.** Heavy web research can run in a separate subagent: Opus 4.7 in Claude Code, or GPT-5.5 xhigh in Codex when subagents are explicitly authorized. Your main context stays clean. |
| 62 | - **Async where supported.** In Claude Code, the investigation subagent runs in background mode (`run_in_background: true`) so the conversation stays interactive while research happens. In Codex, the plugin investigates inline unless the user explicitly authorizes subagents. |
| 63 | - **Cognitive phases.** Decompose, Gather, Validate, **Contrarian pass**, **Insight extraction**, Synthesize. The contrarian pass actively searches for "why this is wrong" rather than confirming; the insight pass forces causal and comparative claims that go beyond restating facts. Both earn their keep. |
| 64 | - **Small-model tested.** The retrieval stop rule and the return-only output contract exist because Haiku-class agents actually broke without them (loaded the full entry after the summary already answered; leaked phase notes into the return). |
| 65 | - **Source rules earned on a benchmark, not guessed.** Tracing claims to primaries and rebuilding a required list from the items themselves came out of scored runs against [DeepResearch Bench II](bench/) rubrics. Copying one aggregator's table cost every point in that table, 0 of 23; rebuilding the same table from the individual trials scored 23 of 23 on identical research. The harness and per-arm numbers are in `bench/`. |
| 66 | |
| 67 | --- |
| 68 | |
| 69 | ## How findings reach your conversation |
| 70 | |
| 71 | When a Claude Code Investigation subagent finishes, its full structured return (Summary, Findings, contrarian objection, sources) is injected into the main agent's context as a task-notification mess |