Initial commit — research-en skill bundle
5-skill bundle for structured, resumable, parallel deep research: - /research — preliminary outline + fields generation - /research-add-items — supplement research objects - /research-add-fields — supplement field definitions - /research-deep — parallel agents per item, resumable, JSON-validated - /research-report — JSON to markdown report with TOC Includes validate_json.py for fields.yaml coverage check (PyYAML required). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
145
research/SKILL.md
Normal file
145
research/SKILL.md
Normal file
@@ -0,0 +1,145 @@
|
||||
---
|
||||
name: research
|
||||
user-invocable: true
|
||||
allowed-tools: Read, Write, Glob, WebSearch, Task, AskUserQuestion
|
||||
description: Conduct preliminary research on a topic and generate research outline. For academic research, benchmark research, technology selection, etc.
|
||||
---
|
||||
|
||||
# Research Skill - Preliminary Research
|
||||
|
||||
## Trigger
|
||||
`/research <topic>`
|
||||
|
||||
## Workflow
|
||||
|
||||
### Step 1: Generate Initial Framework from Model Knowledge
|
||||
Based on topic, use model's existing knowledge to generate:
|
||||
- Main research objects/items list in this domain
|
||||
- Suggested research field framework
|
||||
|
||||
Output {step1_output}, use AskUserQuestion to confirm:
|
||||
- Need to add/remove items?
|
||||
- Does field framework meet requirements?
|
||||
|
||||
### Step 2: Web Search Supplement
|
||||
Use AskUserQuestion 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**:
|
||||
```python
|
||||
prompt = f"""## 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)
|
||||
"""
|
||||
```
|
||||
|
||||
**One-shot Example** (assuming researching AI Coding History):
|
||||
```
|
||||
## Task
|
||||
Research topic: AI Coding History
|
||||
Current date: 2025-12-30
|
||||
|
||||
Based on the following initial framework, supplement latest items and recommended research fields.
|
||||
|
||||
## Existing Framework
|
||||
### Items List
|
||||
1. GitHub Copilot: Developed by Microsoft/GitHub, first mainstream AI coding assistant
|
||||
2. Cursor: AI-first IDE, based on VSCode
|
||||
...
|
||||
|
||||
### Field Framework
|
||||
- Basic Info: name, release_date, company
|
||||
- Technical Features: underlying_model, context_window
|
||||
...
|
||||
|
||||
## Goals
|
||||
1. Verify if existing items are missing important objects
|
||||
2. Supplement items based on missing objects
|
||||
3. Continue searching for AI Coding History related items within since 2024 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 AskUserQuestion 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 AskUserQuestion)
|
||||
- items_per_agent: Items per agent (confirm with AskUserQuestion)
|
||||
- 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
|
||||
Reference in New Issue
Block a user