research-deep
Read research outline, launch independent agent for each item for deep research.
Skill by eristoddle
Chalk Labs
Need help deploying research-deep?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Claude Code. Read the repository before you give any tool access to your data.
npx agentmarket install skill/eristoddle-research-deep
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: research, productivity, agent-building
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions: not checked yet.
What's inside
- Skill name
research-deep- Description
- Read research outline, launch independent agent for each item for deep research. Disable task output.
- License
- MIT
- Allowed tools
- Bash,, Read,, Write,, Glob,, WebSearch,, Task,, AskUserQuestion
- Instructions
- 165 lines in SKILL.md · view on GitHub
Before installing
- Pre-approves some shell commands
Files (1)
- SKILL.md
SKILL.md (first lines)
# Research Deep - Deep Research
## Trigger
`/research-deep [quick|standard|deep] [run-folder-name]`
Both arguments are optional and may appear in either order. `[quick|standard|deep]` sets the per-item search depth; it overrides `execution.depth` in outline.yaml, which in turn overrides the `standard` default. `[run-folder-name]` names the run folder directly, skipping disambiguation in Step 1. Resolve `{depth}`, `{searches}`, and `{fetches}` from this table before launching anything:
| Level | Searches | Fetches | Link depth |
|---|---|---|---|
| `quick` | 3 | 4 | 1 |
| `standard` *(default)* | 8 | 12 | 1 |
| `deep` | 20 | 30 | 2 |
State the resolved level before the first batch: `Depth: deep (20 searches / 30 fetches per item).` A `deep` run over many items is expensive and slow — if the level came from outline.yaml rather than the user typing it, say so and confirm before launching.
## Workflow
### Step 1: Locate Outline
Locate the run folder per `skills/research/LAYOUT.md`'s discovery rule. If the trigger named a run folder, use it directly and skip disambiguation; otherwise disambiguate per LAYOUT.md. Read items list, execution config (including items_per_agent).
### Step 2: Resume Check
- Check completed JSON files in output_dir
- Skip completed items
### Step 3: Batch Execution
- Before the first batch, flip this run's status in `{root}/INDEX.md` from `outline` to `researching`, per LAYOUT.md. A legacy run with no root has no index — skip this silently.
- Batch by batch_size (need user approval before next batch)
- Each agent handles items_per_agent items
- **Host selection rule:** In GitHub Copilot, launch `Web Research Writer`; in Claude Code, launch `web-search-agent`.
- Launch the host-selected agent (background parallel, disable task output)
**Parameter Retrieval**:
- `{topic}`: topic field from outline.yaml
- `{item_name}`: item's name field
- `{item_related_info}`: item's complete yaml content (name + category + description etc.)
- `{output_dir}`: execution.output_dir from outline.yaml (default: ./results), relative to the run folder, never the cwd — per LAYOUT.md
- `{project_dir}`: absolute path to the run folder located in Step 1 (`{run_dir}` in LAYOUT.md). Everything below hangs off it, never off the cwd.
- `{fields_path}`: absolute path to {project_dir}/fields.yaml
- `{output_path}`: absolute path to {output_dir}/{item_name_slug}.json (slugify item_name: replace spaces with _, remove special chars)
- `{depth}` / `{searches}` / `{fetches}`: resolved from the depth table above.
- `{modules}`: `execution.modules` from outline.yaml — a comma-separated module list pinned for this project. If absent, use the literal string `auto`.
- `{validator_path}`: absolute path to `validate_json.py`. Resolve it in this order and use the first that exists:
1. `<project_root>/.agents/skills/research/validate_json.py` (Copilot project-local install)
2. `<project_root>/.claude/skills/research/validate_json.py` (Claude project-local install)
3. `~/.agents/skills/research/validate_json.py` (Copilot user install)
4. `~/.claude/skills/research/validate_json.py` (Claude user install)
If none exists, tell the user the skill is not fully installed and stop; do not write a replacement validator.
**Hard Constraint**: The following prompt must be strictly reproduced, only replacing variables in {xxx}, do not modify structure or wording.
**Prompt Template**:
```python
prompt = f"""## Task
Research {item_related_info}, output structured JSON to {output_path}
## Field Definitions
Read {fields_path} to get all field definitions
## Search Budget
Depth level: {depth}. Hard limits for this item: {searches} WebSearch calls, {fetches} fetches, one logical fetch sequence per URL.
The fetch budget covers every network retrieval attempt -- WebFetch, the crwl/Firecrawl escalation rungs, and the approved reddit_feed.py helper's own requests -- not just native WebFetch calls.
Use WebSearch and WebFetch for all retrieval. Escalate a blocked page through crwl then Firecrawl, and invoke reddit_feed.py for Reddit listings only, exactly per your own tool discipline. No browser automation, no downloads, no cloning, no self-written scripts, no other helper.
Stop when the fields are answered. Mark whatever is still open as [uncertain] rather than spending more budget on it.
## Modules
Modules: {modules}
Read `web-search-modules/ROUTING.md` before any search. If Modules above is `auto`, route per ROUTING.md yourself;
otherwise load exactly the modules named. Either way, state the modules you loaded in your output.
## Output Requirements
1. Output JSON according to fields defined in fields.yaml
2. Mark uncertain field values with [uncertain]
3. Add uncertain array at the end of JSON, listing all uncertain field names
4. Add unreachable array as a sibling to uncertain; each entry has exactly source, url, and reason keys
5. Use reason fetch_failed when a page remains inaccessible after all the escalation available to it, or zero_domain_results when a search constrained to a named domain returns zero URLs on that domain; zero matching-domain URLs are a zero-result finding, not a result set
6. Unreachable entries annotate source provenance only; a field answered through a documented substitute remains answered, not uncertain
7. All field values must be in English
8. Add sources array as a sibling to uncertain and unreachable; each entry has exactly source, url, and fields keys, where fields lists the field names that source supported
9. Record only sources that contributed to an answer, never a page that was opened but informed no field; a source that supported several fields is one entry with several field names, never repeated entries
A populated sources array looks like this:
"sources": [
{"source": "GitHub", "url": "https://github.com/features/copilot", "fields": ["pricing"]},
{"source": "TechCrunch", "url": "https://techcrunch.com/2022/06/21/copilot-githubs-ai-powered-programming-assistant-is-now-generally-available/", "fields": ["release_date", "market_share"]}
]
## Output Path
{output_path}
## Validation
After completing JSON output, run validation script to ensure complete field coverage:
python3 {validator_path} -f {fields_path} -j {output_path}
Task is complete only after validation passes.
"""
```
**One-shot Example** (assuming researching GitHub Copilot):
```
## Task
Research name: GitHub Copilot
category: International Product
description: Developed by Microsoft/GitHub, first mainstream AI coding assistant, ~40% market share, output structured JSON to {project_dir}/results/GitHub_Copilot.json
## Field Definitions
Read {project_dir}/fields.yaml to get all field definitions
## Search Budget
Depth level: standard. Hard limits for this item: 8 WebSearch calls, 12 fetches, one logical fetch sequence per URL.
The fetch budget covers every network retrieval attempt -- WebFetch, the crwl/Firecrawl escalation rungs, and the approved reddit_feed.py helper's own requests -- not just native WebFetch calls.
Use WebSearch and WebFetch for all retrieval. Escalate a blocked page through crwl then Firecrawl, and invoke reddit_feed.py for Reddit listings only, exactly per your own tool discipline. No browser automation, no downloads, no cloning, no self-written scripts, no other helper.
Stop when the fields are answered. Mark whatever is still open as [uncertain] rather than spending more budget on it.
## Modules
Modules: auto
Read `web-search-modules/ROUTING.md` before any search. If Modules above is `auto`, route per ROUTING.md yourself;
otherwise load exactly the modules named. Either way, state the modules you loaded in your output.
## Output Requirements
1. Output JSON according to fields defined in fields.yamlFrom eristoddle/deep-research-agent, MIT.
More from eristoddle/deep-research-agent
- 0.544score
research-add-module
eristoddle
Build a new web-search strategy module for a domain the existing modules do not cover.
SkillBFreshness: B★ 1Claude Code - 0.544score
web-search-modules
eristoddle
Reference library of search-strategy modules for the web-search-agent subagent.
SkillBFreshness: B★ 1Claude Code +9 - 0.544score
research-enumerate
eristoddle
Sweep broad and shallow to catalog what exists in a domain, writing catalog.md plus a standard outline.yaml a later /research-add-fields + /research-deep pass…
SkillBFreshness: B★ 1Claude Code - 0.541score
research-harvest
eristoddle
Tally which sources supported fields across research runs and write a reviewable candidate list.
SkillBFreshness: B★ 1Claude Code +9
Signals
- Stars
- 1
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Sep 5, 2026 (1 month ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
Same skill elsewhere
Copies of this SKILL.md published by others; search shows only one of them.
- 0.564score
research-deep
Weizhena
Read research outline, launch independent agent for each item for deep research.
SkillDFreshness: D★ 2.4KClaude Code +9 - 0.338score
research-deep
Weizhena
Read research outline, launch independent agent for each item for deep research.
SkillDFreshness: D★ 2.4KClaude Code +9 - 0.338score
research-deep
Weizhena
Read research outline, launch independent agent for each item for deep research.
SkillDFreshness: D★ 2.4KClaude Code - 0.332score
research-deep
emanuelenencioni
Read research outline, launch independent agent for each item for deep research.
SkillAFreshness: AClaude Code - 0.308score
research-deep
DI3GOM
Read research outline, launch independent agent for each item for deep research.
SkillBFreshness: BClaude Code - 0.278score
research-deep
tienbac2314
Read research outline, launch independent agent for each item for deep research.
SkillCFreshness: CClaude Code
More from eristoddle
- 0.544score
research-add-module
eristoddle
Build a new web-search strategy module for a domain the existing modules do not cover.
SkillBFreshness: B★ 1Claude Code - 0.544score
web-search-modules
eristoddle
Reference library of search-strategy modules for the web-search-agent subagent.
SkillBFreshness: B★ 1Claude Code +9 - 0.544score
research-enumerate
eristoddle
Sweep broad and shallow to catalog what exists in a domain, writing catalog.md plus a standard outline.yaml a later /research-add-fields + /research-deep pass…
SkillBFreshness: B★ 1Claude Code - 0.541score
research-harvest
eristoddle
Tally which sources supported fields across research runs and write a reviewable candidate list.
SkillBFreshness: B★ 1Claude Code +9
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get research-deep running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
research-deep skill. Agent Mart. https://agentmart.dev/skills/eristoddle-research-deep (last updated 2026-10-24)