Deep Research Multi-Agent

VerifiedCaution

Launch deep research by orchestrating multiple independent agents from an outline. Runs in batches and validates results with a script.

Sby Skills Guide Bot
Data & AIIntermediate
008/29/2026
Claude Code
#deep-research#multi-agent#research-automation#json-output

Recommended for

Our review

Automates deep research by splitting outline items into parallel agent tasks that output validated JSON files according to a schema.

Strengths

  • Parallel batch execution speeds up research across multiple topics.
  • Automatic resume skips completed items, avoiding redundant work.
  • Strict schema validation ensures complete field coverage.
  • User approval between batches provides control over the process.

Limitations

  • Requires pre-existing outline.yaml and fields.yaml with exact structure.
  • Depends on a validation script located at ~/.claude/skills/research/validate_json.py.
  • Works only in the Claude Code environment.
When to use it

When you need to research many topics in a structured, repeatable way and collect results as JSON.

When not to use it

When you need a quick answer to a single question without the overhead of defining a schema and outline.

Security analysis

Caution
Quality score85/100

The skill uses powerful tools (Bash, Task, WebSearch) for a legitimate research orchestration purpose. It does not directly instruct destructive or exfiltrating actions, but the execution of a Python script with user-controlled paths and the background agent launch warrant caution.

Findings
  • Uses Bash to execute a Python validation script, with variables derived from outline.yaml; potential shell command injection if those variables contain metacharacters, though the input is user-provided.
  • Launches background agents via Task and disables task output, which can reduce visibility into agent actions.
  • Relies on an external script (~/.claude/skills/research/validate_json.py) whose content is not specified; if replaced by a malicious script, execution could be harmful.

Examples

Start deep research from outline
/research-deep
Run and control batch execution
Execute the deep research workflow on the current outline, asking for approval before each batch.
Resume an interrupted research run
Continue the /research-deep run, skipping items already completed in the output directory.

user-invocable: true description: Read research outline, launch independent agent for each item for deep research. Disable task output. allowed-tools: Bash, Read, Write, Glob, WebSearch, Task

Research Deep - Deep Research

Trigger

/research-deep

Workflow

Step 1: Auto-locate Outline

Find */outline.yaml file in current working directory, 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

  • Batch by batch_size (need user approval before next batch)
  • Each agent handles items_per_agent items
  • Launch web-search-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)
  • {fields_path}: absolute path to {topic}/fields.yaml
  • {output_path}: absolute path to {output_dir}/{item_name_slug}.json (slugify item_name: replace spaces with _, remove special chars)

Hard Constraint: The following prompt must be strictly reproduced, only replacing variables in {xxx}, do not modify structure or wording.

Prompt Template:

prompt = f"""## Task
Research {item_related_info}, output structured JSON to {output_path}

## Field Definitions
Read {fields_path} to get all field definitions

## 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. All field values must be in English

## Output Path
{output_path}

## Validation
After completing JSON output, run validation script to ensure complete field coverage:
python ~/.claude/skills/research/validate_json.py -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 /home/weizhena/AIcoding/aicoding-history/results/GitHub_Copilot.json

## Field Definitions
Read /home/weizhena/AIcoding/aicoding-history/fields.yaml to get all field definitions

## 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. All field values must be in English

## Output Path
/home/weizhena/AIcoding/aicoding-history/results/GitHub_Copilot.json

## Validation
After completing JSON output, run validation script to ensure complete field coverage:
python ~/.claude/skills/research/validate_json.py -f /home/weizhena/AIcoding/aicoding-history/fields.yaml -j /home/weizhena/AIcoding/aicoding-history/results/GitHub_Copilot.json
Task is complete only after validation passes.

Step 4: Wait and Monitor

  • Wait for current batch to complete
  • Launch next batch
  • Display progress

Step 5: Summary Report

After all complete, output:

  • Completion count
  • Failed/uncertain marked items
  • Output directory

Agent Config

  • Background execution: Yes
  • Task Output: Disabled (agent has explicit output file when complete)
  • Resume support: Yes
Related skills