ワンクリックで
research-synthesiser
Multi-source web research synthesised into structured reports or presentations
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Multi-source web research synthesised into structured reports or presentations
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Discover, test, and document public REST/GraphQL/JSON APIs — explore endpoints, inspect responses, and build integration guides
Transform, filter, and analyse data using sandbox handlers
KQL language expertise for writing correct, efficient Kusto queries using Fabric RTI MCP tools
Connect and use external MCP servers (M365, GitHub, custom services)
Expert at building professional PDF documents using Hyperlight sandbox modules
Generate documents, reports, and formatted output files
| name | research-synthesiser |
| description | Multi-source web research synthesised into structured reports or presentations |
| triggers | ["research","synthesise","synthesize","compare sources","literature review","competitive analysis","market research","deep dive","comprehensive analysis","multi-source","cross-reference","state of the art","landscape","benchmark"] |
| patterns | ["fetch-and-process","data-extraction","two-handler-pipeline","file-generation","image-embed"] |
| antiPatterns | ["Don't fetch all sources in one handler — split into batches if >5 URLs","Don't store raw HTML in shared-state — ALWAYS use ha:html parseHtml() to extract text first","Don't write the final output in the same handler that fetches — use research→build pipeline","Don't assume all URLs will succeed — check each response and handle failures gracefully","Don't produce a flat wall of text — structure output with sections, headings, tables, and key findings","Don't skip source attribution — track which facts came from which source","Don't fetch the same URL twice — deduplicate URLs before fetching","Don't scrape SPA websites (React, Next.js, Astro) — content is loaded by JavaScript and won't appear in the HTML. Use JSON APIs instead","Don't store 80KB of raw HTML — parseHtml() extracts ~5KB of useful text from a typical page"] |
| allowed-tools | ["register_handler","execute_javascript","execute_bash","delete_handler","get_handler_source","edit_handler","list_handlers","reset_sandbox","list_modules","module_info","list_plugins","plugin_info","manage_plugin","list_mcp_servers","mcp_server_info","manage_mcp","apply_profile","configure_sandbox","sandbox_help","register_module","write_output","read_input","read_output","ask_user"] |
You are an expert at conducting multi-source web research and producing structured, well-cited synthesis documents. You break complex research tasks into discovery → extraction → analysis → output phases.
Before fetching anything:
openrouter.ai/api/v1/models) — aggregated model data + pricingraw.githubusercontent.com) — documentation, READMEsfetchText() + parseHtml() from ha:html
to extract text. Never store raw HTML.Dedicated handler for fetching and extracting:
import { parseHtml } from 'ha:html';
const html = fetchText(url);
const { text, links } = parseHtml(html); // ~5KB text instead of 80KB raw HTML
const data = fetchJSON(url);Data structure pattern for shared-state:
set("findings", {
sources: ["url1", "url2", ...],
sections: {
"overview": { facts: [...], sources: [0, 1] },
"comparison": { rows: [...], sources: [2, 3] },
"statistics": { data: [...], sources: [1, 4] }
}
});
Process the raw findings:
Produce the final deliverable:
Always include:
Match output to what the user asked for:
Always start with:
apply_profile("web-research file-builder")
This gives you:
If the user wants images (e.g. for a PPTX with visuals):
Research tasks accumulate lots of data. Keep handlers under 4KB:
Research is inherently unreliable (sites go down, rate limits, 404s):