Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions QUICKSTART.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ catalog/eval checks; you don't need it to run research.)

In a Claude Code session, just ask in natural language — any of these trigger it:

> «проведи ресёрч: <your question>» · "deep research <your question>" · "deep dive <your question>"
> «проведи ресёрч: <your question>» · "deep dive <your question>"

Claude will: restate your question, pick a report genre, write a `plan.md`, search
across <!--gen:count:channels-->29<!--/gen--> channels and <!--gen:count:stat_sources-->460<!--/gen-->
Expand All @@ -28,7 +28,7 @@ source via a claims-ledger, synthesize with a multi-angle red team, and verify c

## 3. What you get

A folder (default `~/deep-research/<slug>/`) you can return to months later:
A folder (default `~/deepdive/<slug>/`) you can return to months later:

```
<slug>/
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -312,7 +312,7 @@ Ignores env proxies (`trust_env=False`). `--strict` for CI.

Verification runs four layers: **liveness** (does the source exist), **faithfulness** (does it actually entail the claim it's cited for), **qualifier preservation** (does the report still say what the ledger said), and **construct provenance** (do the frameworks, taxonomies and named "laws" the report uses exist outside it). Verdicts land in `.verify/*.json`, one producer per file.

The fourth layer exists because the first three all join on `claim_id` — and a fabricated *name* has none. That is the largest measured class of generation defect in deep-research agents ([FINDER/DEFT](https://arxiv.org/abs/2512.01948): strategic content fabrication, 18.95% of errors), and it passes a citation check with every URL alive.
The fourth layer exists because the first three all join on `claim_id` — and a fabricated *name* has none. That is the largest measured class of generation defect in research agents ([FINDER/DEFT](https://arxiv.org/abs/2512.01948): strategic content fabrication, 18.95% of errors), and it passes a citation check with every URL alive.

Numbers get two independent passes: `check_number_provenance.py` on **origin** (who produced the figure; does one value circulate across supposedly independent roots) and `check_number_arithmetic.py` on **computation** — every `derived` figure in `numbers.csv` is recomputed from its own declared `formula` + `inputs`, and `share` groups must sum to 100. A percentage computed in prose is otherwise never re-checked by anything.

Expand Down
4 changes: 2 additions & 2 deletions SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: deepdive
description: "Meta-research под вопрос или решение: веб-поиск, источники, Q&A отчёт с цитатами по файлам для повторного использования. Использовать для деск-ресёрча, валидации гипотезы, «как устроен X». Триггеры: «deep research», «сделай ресёрч», «исследуй», «копни глубоко», «ресёрчни»."
description: "Meta-research под вопрос или решение: веб-поиск, источники, Q&A отчёт с цитатами по файлам для повторного использования. Использовать для деск-ресёрча, валидации гипотезы, «как устроен X». Триггеры: «deepdive», «сделай ресёрч», «исследуй», «копни глубоко», «ресёрчни»."
---

# Deepdive — meta-research с дисциплиной
Expand Down Expand Up @@ -29,7 +29,7 @@ description: "Meta-research под вопрос или решение: веб-п

**Плюс кросс-прогонная вики** — `python scripts/wiki_query.py --topic "<вопрос>"`: прошлые утверждения, уже оценённые источники (credibility не пересчитывать), открытые противоречия между прогонами. Непогашенное противоречие идёт в `plan.md` исследовательским вопросом. См. `wiki.md`.

**Куда сохранять** (не хардкодь): (1) research-папка из CLAUDE.md или существующая `research/` · `06_Деск-ресёрч/` · `docs/research/` · `notes/research/`; (2) иначе по типу проекта — манифест (`pyproject.toml`/`package.json`/`Cargo.toml`/`go.mod`) → `research/`, только документы → `06_Деск-ресёрч/`; (3) не git-репо или пусто → `~/deep-research/<slug>/`. Путь покажи ОДИН раз, дальше пиши молча.
**Куда сохранять** (не хардкодь): (1) research-папка из CLAUDE.md или существующая `research/` · `06_Деск-ресёрч/` · `docs/research/` · `notes/research/`; (2) иначе по типу проекта — манифест (`pyproject.toml`/`package.json`/`Cargo.toml`/`go.mod`) → `research/`, только документы → `06_Деск-ресёрч/`; (3) не git-репо или пусто → `~/deepdive/<slug>/`. Путь покажи ОДИН раз, дальше пиши молча.

**Slug:** латиница, цифры, дефисы («Postgres logical replication vs CDC» → `postgres-replication-vs-cdc`). Неочевиден — покажи в начале фазы 2.

Expand Down
2 changes: 1 addition & 1 deletion docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ After ~1 minute, the site will be live.

## Custom domain (optional)

If you have a domain (e.g., `deep-research-skill.com`):
If you have a domain (e.g., `deepdive-skill.com`):

1. Create `docs/CNAME` with the domain on a single line
2. Configure DNS: CNAME record `yourdomain.com → socialpranker.github.io`
Expand Down
18 changes: 9 additions & 9 deletions docs/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -1281,7 +1281,7 @@ <h5 data-i18n="install.c1.title">Claude Code (CLI)</h5>
deepdive.git \
~/.claude/skills/deepdive</code></pre>
<ul>
<li data-i18n="install.c1.b1">Type "deep research" or "deep dive"</li>
<li data-i18n="install.c1.b1">Type "deepdive" or "deep dive"</li>
<li data-i18n="install.c1.b2">Works across all projects</li>
<li data-i18n="install.c1.b3">Auto-loads via progressive disclosure</li>
</ul>
Expand Down Expand Up @@ -1343,7 +1343,7 @@ <h2 class="section-title" data-i18n="faq.title">Frequently asked.</h2>
<div class="faq-item">
<div class="faq-question" data-i18n="faq.q4">What if I don't have CLAUDE.md or a project context?</div>
<div class="faq-answer" data-i18n-html="faq.a4">
The skill detects context in 3 tiers: explicit (CLAUDE.md research_root setting) → autodetect (pyproject.toml, package.json) → fallback (<code>~/deep-research/</code>). No project, no problem.
The skill detects context in 3 tiers: explicit (CLAUDE.md research_root setting) → autodetect (pyproject.toml, package.json) → fallback (<code>~/deepdive/</code>). No project, no problem.
</div>
</div>
<div class="faq-item">
Expand Down Expand Up @@ -1380,7 +1380,7 @@ <h2 data-i18n-html="cta.title">
</main>

<footer>
<span data-i18n="footer.line1">DEEP-RESEARCH v2.0 · Built by Socialpranker · MIT Licensed</span>
<span data-i18n="footer.line1">DEEPDIVE v2.0 · Built by Socialpranker · MIT Licensed</span>
<br>
<a href="https://github.com/Socialpranker/deepdive">GitHub</a> ·
<a href="https://github.com/Socialpranker/deepdive/blob/main/SKILL.md" data-i18n="footer.spec">Skill spec</a> ·
Expand Down Expand Up @@ -1503,7 +1503,7 @@ <h2 data-i18n-html="cta.title">
'install.intro': 'Works on Claude Code (CLI), Claude Desktop with Skills enabled, and any other LLM with manual context loading.',
'install.c1.tag': '// recommended',
'install.c1.title': 'Claude Code (CLI)',
'install.c1.b1': 'Type "deep research" or "deep dive"',
'install.c1.b1': 'Type "deepdive" or "deep dive"',
'install.c1.b2': 'Works across all projects',
'install.c1.b3': 'Auto-loads via progressive disclosure',
'install.c2.tag': '// .skill bundle',
Expand All @@ -1526,7 +1526,7 @@ <h2 data-i18n-html="cta.title">
'faq.q3': "Why so many files? Isn't this overkill?",
'faq.a3': 'For a 5-minute "what\'s the latest X" question — yes. That\'s why <code>shallow</code> mode exists (5-7 sources, no sub-agents, ~15 min). The full machinery is for <code>medium</code> (1 hour) and <code>deep</code> (3 hours) when you need to use the output for a decision. The file-per-source structure is the reuse mechanism — a single research often informs 3-5 future researches.',
'faq.q4': "What if I don't have CLAUDE.md or a project context?",
'faq.a4': 'The skill detects context in 3 tiers: explicit (CLAUDE.md research_root setting) → autodetect (pyproject.toml, package.json) → fallback (<code>~/deep-research/</code>). No project, no problem.',
'faq.a4': 'The skill detects context in 3 tiers: explicit (CLAUDE.md research_root setting) → autodetect (pyproject.toml, package.json) → fallback (<code>~/deepdive/</code>). No project, no problem.',
'faq.q5': 'Is this just prompt engineering?',
'faq.a5': "It's structured methodology plus a curated catalog plus reusable templates plus automation. The <!--gen:count:phases-->13<!--/gen-->-phase workflow forces discipline. <!--gen:count:stat_sources-->460<!--/gen-->+ stat sources is curated knowledge. <!--gen:count:blocks-->106<!--/gen--> reusable blocks compose any report shape. Weekly auto-validation keeps the catalog alive. 25+ upstream awesome-lists give a discovery layer. Prompts are an implementation detail, not the value.",
'faq.q6': 'Can I use this commercially?',
Expand All @@ -1537,7 +1537,7 @@ <h2 data-i18n-html="cta.title">
'cta.btn_primary': 'star on github',
'cta.btn_secondary': 'how to contribute',

'footer.line1': 'DEEP-RESEARCH v2.0 · Built by Socialpranker · MIT Licensed',
'footer.line1': 'DEEPDIVE v2.0 · Built by Socialpranker · MIT Licensed',
'footer.spec': 'Skill spec',
'footer.contrib': 'Contributing',
'footer.issues': 'Issues',
Expand Down Expand Up @@ -1654,7 +1654,7 @@ <h2 data-i18n-html="cta.title">
'install.intro': 'Работает в Claude Code (CLI), в Claude Desktop с включёнными Skills и в любой другой LLM через ручную загрузку контекста.',
'install.c1.tag': '// рекомендуется',
'install.c1.title': 'Claude Code (CLI)',
'install.c1.b1': 'Напиши "deep research" или "deep dive"',
'install.c1.b1': 'Напиши "deepdive" или "deep dive"',
'install.c1.b2': 'Работает во всех проектах',
'install.c1.b3': 'Автозагрузка через progressive disclosure',
'install.c2.tag': '// .skill bundle',
Expand All @@ -1677,7 +1677,7 @@ <h2 data-i18n-html="cta.title">
'faq.q3': 'Зачем столько файлов? Не перебор?',
'faq.a3': 'Для вопроса на 5 минут вида «что там нового про X» — да, перебор. Поэтому есть режим <code>shallow</code> (5–7 источников, без суб-агентов, ~15 минут). Полная машинерия — для режимов <code>medium</code> (~час) и <code>deep</code> (~3 часа), когда нужно использовать вывод для решения. Файл-на-источник — это и есть механизм переиспользования: один ресёрч часто кормит 3–5 будущих.',
'faq.q4': 'А если нет CLAUDE.md или контекста проекта?',
'faq.a4': 'Скилл определяет контекст по 3 уровням: явный (CLAUDE.md с research_root) → автодетект (pyproject.toml, package.json) → fallback (<code>~/deep-research/</code>). Нет проекта — не проблема.',
'faq.a4': 'Скилл определяет контекст по 3 уровням: явный (CLAUDE.md с research_root) → автодетект (pyproject.toml, package.json) → fallback (<code>~/deepdive/</code>). Нет проекта — не проблема.',
'faq.q5': 'Это просто prompt engineering?',
'faq.a5': 'Это структурированная методология плюс кураторский каталог плюс переиспользуемые шаблоны плюс автоматизация. Workflow из <!--gen:count:phases-->13<!--/gen--> фаз дисциплинирует. <!--gen:count:stat_sources-->460<!--/gen-->+ стат-источников — это куратный домен. <!--gen:count:blocks-->106<!--/gen--> блоков складываются в любую форму отчёта. Авто-валидация раз в неделю держит каталог живым. 25+ awesome-листов дают слой discovery. Промпты — это implementation detail, не ценность.',
'faq.q6': 'Можно использовать коммерчески?',
Expand All @@ -1688,7 +1688,7 @@ <h2 data-i18n-html="cta.title">
'cta.btn_primary': 'поставить звезду',
'cta.btn_secondary': 'как контрибьютить',

'footer.line1': 'DEEP-RESEARCH v2.0 · Сделал Socialpranker · Лицензия MIT',
'footer.line1': 'DEEPDIVE v2.0 · Сделал Socialpranker · Лицензия MIT',
'footer.spec': 'Спека скилла',
'footer.contrib': 'Контрибьютинг',
'footer.issues': 'Issues',
Expand Down
2 changes: 1 addition & 1 deletion eval/BENCHMARK.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ where the skill is weak.
For each question, in a Claude Code session at the repo root:

```
/deep-research <paste the Question block>
/deepdive <paste the Question block>
```

Pin the depth stated in the file. To compare configs, run the same question under:
Expand Down
6 changes: 3 additions & 3 deletions eval/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Eval — на какой модели гонять research и как это мерить

Отвечает на два вопроса о deep-research скилле:
Отвечает на два вопроса о deepdive скилле:

1. **На какой модели запускать ради экономии?** — короткий ответ: не на одной.
Скилл гетерогенный, и роутинг (`references/model_routing.md`) уже раскидывает
Expand Down Expand Up @@ -45,8 +45,8 @@ pip install -r ../scripts/requirements.txt
cp questions/EXAMPLE.md questions/my-q.md # заполни

# 2. прогони ОДИН И ТОТ ЖЕ вопрос на разных конфигах, в Claude Code:
# /model sonnet → /deep-research <вопрос> → research/<slug>/
# /deep research <вопрос> with all on opus → research/<slug>-opus/
# /model sonnet → /deepdive <вопрос> → research/<slug>/
# /deepdive <вопрос> with all on opus → research/<slug>-opus/
# после каждого прогона запиши цену из /cost

# 3. зарегистрируй прогоны в runs/runs.csv (run_id, slug, config, real_cost_usd)
Expand Down
4 changes: 2 additions & 2 deletions eval/check_citations.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#!/usr/bin/env python3
"""
Citation integrity check for a deep-research run.
Citation integrity check for a deepdive run.

Reads the sources of one research run and verifies each URL actually resolves —
the deterministic guard against hallucinated citations. A source whose access is
Expand Down Expand Up @@ -38,7 +38,7 @@
print("ERROR: 'requests' required. Run: pip install -r scripts/requirements.txt")
sys.exit(1)

USER_AGENT = "claude-deep-research-citecheck/1.0 (+https://github.com/Socialpranker/claude-deep-research)"
USER_AGENT = "deepdive-citecheck/1.0 (+https://github.com/Socialpranker/deepdive)"
TIMEOUT_SECONDS = 12
DELAY_BETWEEN_REQUESTS = 0.4
# access values that make a non-200 expected rather than a failure
Expand Down
4 changes: 2 additions & 2 deletions eval/questions/EXAMPLE.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ question, so the comparison is apples-to-apples.

## Question

<The exact research question or decision, as you'd type it after `/deep-research`.
<The exact research question or decision, as you'd type it after `/deepdive`.
Be specific — an underspecified question makes runs incomparable.>

## Depth
Expand All @@ -25,6 +25,6 @@ like. The judge reads this to score coverage.>

<Which model setups you'll run. Examples:
- A: default routing (Opus on phase 1/3/6, Haiku on fan-out, Sonnet/high synth)
- B: all-opus (`deep research <q> with all on opus`)
- B: all-opus (`deepdive <q> with all on opus`)
- C: cheap-mode (`... with cheap mode`)
Give each a run_id you'll use in runs.csv.>
2 changes: 1 addition & 1 deletion eval/score_run.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#!/usr/bin/env python3
"""
Score one deep-research run across the 6-axis rubric (see eval/rubric.md).
Score one deepdive run across the 6-axis rubric (see eval/rubric.md).

Splits work the way the rubric does:
- deterministic axes (citation integrity, source diversity, cost proxy) → here
Expand Down
2 changes: 1 addition & 1 deletion eval/validate_structure.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#!/usr/bin/env python3
"""
Structural validator for a deep-research run directory.
Structural validator for a deepdive run directory.

This is the schema guard the eval scripts implicitly depend on. check_citations.py
and score_run.py both parse the run's files by convention (frontmatter keys, CSV
Expand Down
2 changes: 1 addition & 1 deletion phases.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Single source of truth for the deep-research workflow phases.
# Single source of truth for the deepdive workflow phases.
# Counts and phase lists in README/SKILL/docs are stamped FROM this file by
# scripts/stamp_docs.py. Edit phases here, then: python scripts/stamp_docs.py --write
#
Expand Down
2 changes: 1 addition & 1 deletion references/api_sources/academic/arxiv.md
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ GET /api/query?id_list=2401.12345
- `econ.*` — Economics
- `eess.*` — Electrical Engineering and Systems Science

## Example queries для deep-research
## Example queries для deepdive

**Phase 4 — find recent ML papers:**

Expand Down
2 changes: 1 addition & 1 deletion references/api_sources/academic/crossref.md
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ GET /works?filter=funder:10.13039/100000001&rows=20
# (NSF funder ID)
```

## Example queries для deep-research
## Example queries для deepdive

**Phase 4 — validate DOI from source:**

Expand Down
2 changes: 1 addition & 1 deletion references/api_sources/academic/openalex.md
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ GET /concepts/{concept-id}
GET /works?filter=concepts.id:{concept-id}&per-page=200
```

## Example queries для deep-research
## Example queries для deepdive

**Phase 4 — get all recent papers in a niche concept:**

Expand Down
4 changes: 2 additions & 2 deletions references/api_sources/academic/semantic_scholar.md
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ POST /paper/batch
}
```

## Example queries для deep-research
## Example queries для deepdive

**Phase 4 — literature scan:**

Expand Down Expand Up @@ -134,4 +134,4 @@ GET /paper/{recent-paper-id}/references?limit=100&fields=title,authors,year

- Самый удобный академический API — структурированный, free, no key
- Поле `openAccessPdf` критично — даёт ссылки на free full-text копии (часто preprint versions paywalled статей)
- Idiomatic для deep-research workflow
- Idiomatic для deepdive workflow
2 changes: 1 addition & 1 deletion references/api_sources/code/github.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ GET /repos/{owner}/{repo}/contents/{path}?ref={branch}

Используй GitHub Trending pages через WebFetch + scraping.

## Example queries для deep-research
## Example queries для deepdive

**Phase 4 — find implementations:**

Expand Down
2 changes: 1 addition & 1 deletion references/api_sources/companies/crunchbase.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ Body: {
GET /entities/funding_rounds/{uuid}
```

## Example queries для deep-research
## Example queries для deepdive

**Phase 4 — competitive landscape:**

Expand Down
2 changes: 1 addition & 1 deletion references/api_sources/crypto/coingecko.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ GET /search/trending
GET /coins/markets?vs_currency=usd&order=market_cap_desc&per_page=100&page=1
```

## Example queries для deep-research
## Example queries для deepdive

**Phase 4 — token landscape:**

Expand Down
2 changes: 1 addition & 1 deletion references/api_sources/financial/fred.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ GET /series/observations?series_id=UNRATE&api_key={FRED_API_KEY}&file_type=json
GET /series/search?search_text={query}&api_key={FRED_API_KEY}&file_type=json
```

## Example queries для deep-research
## Example queries для deepdive

**Phase 4 — macro context:**

Expand Down
2 changes: 1 addition & 1 deletion references/api_sources/financial/sec_edgar.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ GET https://data.sec.gov/api/xbrl/frames/us-gaap/Revenues/USD/CY2023Q4I.json
GET https://efts.sec.gov/LATEST/search-index?q={query}&forms=10-K
```

## Example queries для deep-research
## Example queries для deepdive

**Phase 4 — company financials:**

Expand Down
Loading
Loading