squall-deep-research

Deep research via Codex web search and optionally Gemini deep research. Use when asked to 'deep research', 'squall deep research', 'research deeply', or when a question needs web-sourced evidence. Single-agent, not a swarm. (project)

16 stars

Best use case

squall-deep-research is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Deep research via Codex web search and optionally Gemini deep research. Use when asked to 'deep research', 'squall deep research', 'research deeply', or when a question needs web-sourced evidence. Single-agent, not a swarm. (project)

Teams using squall-deep-research should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/squall-deep-research/SKILL.md --create-dirs "https://raw.githubusercontent.com/diegosouzapw/awesome-omni-skill/main/skills/data-ai/squall-deep-research/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/squall-deep-research/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How squall-deep-research Compares

Feature / Agentsquall-deep-researchStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Deep research via Codex web search and optionally Gemini deep research. Use when asked to 'deep research', 'squall deep research', 'research deeply', or when a question needs web-sourced evidence. Single-agent, not a swarm. (project)

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

Related Guides

SKILL.md Source

# Squall Deep Research

> **TL;DR - QUICK REFERENCE**
>
> | Concept | Translation |
> |---------|-------------|
> | Codex web search | `clink` with model `codex`, timeout 600s — proven path, 20+ web searches per query |
> | Gemini deep research | `clink` with model `gemini` — standard search works, deep research needs `GEMINI_API_KEY` |
> | Prompt engineering | Frame as research question with "search the web for...", "cite sources", "include URLs" |
> | Output persistence | Write results to `.squall/research/<topic>.md` so they survive context compaction |
>
> **Entry criteria:**
> - User needs web-sourced evidence, specifications, or current information
> - Question goes beyond what's in the codebase or Claude's training data
> - User says "deep research", "web research", or "research deeply"

Single-agent deep research using Squall's CLI model dispatch. Codex performs multi-step
web searches and synthesizes sourced reports. Gemini adds depth when available. This is
NOT a multi-agent swarm — for parallel team research, use `/squall-research` instead.

## Workflow

1. **Check memory** — call `memory` category "patterns" to see if prior research exists on this topic. Call `memory` category "tactics" for prompt engineering insights that improve Codex/Gemini research quality.
2. **Frame the research question** — Convert the user's request into a specific, searchable research prompt
3. **Dispatch via Squall `clink`** — Send to Codex (primary) and optionally Gemini (secondary)
4. **Persist results** — Write to `.squall/research/<topic>.md`
5. **Synthesize and memorize** — Summarize key findings for the user with source attribution. Call `memorize` with category "pattern" for insights worth remembering across sessions.

```
┌─────────────────────────────────────────────────────────────┐
│  DEEP RESEARCH WORKFLOW                                     │
│                                                             │
│  Check  ──► Frame  ──► Craft  ──► clink(codex) ──► Persist │
│  memory     question    prompt        │                │    │
│                           └──► clink(gemini) ──────────┘    │
│                                (optional)       ▼           │
│                                          .squall/research/  │
│                                          <topic>.md         │
│                                                ▼            │
│                                         Memorize findings   │
└─────────────────────────────────────────────────────────────┘
```

## Key Principles

### Principle 1: Codex Web Search is the Primary Path

Codex CLI performs real web searches — not just LLM recall. A single query triggers 20+
searches, opens pages, extracts data, and synthesizes. Proven at ~93s for detailed topics
producing 82K input tokens of sourced material. This is the reliable, working-today path.

### Principle 2: Prompt Engineering Drives Quality

Research quality depends entirely on how you frame the prompt. Codex responds to specific
triggers that activate its search behavior. Vague prompts get vague answers. Specific,
data-oriented prompts with explicit search instructions get sourced reports.

### Principle 3: Persist Everything

MCP tool results are ephemeral — they vanish during context compaction. Always write
research output to `.squall/research/`. The file path survives in compaction summaries,
so Claude can `Read` the file to recover full details later.

## Dispatching Research

### Primary: Codex Web Search

Use Squall's `clink` tool:

```
Tool: clink
Arguments:
  model: "codex"
  prompt: "<research prompt — see Prompt Engineering below>"
  timeout: 600
```

Codex needs time for multi-step web searches. The 600s timeout prevents premature cutoff.
Typical research queries complete in 60-120s.

### Optional: Gemini

```
Tool: clink
Arguments:
  model: "gemini"
  prompt: "<research prompt>"
  timeout: 600
```

Gemini CLI has standard search capabilities via OAuth. For deeper investigation, the
Gemini deep research extension requires `GEMINI_API_KEY` (paid tier) — see Limitations.

### Combining Both

Run Codex and Gemini as parallel `clink` calls with different angles:

- **Codex**: Breadth — cast a wide net with web search, gather many sources
- **Gemini**: Depth — analyze, synthesize, find patterns across findings

Example: researching "Rust async runtimes"
- Codex prompt: "Search the web for comprehensive comparisons of Rust async runtimes in 2025-2026. Include benchmarks, adoption numbers, and ecosystem compatibility. Cite all sources with URLs."
- Gemini prompt: "Analyze the tradeoffs between tokio, async-std, and smol for building MCP servers. Focus on cancellation safety, memory overhead, and real-world production experience."

## Prompt Engineering for Research

### What triggers Codex's search behavior

| Prompt pattern | Effect |
|----------------|--------|
| "Search the web for..." | Activates web search mode |
| "Cite sources" / "Include URLs" | Produces attributed results |
| "Find recent..." / "What's the latest..." | Targets current information |
| Specific data points (numbers, specs, versions) | Gets precise answers |
| "Compare X and Y with evidence" | Multi-source synthesis |

### Template: Research Prompt

```
Search the web for [specific topic]. I need:

1. [Specific data point or question]
2. [Another specific question]
3. [Comparison or analysis needed]

Requirements:
- Cite all sources with URLs
- Include specific numbers, dates, and version information
- Distinguish between confirmed facts and claims
- Note any contradictions between sources
```

### Template: Persist Results

After receiving `clink` output, write to disk:

```
File: .squall/research/<topic-slug>.md

# <Topic>

> Deep research via Squall/Codex — <date>

## Key Findings
<synthesized summary>

## Sources
<URLs and attributions from Codex output>

## Raw Output
<full Codex response>
```

Then memorize reusable insights:

```
Tool: memorize
Arguments:
  category: "pattern"
  content: "<key finding worth remembering across sessions>"
  tags: ["research", "<topic-tag>"]
```

## Reference Tables

| Scenario | Model(s) | Timeout | Notes |
|----------|----------|---------|-------|
| Quick fact check | Codex | 300s | Single specific question |
| Detailed research | Codex | 600s | Multi-faceted topic, many sources |
| Dual-perspective | Codex + Gemini | 600s each | Parallel calls, different angles |
| API/library research | Codex | 600s | "Search the web for X documentation" |

| Model | Strength | Typical Time | Token Usage |
|-------|----------|-------------|-------------|
| Codex | Web search breadth, 20+ searches, sourced reports | 60-120s | ~82K input |
| Gemini | Analysis depth, synthesis, standard search | 30-90s | Varies |

## Anti-Patterns

| Don't | Do Instead |
|-------|------------|
| Set timeout below 300s for Codex | Use 600s — Codex needs time for web searches |
| Use vague prompts ("tell me about X") | Be specific: "Search the web for X. Include URLs, dates, version numbers." |
| Use this for code review | Use `/squall-review` — different tool, different purpose |
| Expect Gemini deep research without API key | Use Codex as primary; Gemini is supplementary |
| Leave results only in context | Always persist to `.squall/research/<topic>.md` |
| Use this for parallel multi-vector research | Use `/squall-research` for swarm-based investigation |
| Frame as a code generation task | Frame as a research question — "search", "find", "compare" |
| Start research without checking memory | Call `memory` first — prior research or patterns may already exist |
| Finish without memorizing findings | Call `memorize` for insights worth preserving across sessions |

## Examples

### Example 1: Single-Topic Research

User asks: "What are the current rate limits for the xAI Grok API?"

```
Tool: clink
Arguments:
  model: "codex"
  prompt: "Search the web for xAI Grok API rate limits as of 2026. I need:
    1. Rate limits per tier (free, paid, enterprise)
    2. Token limits per request
    3. Any recent changes to rate limits
    Cite all sources with URLs."
  timeout: 600
```

Then persist the output to `.squall/research/xai-grok-rate-limits.md`.

### Example 2: Dual-Model Comparative Research

User asks: "Research how other MCP servers handle streaming responses"

Run in parallel:

```
Tool: clink (call 1)
Arguments:
  model: "codex"
  prompt: "Search the web for MCP (Model Context Protocol) servers that implement
    streaming responses. Find GitHub repos, blog posts, and documentation.
    Include implementation approaches and any limitations. Cite all sources."
  timeout: 600

Tool: clink (call 2)
Arguments:
  model: "gemini"
  prompt: "Analyze the MCP specification's support for streaming responses.
    What are the protocol-level mechanisms? How do existing implementations
    handle partial results? What are the tradeoffs?"
  timeout: 600
```

Combine outputs into `.squall/research/mcp-streaming-responses.md`.

## Limitations

- **Gemini deep research** requires `GEMINI_API_KEY` (paid tier) — not currently configured
- **Codex deep research model** (`o4-mini-deep-research`) requires `OPENAI_API_KEY` — not available
- **Codex normal web search** is the reliable path today — uses existing ChatGPT auth
- **Results quality** depends heavily on prompt engineering — be specific, ask for sources
- **No structured output** — research results are free-form text, not JSON

## Related Skills

- [squall-research](../squall-research/SKILL.md) - Multi-agent swarm research with parallel team members investigating different vectors
- [squall-review](../squall-review/SKILL.md) - Code review via Squall's review tool, not for research

<!-- SENTINEL:SESSION_LEARNINGS_START - Do not remove this line -->
## Session Learnings Archive

Insights captured during skill execution:

(Add learnings here as they occur, using this format:)

### YYYY-MM-DD: Brief Title
**Origin**: What triggered this learning
**Core insight**: The key learning
**Harvested** → [Link to where it was integrated] OR "Pending harvest"

---
<!-- SENTINEL:SESSION_LEARNINGS_END -->

Related Skills

agent-ux-researcher

16
from diegosouzapw/awesome-omni-skill

Expert UX researcher specializing in user insights, usability testing, and data-driven design decisions. Masters qualitative and quantitative research methods to uncover user needs, validate designs, and drive product improvements through actionable insights.

research-leads

16
from diegosouzapw/awesome-omni-skill

Research new capabilities and changes for tracked AI coding agents. Use this skill when assigned a research-leads issue to discover new features, or when asked to revise a research PR.

research-deep

16
from diegosouzapw/awesome-omni-skill

Read research outline, launch independent agent for each item for deep research. Disable task output.

research-cog

16
from diegosouzapw/awesome-omni-skill

Deep research agent powered by CellCog. Market research, competitive analysis, stock analysis, investment research, academic research with citations. Your AI research analyst.

openrouter-research

16
from diegosouzapw/awesome-omni-skill

Research OpenRouter API docs, available Grok model IDs, vision capability for the judge service, and integration patterns. Use when implementing openrouter_tool.py, when checking which Grok model supports vision/image input for judge_service.py, when OpenRouter returns unexpected errors, or when verifying model availability and context limits.

multi-ai-research

16
from diegosouzapw/awesome-omni-skill

Comprehensive research and analysis using Claude (subagents), Gemini CLI, and Codex CLI. Multi-perspective research with cross-verification, iterative refinement, and 100% citation coverage. Use for security analysis, architecture research, code quality assessment, performance analysis, or any research requiring rigorous verification and multiple AI perspectives.

gpt-researcher

16
from diegosouzapw/awesome-omni-skill

Run GPT-Researcher multi-agent deep research framework locally using OpenAI GPT-5.2. Replaces ChatGPT Deep Research with local control. Researches 100+ sources in parallel, provides comprehensive citations. Use for Phase 3 industry/technical research or comprehensive synthesis. Takes 6-20 min depending on report type. Supports multiple LLM providers.

deepwork_jobs

16
from diegosouzapw/awesome-omni-skill

Creates and manages multi-step AI workflows. Use when defining, implementing, or improving DeepWork jobs.

deep-research

16
from diegosouzapw/awesome-omni-skill

Web research with Graph-of-Thoughts for fast-changing topics. Use when user requests research, analysis, investigation, or comparison requiring current information. Features hypothesis testing, source triangulation, claim verification, Red Team, self-critique, and gap analysis. Supports Quick/Standard/Deep/Exhaustive tiers. Creative Mode for cross-industry innovation.

deep-codebase-analysis

16
from diegosouzapw/awesome-omni-skill

Agent capable of reading and analyzing the entire source code of a software project to gain a thorough understanding of architecture, communication, design patterns, and business flows. Use when exploring new systems, maintenance, or refactoring.

brutal-deepresearch

16
from diegosouzapw/awesome-omni-skill

Structured deep research pipeline with confirmation gates and resume support. Generates outline, launches parallel research agents, produces validated JSON results and markdown report.

agent-market-researcher

16
from diegosouzapw/awesome-omni-skill

Expert market researcher specializing in market analysis, consumer insights, and competitive intelligence. Masters market sizing, segmentation, and trend analysis with focus on identifying opportunities and informing strategic business decisions.