examples/deep_research/skills/deep-research/SKILL.md
Use this skill for any task that requires in-depth research, investigation, or comprehensive report generation on a topic. This includes: producing industry analysis, market research, technology surveys, competitive intelligence, trend reports, or any deliverable that synthesizes information from multiple sources into a structured long-form document; answering complex questions that require gathering evidence from the web, analyzing data, and presenting findings with charts and citations; any request where the user explicitly asks for a 'report', 'research', 'survey', 'white paper', or 'deep dive'. Trigger especially when the task cannot be answered from memory alone and requires active information gathering. Do NOT trigger for simple factual Q&A, code-only tasks, single-file data analysis (use data-analysis skill), or creative writing without research backing.
npx skillsauth add opencmit/alphora deep-researchInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
[n] notation linking to the references section/mnt/workspace/report/assets/All research materials MUST be persisted in the workspace so findings are not lost between iterations:
| Directory | Purpose |
|-----------|---------|
| /mnt/workspace/research/sources/ | Extracted web page content (.txt files) |
| /mnt/workspace/research/data/ | Downloaded datasets and raw data |
| /mnt/workspace/research/images/ | Downloaded reference images |
| /mnt/workspace/research/notes/ | Research notes and outlines |
| /mnt/workspace/report/ | Final report markdown |
| /mnt/workspace/report/assets/ | Report images (charts + reference images) |
| Path | Purpose | Access |
|------|---------|--------|
| /mnt/workspace/ | Working directory for all research materials and outputs | Read/Write |
| /mnt/skills/deep-research/ | Skill scripts and references | Read-only |
The sandbox has network access for web searches and downloads.
| Script | Purpose | Usage |
|--------|---------|-------|
| scripts/web_search.py | Search the web and return structured results | python /mnt/skills/deep-research/scripts/web_search.py "query" --max-results 10 |
| scripts/fetch_page.py | Fetch a URL and extract clean text content | python /mnt/skills/deep-research/scripts/fetch_page.py "https://example.com" --output /mnt/workspace/research/sources/page.txt |
| scripts/download_file.py | Download files (images, data, PDFs) to workspace | python /mnt/skills/deep-research/scripts/download_file.py "https://example.com/chart.png" --output /mnt/workspace/research/images/chart.png |
| scripts/compile_report.py | Validate and compile the final report | python /mnt/skills/deep-research/scripts/compile_report.py /mnt/workspace/report/report.md --validate --to-html |
| Document | Content |
|----------|---------|
| references/REPORT_TEMPLATE.md | Report structure template — use as starting skeleton |
If dependencies are missing, install them first:
pip install requests beautifulsoup4 duckduckgo-search pandas matplotlib -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple
Deep research follows a collect → analyze → identify gaps → collect more loop. Do NOT attempt to write the final report in one pass. Instead, accumulate materials over multiple iterations, then synthesize.
Before any searching, create a research plan:
plan = """
# Research Plan: [Topic]
## Core Questions
1. [Primary question to answer]
2. [Secondary question]
3. [...]
## Information Needs
- Market data: [what numbers/trends are needed]
- Expert opinions: [whose perspectives matter]
- Case studies: [specific examples to find]
- Comparisons: [what to compare against]
## Planned Sections
1. [Section title] — sources needed: [type]
2. [Section title] — sources needed: [type]
3. [...]
"""
with open('/mnt/workspace/research/notes/plan.md', 'w') as f:
f.write(plan)
Save the plan to /mnt/workspace/research/notes/plan.md so it persists across iterations.
Search broadly first, then narrow down:
# Broad search
python /mnt/skills/deep-research/scripts/web_search.py "topic overview" --max-results 10
# Targeted follow-up
python /mnt/skills/deep-research/scripts/web_search.py "topic specific aspect 2024 data" --max-results 5
For promising URLs, fetch the full content:
python /mnt/skills/deep-research/scripts/fetch_page.py "https://example.com/article" \
--output /mnt/workspace/research/sources/article_name.txt
Download relevant images, datasets, or charts:
python /mnt/skills/deep-research/scripts/download_file.py "https://example.com/chart.png" \
--output /mnt/workspace/research/images/market_share.png
When you have quantitative data, analyze it with Python:
import pandas as pd
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['Source Han Sans CN', 'WenQuanYi Micro Hei', 'SimHei', 'DejaVu Sans']
plt.rcParams['axes.unicode_minus'] = False
# Load collected data
df = pd.read_csv('/mnt/workspace/research/data/market_data.csv')
# Analyze
summary = df.groupby('category')['revenue'].sum().sort_values(ascending=False)
print(summary)
# Generate chart for the report
fig, ax = plt.subplots(figsize=(10, 6))
summary.plot(kind='bar', ax=ax)
ax.set_title('Revenue by Category')
ax.set_ylabel('Revenue (¥)')
plt.tight_layout()
plt.savefig('/mnt/workspace/report/assets/revenue_by_category.png', dpi=150, bbox_inches='tight')
plt.close()
print("Chart saved.")
For predictive analysis, use appropriate statistical methods:
numpy.polyfitAlways state the methodology and limitations of any prediction.
Read references/REPORT_TEMPLATE.md for the structural skeleton.
Do NOT write the entire report at once. Write each section as a separate operation, referencing your collected materials:
section = """
## Market Overview
The global market for [X] reached ¥{value} billion in 2024,
representing a {growth}% year-over-year increase [1].

*Figure 1: Market size evolution from 2020 to 2024. Source: [1]*
Key drivers include:
- **Factor A**: Description with evidence [2]
- **Factor B**: Description with evidence [3]
| Region | Market Share | Growth Rate |
|--------|-------------|-------------|
| Asia | 45.2% | 12.3% |
| Europe | 28.1% | 8.7% |
| Americas | 26.7% | 10.1% |
*Table 1: Regional market distribution. Source: [1][4]*
"""
Once all sections are written, assemble them into the final document and save to /mnt/workspace/report/report.md.
After the full report is written, compose the executive summary based on the actual findings.
python /mnt/skills/deep-research/scripts/compile_report.py \
/mnt/workspace/report/report.md --validate --to-html
This checks:
[n] match entries in the references section[n] citation[TODO], [TBD], xxx)pip install requests beautifulsoup4 duckduckgo-search pandas matplotlib -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simpleencoding='utf-8', then 'gbk', then 'latin1'content-media
Use this skill whenever the user wants to do anything with PDF files. This includes reading or extracting text/tables from PDFs, combining or merging multiple PDFs into one, splitting PDFs apart, rotating pages, adding watermarks, creating new PDFs, filling PDF forms, encrypting/decrypting PDFs, extracting images, and OCR on scanned PDFs to make them searchable. If the user mentions a .pdf file or asks to produce one, use this skill.
development
当任务以表格数据为中心(CSV/Excel/TSV/JSON/Parquet)并需要分析、清洗、聚合、可视化、导出时,必须使用本技能。该技能强调人类数据分析师式流程:先多轮探查数据,再分段写小块 Python 代码逐步求解。禁止跳过探查直接编码,禁止一次写大段复杂代码。
development
Maintainer-only workflow for handling GitHub Secret Scanning alerts on OpenClaw. Use when Codex needs to triage, redact, clean up, and resolve secret leakage found in issue comments, issue bodies, PR comments, or other GitHub content.
development
Maintainer workflow for OpenClaw releases, prereleases, changelog release notes, and publish validation. Use when Codex needs to prepare or verify stable or beta release steps, align version naming, assemble release notes, check release auth requirements, or validate publish-time commands and artifacts.