An open API service indexing awesome lists of open source software.

https://github.com/kaos599/deep-ass-research

IDE-agnostic deep-research framework for AI agents: maps a topic wide, commits to depth on purpose, adversarially verifies its findings, and synthesizes them into a backlinked, primary-sourced Obsidian vault. Works in Claude Code, Cursor, opencode, or any agent.
https://github.com/kaos599/deep-ass-research

agentic-ai ai-agents anthropic claude-code claude-code-plugin claude-code-skill cursor deep-research knowledge-graph llm mcp multi-agent obsidian opencode research-agent subagents

Last synced: 5 days ago
JSON representation

IDE-agnostic deep-research framework for AI agents: maps a topic wide, commits to depth on purpose, adversarially verifies its findings, and synthesizes them into a backlinked, primary-sourced Obsidian vault. Works in Claude Code, Cursor, opencode, or any agent.

Awesome Lists containing this project

README

          

# ๐Ÿคฟ Deep-Ass Research

**Research like a paranoid PhD, not a search bar.**

Maps a topic wide, commits to depth on purpose, tries to refute its own findings, and leaves you a backlinked, primary-sourced knowledge vault โ€” in any AI coding agent.


License
Last commit
Stars
Works with
Output

Before / After โ€ข
Benchmarks โ€ข
How it works โ€ข
Install โ€ข
What you get โ€ข
Full install guide

---

Most "research" an agent does is one search, three skimmed snippets, and a confident paragraph that may or may not be true. **DAR** runs the loop a careful human would: cast wide, decide where to go deep, read the **primary** source (not the thread about it), send skeptics to **disprove** every load-bearing claim, and write it all into an Obsidian vault where every sentence traces to a source you can re-open.

It's host-agnostic: the methodology is plain markdown (`core/`), and thin adapters bind it to Claude Code, Cursor, opencode, or anything that reads `AGENTS.md`.

## ๐Ÿชž Before / After

You ask: *"How much revenue does Perplexity make and what's their strategy?"*

### ๐Ÿ” Normal agent

> "Perplexity makes around $100M and is positioned as an AI answer engine competing with Google."

One search. No source. No idea if it's current, self-reported, or made up.

### ๐Ÿคฟ DAR

> A vault: a claim note **S-001** โ€” *"~$100M ARR by mid-2025"* โ€” with the **verbatim quote**, the **primary** URL, `status: verified`, an independent corroboration, and a caveat that it's *self-reported run-rate*. Linked to `[[Perplexity AI]]`, `[[Aravind Srinivas]]` (with sourced beliefs from his actual posts), and a thesis thread โ€” plus an honest list of what's still unproven.

**Same question. One is a vibe. The other is a defensible, navigable answer you can audit.**

## Benchmarks


DAR benchmark โ€” quality vs speed comparison


DAR benchmark โ€” detailed results table

## How it works

DAR has two halves that share one spine โ€” the **charter** (what we're actually trying to answer). A **gate** stops it from going deep too early; a **drift guard** stops it from wandering once it's deep. The charter is a *compass, not a cage*: useful tangents get promoted, dead ones pruned.

```mermaid
flowchart TD
A(["๐Ÿ“ฅ Research request"]) --> P["0 ยท Preflight
bind capability verbs to host tools"]
P --> C["1 ยท Decompose & Charter
success criteria SC1โ€ฆSCn ยท scope ยท clarify with user"]
C --> B["2 ยท Breadth
parallel SEARCH-only scouts map the landscape"]
B --> G{"Gate
saturated? ยท rankable?
anchors hit?"}
G -->|widen one wave| B
G -->|too broad: narrow| C
G ==>|human check-in| D["3 ยท Depth loop
divers FETCH full primaries
โ†’ atomic, cited claim notes"]
D --> DG{"4.5 ยท Drift Guard
still serving the charter?"}
DG -->|CONTINUE| D
DG -->|REFOCUS: prune / promote| D
DG -->|ESCALATE: ask the user| C
DG ==>|CONCLUDE| V["4 ยท Verify
3 skeptics try to refute ยท 2-of-3 majority
โ†’ arbiter breaks ties"]
V --> S["5 ยท Synthesize
librarian links & dedupes โ†’ synthesizer writes the map"]
S --> O(["๐Ÿ“ฆ Deliver
Map-of-Content ยท report ยท open questions"])

classDef phase fill:#0f172a,stroke:#334155,color:#e2e8f0;
classDef gate fill:#fde68a,stroke:#b45309,color:#1c1917;
classDef done fill:#bbf7d0,stroke:#15803d,color:#052e16;
class P,C,B,D,V,S phase;
class G,DG gate;
class A,O done;
```

The principles behind each step (why they exist) โ€” straight out of how good researchers actually work:

- **Range before depth.** Cheap, disposable `SEARCH`-only scouts first; expensive `FETCH` only on threads that survive the gate.
- **Read the primary, not the summary.** Divers fetch the full source (incl. appendices & limitations) into `raw/`; a claim sourced only to a summary is quarantined.
- **Don't fool yourself.** Skeptics are scored to *disprove* claims; disconfirming evidence is written **into** the note; contradictions are downgraded, never deleted.
- **Synthesis is the contribution.** The deliverable is a navigable `_MOC.md` + `[[wikilink]]` graph + a report answering each criterion โ€” not a wall of text.

## Install

> [!TIP]
> **Recommended: set up these MCP servers _first_, then install DAR.** It runs on a host's built-in web tools, but is *maximized* by this free toolset โ€” each one powers a capability verb:
>
> | MCP server | Powers in DAR |
> |---|---|
> | **Exa** | semantic / neural `SEARCH` โ€” papers, people, companies |
> | **Tavily** | structured web `SEARCH` + `FETCH` (date-filterable) |
> | **TinyFish** | `BROWSE` โ€” social / authenticated / interactive pages |
> | **Context7** | `READ_DOCS` โ€” version-accurate library & API docs |
> | **Ref** | `READ_DOCS` โ€” specs, standards, references |
>
> Set the matching keys (`EXA_API_KEY`, `TAVILY_API_KEY`, โ€ฆ) in your environment. On the Claude Code **plugin** path they're auto-wired from `.mcp.json` (you just enable them once). Anything missing degrades loudly, never silently โ€” details in [`core/PREREQUISITES.md`](core/PREREQUISITES.md).

### Claude Code โ€” plugin (one command, auto-wires MCP)

```
/plugin marketplace add Kaos599/Deep-Ass-Research
/plugin install deep-ass-research@dar-marketplace
```

Registers the seven `dar-*` role subagents, the `/deep-ass-research:dar` command, and the prerequisite MCP servers.

### Claude Code โ€” skill (zero assembly)

```bash
git clone https://github.com/Kaos599/Deep-Ass-Research.git
ln -s "$(pwd)/Deep-Ass-Research" ~/.claude/skills/deep-ass-research
```

Then just ask for *"deep research on X"* or run `/deep-ass-research`.

### Cursor

```bash
cp adapters/cursor/deep-ass-research.mdc .cursor/rules/
cp adapters/cursor/dar.command.md .cursor/commands/dar.md
```

### opencode

```bash
cp adapters/opencode/deep-ass-research.md ~/.config/opencode/agent/
# then merge adapters/opencode/opencode.json (MCP servers + dar-* subagents)
```

### Any other agent (Codex, Aider, Gemini CLI, custom)

Load [`adapters/generic/AGENTS.md`](adapters/generic/AGENTS.md), or paste [`adapters/generic/SYSTEM_PROMPT.md`](adapters/generic/SYSTEM_PROMPT.md) into the system prompt. No sub-agents? DAR runs the roles sequentially in-context โ€” same method.

Full per-host details: **[INSTALL.md](INSTALL.md)**.

## What you get

A self-contained Obsidian vault at `~/research/dar/--/` (override with `DAR_VAULT_ROOT`):

| In the vault | What it is |
|---|---|
| `sources/S-NNN-*.md` | one **atomic claim** per note โ€” verbatim quote, primary URL, `status` + `confidence`, links |
| `entities/*.md` | companies / people / concepts (people carry sourced, quoted beliefs) |
| `threads/T-*.md` | synthesis notes with a stated thesis, a reasoning chain of `[[links]]`, and counter-evidence |
| `raw/` | the cached primary sources โ€” the provenance floor, re-openable forever |
| `_verify-log.md` | every load-bearing claim's verdict + dissent |
| `_MOC.md` + `99-report.md` | the front-door map and the report answering each success criterion |

Run by seven focused roles you can spawn in parallel:

| Phase | Roles |
|---|---|
| Breadth | `scout` (cheap, wide, search-only) |
| Depth | `deep-diver` (reads full primaries) |
| Verify | `skeptic` ร—3 โ†’ `arbiter` |
| Synthesize | `librarian` (links/dedupe) โ†’ `synthesizer` (the deliverable) |
| Steering | `relevance-monitor` (the drift guard) |

Repo layout

```
deep-ass-research/
โ”œโ”€โ”€ SKILL.md # Claude Code entry (drop-in skill)
โ”œโ”€โ”€ core/ # PORTABLE methodology โ€” names no host tool
โ”‚ โ”œโ”€โ”€ capabilities.md PREREQUISITES.md methodology.md orchestration.md
โ”‚ โ”œโ”€โ”€ vault-layout.md note-schemas.md provenance.md
โ”‚ โ”œโ”€โ”€ roles/ scout ยท deep-diver ยท skeptic ยท arbiter ยท librarian ยท synthesizer ยท relevance-monitor
โ”‚ โ””โ”€โ”€ modes/ academic ยท gtm ยท technical ยท market
โ”œโ”€โ”€ adapters/
โ”‚ โ”œโ”€โ”€ generic/ AGENTS.md + SYSTEM_PROMPT.md
โ”‚ โ”œโ”€โ”€ claude-code/ dar-pipeline.workflow.js + plugin/ (pre-assembled, installable)
โ”‚ โ”œโ”€โ”€ cursor/ deep-ass-research.mdc + dar.command.md
โ”‚ โ””โ”€โ”€ opencode/ deep-ass-research.md + opencode.json + subagents/
โ””โ”€โ”€ .claude-plugin/marketplace.json # makes the repo a one-command plugin
```

**Start at [`core/orchestration.md`](core/orchestration.md)** โ€” the runbook every adapter points to.

## Research modes

DAR picks a playbook by topic, each with its own decomposition and source strategy:

| Mode | For | Move |
|---|---|---|
| **academic** | papers / literature | read methods + appendix + limitations; build a citation graph |
| **gtm** | a company, its people & beliefs | company โ†’ people โ†’ their actual posts โ†’ coherent narrative chain |
| **technical** | "how does X work", tool choices | primary docs (Context7/Ref); A-vs-B-vs-C with a recommendation |
| **market** | competitive / sector intel | players โ†’ positioning โ†’ pricing/funding/trend signals โ†’ matrix |

---


Built to be portable, auditable, and hard to fool. Read the primary. Write everything down. Don't kid yourself.