domains / research / topic-research / research

research

Skill card

combined

The two skills both perform research, but they define different procedures and outputs. mattpocock/skills is a lightweight, source-grounded investigation that delegates to a background agent and writes a single cited Markdown note. Weizhena/Deep-Research-skills is a multi-step preliminary research workflow that builds a framework, supplements it via a web-search agent, asks the user for existing fields, and outputs structured outline.yaml and fields.yaml files. Neither copy is a reproduction, shortening, or wrapper of the other; each contains material steps and constraints the other lacks, so crowning one would hide a real alternative.

Repositories

RepositoryPath
mattpocock/skillsskills/engineering/research/SKILL.md
Weizhena/Deep-Research-skillsskills/research-codex-en/research/SKILL.md

Other copies

RoleRepositoryPath
peermattpocock/skillsskills/engineering/research/SKILL.md
peerWeizhena/Deep-Research-skillsskills/research-codex-en/research/SKILL.md
adapterWeizhena/Deep-Research-skillsskills/research-codex-zh/research/SKILL.md
adapterWeizhena/Deep-Research-skillsskills/research-en/research/SKILL.md
adapterWeizhena/Deep-Research-skillsskills/research-zh/research/SKILL.md

Combined skill

---
name: research
description: Investigate a topic against primary sources or build a preliminary research outline with structured fields. Use when the user wants a topic researched, docs or API facts gathered, or a research framework generated.
---

## Mode Selection

Ask the user which mode to use:
- **Source Investigation**: Investigate a question against high-trust primary sources and capture findings as a Markdown file.
- **Preliminary Research Outline**: Generate a research framework, supplement it via web search, and output structured YAML files.

## Mode A: Source Investigation

1. Spin up a **background agent** to do the research, so you keep working while it reads.
2. The agent investigates the question against **primary sources** (official docs, source code, specs, first-party APIs), not a secondary write-up. Follow every claim back to the source that owns it.
3. Write the findings to a single Markdown file, citing each claim's source.
4. Save it where the repo already keeps such notes; match the existing convention, and if there is none, put it somewhere sensible and say where.

## Mode B: Preliminary Research Outline

### Step 1: Generate Initial Framework from Model Knowledge
Based on the topic, use the model's existing knowledge to generate:
- Main research objects/items list in this domain
- Suggested research field framework

Output the framework and use request_user_input to confirm:
- Need to add/remove items?
- Does field framework meet requirements?

### Step 2: Web Search Supplement
Use request_user_input to ask for time range (e.g., last 6 months, since 2024, unlimited).

**Parameter Retrieval**:
- `{topic}`: User input research topic
- `{YYYY-MM-DD}`: Current date
- `{step1_output}`: Complete output from Step 1
- `{time_range}`: User specified time range

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

Launch 1 web-search-agent (background), **Prompt Template**:
```
## Task
Research topic: {topic}
Current date: {YYYY-MM-DD}

Based on the following initial framework, supplement latest items and recommended research fields.

## Existing Framework
{step1_output}

## Goals
1. Verify if existing items are missing important objects
2. Supplement items based on missing objects
3. Continue searching for {topic} related items within {time_range} and supplement
4. Supplement new fields

## Output Requirements
Return structured results directly (do not write files):

### Supplementary Items
- item_name: Brief explanation (why it should be added)
...

### Recommended Supplementary Fields
- field_name: Field description (why this dimension is needed)
...

### Sources
- [Source1](url1)
- [Source2](url2)
```

### Step 3: Ask User for Existing Fields
Use request_user_input to ask if user has existing field definition file, if so read and merge.

### Step 4: Generate Outline (Separate Files)
Merge {step1_output}, {step2_output} and user's existing fields, generate two files:

**outline.yaml** (items + config):
- topic: Research topic
- items: Research objects list
- execution:
  - batch_size: Number of parallel agents (confirm with request_user_input)
  - items_per_agent: Items per agent (confirm with request_user_input)
  - output_dir: Results output directory (default: ./results)

**fields.yaml** (field definitions):
- Field categories and definitions
- Each field's name, description, detail_level
- detail_level hierarchy: brief -> moderate -> detailed
- uncertain: Uncertain fields list (reserved field, auto-filled in deep phase)

### Step 5: Output and Confirm
- Create directory: `./{topic_slug}/`
- Save: `outline.yaml` and `fields.yaml`
- Show to user for confirmation

## Output Path
```
{current_working_directory}/{topic_slug}/
  ├── outline.yaml    # items list + execution config
  └── fields.yaml     # field definitions
```

## Follow-up Commands
- `/research-add-items` - Supplement items
- `/research-add-fields` - Supplement fields
- `/research-deep` - Start deep research

## Conflicts
- mattpocock/skills requires primary-source verification and a single cited Markdown file; Weizhena/Deep-Research-skills produces structured YAML files without a Markdown report and does not mandate primary-source verification.
- mattpocock/skills has no user-confirmation steps or time-range parameter; Weizhena/Deep-Research-skills requires multiple request_user_input confirmations and a time-range parameter.
- mattpocock/skills saves output where the repo already keeps such notes; Weizhena/Deep-Research-skills saves to a fixed ./topic_slug/ directory.