Skip to content
Back to skills

Octen Research

ASecurity

Use when a question needs coverage rather than a single answer — research, market or literature surveys, competitive analysis, "find everything about X", "deep dive on Y", "what are all the options for Z", building a list of entities — or when one search has already come back thin and the gap is breadth, not phrasing. Also covers landscape scans, comprehensive coverage of a field, and answers that have to cite their sources.

  • 21 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 29, 2026
ai-agentsgo

Security analysis

A100/100

Scanned September 29, 2026

npx -y skills add Octen-Team/octen-mcp --skill octen-research --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Octen Research?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Octen Research
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/octen-team-octen-research/badge)](https://www.skillsdirectory.com/skills/octen-team-octen-research)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: octen-research
description: >-
  Use when a question needs coverage rather than a single answer — research, market
  or literature surveys, competitive analysis, "find everything about X", "deep dive
  on Y", "what are all the options for Z", building a list of entities — or when one
  search has already come back thin and the gap is breadth, not phrasing.
  Also covers landscape scans, comprehensive coverage of a field, and answers
  that have to cite their sources.
metadata: {"homepage": "https://octen.ai", "support": "support@octen.ai"}
---

# Octen Research

Multi-source research on Octen. The shape is always the same: **fan out, filter,
ground, then synthesize** — never a single search dressed up as a report.

## When this skill applies

Use it when the answer needs *coverage*: several entities, several angles, or a
claim that must hold across sources.

Do **not** use it for a single fact, a single entity, or a page you already have
the URL for — those are one `search` or one `extract`. Routing for those lives in
the **octen-web-search** skill.

## Before searching: resolve time

A relative window ("recent", "last quarter", "past 6 months") is not a filter
until it becomes two timestamps. Take today's date from your environment context,
work out the bounds, and state them before the first call — an approximate window
silently changes what the fan-out covers.

Pass them as `start_time` / `end_time`, or use `time_range` when one of the coarse
windows (`day` / `week` / `month` / `year`) is exactly what was asked for.

## Step 1 — fan out

One `broad_search` with the **whole** question. Do not pre-split it into
sub-queries; decomposition is what the tool does.

Set `max_queries` to the scope:

| Scope | `max_queries` |
|--|--|
| Focused comparison, 2–3 entities | 3–5 |
| Multi-facet research | 5–10 |
| Landscape scan | 10–20 |
| Exhaustive survey | 20–30 |

For a question about recent events, add `topic: news`. Narrow with
`include_domains` when the credible sources are known (`arxiv.org`, a vendor's
docs domain), and `exclude_domains` to drop content farms.

Results come back grouped per sub-query and are **not deduplicated** — the same
URL can appear under several sub-queries. Dedupe by URL before counting anything.

## Step 2 — filter before you read

Judge candidates from the highlights, not by fetching everything. Drop duplicates,
listicles, and pages that only restate the query. `extract` is the expensive step;
spend it on the handful that carry real evidence.

## Step 3 — ground

`extract` the survivors, up to 20 URLs in one call. Leave `query` unset — this
step exists to read the page, and setting `query` returns ranked excerpts *instead
of* the body, which is the opposite of grounding. Each result carries `category`
and `page_structure` — use them to throw out login walls and nav pages before
spending context on what you fetched. Retry failed or empty extracts with
`mode: "advanced"`.

Any claim that ends up in the answer should trace to a page you actually
extracted, not to a search snippet.

## Step 4 — check coverage, then synthesize

Before writing, ask what is still missing: an entity named in the sources but never
researched, a claim resting on one source, an angle the fan-out never covered. Each
gap is one targeted `search` or `extract` — not a second `broad_search` over the
same ground.

Then write the answer with sources attached to claims, and say plainly what you
could not establish. A gap reported is worth more than a gap papered over.

## Scaling up

For a survey wide enough that the extracted material won't fit comfortably in
context, split it by sub-topic and delegate each branch to a subagent, giving each
one its slice of URLs and a narrow question. Compile their returns yourself. Keep
the fan-out and the final synthesis in one place — only the reading parallelizes.

## Common mistakes

| Mistake | Do this instead |
|--|--|
| Re-running `broad_search` when results disappoint | Targeted `search` / `extract` on the specific gap |
| Pre-splitting the question into sub-queries | Pass the whole question, raise `max_queries` |
| Counting results without deduping | Dedupe by URL first — results are grouped, not deduplicated |
| Citing search snippets as evidence | `extract` the page and cite what you read |
| `extract`-ing every hit | Filter on highlights first; extract the few that matter |
| Relative dates passed through unresolved | Compute explicit dates, pass `start_time` / `end_time` |
| Reporting a confident answer with a silent hole | Name what you couldn't establish |

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…