con un clic
research
Use when researching a topic through iterative web exploration and synthesis
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Menú
Use when researching a topic through iterative web exploration and synthesis
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Basado en la clasificación ocupacional SOC
Use when a vague idea needs Socratic requirements discovery, topology confirmation, ambiguity scoring, and an approval-gated spec before execution
Use when a prompt asset keeps causing the same PDCA gate failure and you want to evolve it against a maintainer-authored structural check
Use when running a PDCA cycle across research, production, review, and refinement
Use when iteratively improving a draft until it meets a review target
Use when reviewing content, strategy, or code with parallel specialized reviewers
Use when a fetched URL returns 4xx/blocked, hits a WAF or captcha, or when a JS-heavy SPA returns no usable body. Escalates through public APIs, Jina Reader, header-diverse curl, TLS impersonation, headless browsers, and free archive mirrors until validated content is returned. Zero API keys.
| name | research |
| description | Use when researching a topic through iterative web exploration and synthesis |
| effort | high |
No guessing. If there is no data, collect it first.
Autonomous multi-round web research that produces structured Research Briefs.
/second-claude-code:write, /second-claude-code:analyze) needs source materialThe researcher uses Jina Search (s.jina.ai) as the primary tool. Fallback chain: Jina Search → WebSearch + WebFetch → unblock skill (zero-key 9-phase fetch chain) → Playwright. See references/jina-guide.md and skills/unblock/SKILL.md.
When mmbridge is detected (see references/mmbridge-integration.md), dispatch mmbridge research in parallel with the internal researcher.
At Step 1, also run via Bash:
mmbridge research "<topic>" --type <type> --json > /tmp/mmbridge-research-${RUN_ID}.json
--type code-aware: when topic relates to the current codebase--type open: for general topics unrelated to code--depth shallow: skip mmbridge--depth medium|deep: mmbridge enabledAt Step 3, parse the mmbridge JSON output file as supplemental source material. Count each distinct cited URL from mmbridge as one source and deduplicate overlaps during gap analysis.
references/research-methodology.md and references/jina-guide.md.$JINA_API_KEY is unavailable, fall back to WebSearch + WebFetch. If mmbridge is available at medium or deep depth, dispatch it in parallel.node skills/unblock/engine/cli.mjs "<URL>" --json); read the trace before any retry.references/research-methodology.md.| Flag | Values | Default | Effect |
|---|---|---|---|
--depth | shallow|medium|deep | medium | HARD limit on search rounds — see Depth Behavior |
--sources | web|academic|news | web | Constrains search domain |
--lang | ko|en|auto | auto | Output language. When called from another skill (write, analyze), inherits the caller's --lang value. |
--interactive | flag | off | Force Playwright for all URL fetches (useful for SPAs, dashboards) |
--engine | jina|legacy | jina | jina: use Jina Search API. legacy: use WebSearch + WebFetch |
When --engine legacy is set or $JINA_API_KEY is unavailable, replace "Jina Search" with "WebSearch" and "Jina Reader" with "WebFetch" in the above counts.
Coverage requirements and conflict resolution rules are in references/research-methodology.md.
--sources)after:30d and prefer established editorial sources over blogs.Jina Search (s.jina.ai) ─── primary: search + content in one call
└─ blocked/empty → Jina Reader (r.jina.ai) with X-Engine: browser
└─ still fails → Playwright (browser_navigate + browser_snapshot)
└─ unavailable → note in Gaps & Limitations
When --engine legacy or $JINA_API_KEY is unavailable:
WebSearch → WebFetch → Playwright → Gaps & Limitations
When --interactive is set, skip Jina/WebFetch and use Playwright for every URL.
Cost controls: Max 3 Playwright navigations per round. Exceeding the cap means skip the rest and note the gap.
Graceful degradation: Both Jina and Playwright are optional. If $JINA_API_KEY is missing, fall back silently. If Playwright MCP is unavailable, proceed without it and note unreachable URLs.
.captures/research-{slug}-{YYYY-MM-DD}.md{slug} = topic lowercased, spaces to hyphens, max 40 chars| Failure Mode | Mitigation |
|---|---|
| Stops after 1 search | researcher MUST meet depth minimums: shallow=3, medium=5, deep=10. Fewer = restart. |
| Lists links without analysis | analyst step is required. Raw link dumps are rejected. |
| Hallucinated sources | Every URL must come from an actual Jina Search/WebSearch result. writer cannot invent URLs. |
| Duplicate queries | researcher must vary phrasing with synonyms and different angles per query. |
| Jina API key missing | Fall back to WebSearch + WebFetch silently. Do not error. |
researcher: { model: sonnet, tools: [Bash, WebSearch, WebFetch, browser_navigate, browser_snapshot], constraint: "Jina Search when $JINA_API_KEY set, else WebSearch+WebFetch; meet depth minimums, vary phrasing, validate content, flag staleness; Playwright only when Jina+WebFetch both fail; max 3 navigations" }
analyst: { model: sonnet, tools: [], constraint: "produce gap list, flag data conflicts, verify coverage requirements" }
writer: { model: sonnet, tools: [], constraint: "every claim needs a source, no invented URLs, include conflict annotations" }
See references/research-methodology.md for output format template, extended gotchas table, and integration notes.