parallel-ai-research
# Research Skill
What this skill does
# Research Skill
## Description
Conduct open-ended research on a topic, building a living markdown document. The conversation is ephemeral; the document is what matters.
## Trigger
Activate when the user wants to:
- Research a topic, idea, or question
- Explore something before committing to building it
- Investigate options, patterns, or approaches
- Create a "research doc" or "investigation"
- Run deep async research on a complex topic
## Research Directory
Each research topic gets its own folder:
```
~/.openclaw/workspace/research/<topic-slug>/
├── prompt.md # Original research question/prompt
├── research.md # Main findings (Parallel output or interactive notes)
├── research.pdf # PDF export (when generated)
└── ... # Any other related files (data, images, etc.)
```
---
## Two Research Modes
### 1. Interactive Research (default)
For topics you explore together in conversation. You search, synthesize, and update the doc in real-time.
### 2. Deep Research (async)
For complex topics that need comprehensive investigation. Uses the Parallel AI API via `parallel-research` CLI. Takes minutes to hours, returns detailed markdown reports.
**When to use deep research:**
- Market analysis, competitive landscape
- Technical deep-dives requiring extensive source gathering
- Multi-faceted questions that benefit from parallel exploration
- When user says "deep research" or wants comprehensive coverage
---
## Interactive Research Workflow
### 1. Initialize Research
1. **Create the research folder** at `~/.openclaw/workspace/research/<topic-slug>/`
2. **Create prompt.md** with the original question:
```markdown
# <Topic Title>
> <The core question or curiosity>
**Started:** <date>
```
3. **Create research.md** with the working structure:
```markdown
# <Topic Title>
**Status:** Active Research
**Started:** <date>
**Last Updated:** <date>
---
## Open Questions
- <initial questions to explore>
## Findings
<!-- Populated as we research -->
## Options / Approaches
<!-- If comparing solutions -->
## Resources
<!-- Links, references, sources -->
## Next Steps
<!-- What to explore next, or "graduate to project" -->
```
4. **Confirm with user** - Show the folder was created and ask what to explore first.
### 2. Research Loop
For each exchange:
1. **Do the research** - Web search, fetch docs, explore code
2. **Update the document** - Add findings, move answered questions, add sources
3. **Show progress** - Note what was added (don't repeat everything)
4. **Prompt next direction** - End with a question or suggestion
**Key behaviors:**
- Update existing sections over creating new ones
- Use bullet points for findings; prose for summaries
- Note uncertainty ("seems like", "according to X", "unverified")
- Link to sources whenever possible
### 3. Synthesis Checkpoints
Every 5-10 exchanges, offer to:
- Write a "Current Understanding" summary
- Prune redundant findings
- Reorganize if unwieldy
- Check blind spots
### 4. Completion
When research is complete, update the status in `research.md`:
- **"Status: Complete"** — Done, stays in place as reference
- **"Status: Ongoing"** — Living doc, will be updated over time
**If the research is specifically for building a project:**
- Graduate to `~/specs/<project-name>.md` as a project spec
- Or create a project directly based on findings
- Update status to **"Status: Graduated → ~/specs/..."**
Most research is just research — it doesn't need to become a spec. Only graduate if you're actually building something from it.
---
## Deep Research Workflow
### 1. Start Deep Research
```bash
parallel-research create "Your research question" --processor ultra --wait
```
**Processor options:**
- `lite`, `base`, `core`, `pro`, `ultra` (default), `ultra2x`, `ultra4x`, `ultra8x`
- Add `-fast` suffix for speed over depth: `ultra-fast`, `pro-fast`, etc.
**Options:**
- `-w, --wait` — Wait for completion and show result
- `-p, --processor` — Choose processor tier
- `-j, --json` — Raw JSON output
### 2. Schedule Auto-Check (OpenClaw)
After creating a task, set up a cron job to check results and deliver them back to the user. Use `deleteAfterRun: true` so it cleans up automatically.
**⚠️ CRITICAL: Always calculate `atMs` correctly!**
```bash
# Get current timestamp in ms and add 15 minutes (900000 ms)
date +%s%3N # Current time in epoch ms
# Example: 1770087600000 + 900000 = 1770088500000
```
**Always verify the scheduled time is in the future and has the correct year:**
```bash
date -d @$((1770088500000/1000)) # Should show a time ~15 min from now, correct year
```
```json
{
"action": "add",
"job": {
"name": "Check research: <topic>",
"schedule": {"kind": "at", "atMs": <VERIFY: must be current epoch ms + delay>},
"sessionTarget": "isolated",
"payload": {
"kind": "agentTurn",
"message": "Check research task <run_id>. Run: parallel-research result <run_id>. If complete, summarize key findings. If still running, reschedule another check in 10 min.",
"deliver": true,
"channel": "<source channel, e.g. telegram>",
"to": "<source chat/topic, e.g. -1001234567890:topic:123>"
},
"deleteAfterRun": true
}
}
```
**Key points:**
- Use the `cron` tool with `action: "add"`
- **ALWAYS verify `atMs` is correct** — run `date -d @$((atMs/1000))` to confirm year and time
- `atMs` should be ~10-15 min from now (ultra processor) or ~5 min (fast processors)
- `deleteAfterRun: true` removes the job after successful completion
- Deliver back to the same channel/topic that requested the research
- If still running, the cron job can create another check
- `PARALLEL_API_KEY` is available as env var — no need to inline it
### 3. Manual Check (if needed)
```bash
parallel-research status <run_id>
parallel-research result <run_id>
```
### 4. Save to Research Folder
Create the research folder and save results:
```
~/.openclaw/workspace/research/<topic-slug>/
├── prompt.md # Original question + run metadata
├── research.md # Full Parallel output
```
**prompt.md** should include:
```markdown
# <Topic Title>
> <Original research question>
**Run ID:** <run_id>
**Processor:** <processor>
**Started:** <date>
**Completed:** <date>
```
**research.md** contains the full Parallel output, plus any follow-up notes.
---
## PDF Export
Use the `export-pdf` script to convert research docs to PDF:
```bash
export-pdf ~/.openclaw/workspace/research/<topic-slug>/research.md
# Creates: ~/.openclaw/workspace/research/<topic-slug>/research.pdf
```
Or specify a custom output path:
```bash
export-pdf research.md ~/Desktop/output.pdf
```
**Note:** Tables render as stacked rows (PyMuPDF limitation). Acceptable for research docs.
---
## Commands
- **"new research: <topic>"** - Start interactive research doc
- **"deep research: <topic>"** - Start async deep research
- **"show doc"** / **"show research"** - Display current research file
- **"summarize"** - Synthesis checkpoint
- **"graduate"** - Move research to next phase
- **"archive"** - Mark as complete reference
- **"export pdf"** - Export to PDF
- **"check research"** - Check status of pending deep research tasks
---
## Document Principles
- **Atomic findings** - One insight per bullet
- **Link everything** - Sources, docs, repos
- **Capture context** - Why did we look at this?
- **Note confidence** - Use qualifiers when uncertain
- **Date important findings** - Especially for fast-moving topics
---
## Setup
See `SETUP.md` for first-time installation of:
- `parallel-research` CLI
- PDF export tools (pandoc, PyMuPDF)
Related in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.