Skip to main content

active-research

Deep research and analysis tool. Generates comprehensive HTML reports on any topic, domain, paper, or technology. Enhanced with advanced browser automation — SPA handling, network idle wait, batch operations, stealth browsing, and intelligent page analysis. Use when user asks to research, analyze, investigate, deep-dive, or generate a report on any subject.

Source facts

Repository
actionbook/actionbook
Last source activity
February 26, 2026 at 15:56
Detected SKILL.md language
English
Stars
1,624
Forks
120

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
active-research
description
Deep research and analysis tool. Generates comprehensive HTML reports on any topic, domain, paper, or technology. Enhanced with advanced browser automation — SPA handling, network idle wait, batch operations, stealth browsing, and intelligent page analysis. Use when user asks to research, analyze, investigate, deep-dive, or generate a report on any subject.
exclude_tools
group:web
triggers
research, deep-dive, investigate, analyze topic, deep research, generate report
force_tool_turns
10
# Active Research Analyze any topic, domain, or paper and generate a beautiful HTML report using **Actionbook Browser** — featuring SPA-aware navigation, network idle detection, batch operations, and intelligent page analysis. ## Enhanced Browser Capabilities | Capability | Description | |------------|-------------| | Page load wait | `wait-idle` — monitors fetch/XHR until network settles | | SPA content | `wait-fn` — wait for JS conditions before extracting | | Page understanding | `snapshot --filter interactive --max-tokens N` — focused, budget-friendly | | Popups blocking | `--auto-dismiss-dialogs` — auto-handle alert/confirm/prompt | | Load speed | `--block-images` — skip images for faster text extraction | | Page stability | `--no-animations` — freeze CSS transitions | | Error detection | `console --level error` — check for page issues | | Multi-step forms | `batch` — execute multiple actions in one call | | Element debugging | `info <selector>` — inspect visibility, position, properties | | Change tracking | `snapshot --diff` — only see what changed | | Anti-detection | `--stealth` + `fingerprint rotate` for protected sites | | Auth management | `storage set` — inject JWT/tokens for gated content | | One-shot fetch | `browser fetch <url>` — navigate+wait+extract+close in one command | | Static page speed | `--lite` — HTTP-first, browser fallback only if needed | | Anti-scrape URLs | `--rewrite-urls` — x.com→xcancel.com, reddit→old.reddit | | Wait tuning | `--wait-hint` — domain-aware wait (fast/normal/slow/heavy) | | Log correlation | `--session-tag` — tag all operations for debugging | ## Usage ``` /active-research <topic> /active-research <topic> --output ./reports/my-report.json ``` Or simply tell Claude: "Research XXX and generate a report" ### Parameters | Parameter | Required | Default | Description | |-----------|----------|---------|-------------| | `topic` | Yes | - | The subject to research (any text) | | `--output` | No | `./output/<topic-slug>.json` | Output path for JSON report | ### Topic Detection | Pattern | Type | Strategy | |---------|------|----------| | `arxiv:XXXX.XXXXX` | Paper | **arXiv Advanced Search** + ar5iv deep read | | `doi:10.XXX/...` | Paper | Resolve DOI, then **arXiv Advanced Search** for related work | | Academic keywords (paper, research, model, algorithm) | Academic topic | **arXiv Advanced Search** + Google for non-academic sources | | URL | Specific page | Fetch and analyze the page | | General text | Topic research | Google search + arXiv Advanced Search if relevant | ## Architecture ``` ┌──────────┐ ┌──────────────┐ ┌──────────────┐ ┌──────────┐ │ Claude │────▶│ Actionbook │────▶│ Web Pages │────▶│ Extract │ │ Code │ │ Browser │ │ (multiple) │ │ Content │ └──────────┘ └──────────────┘ └──────────────┘ └─────┬────┘ │ │ wait-idle │ │ SPA / dynamic │ │ │ │ batch ops │ │ protected │ │ │ │ --stealth │ │ mobile-only │ │ │ │ snapshot │ └───────────────┘ │ │ └──────────────┘ │ │ ┌──────────────┐ ┌──────────────┐ │ ├─────────▶│ Actionbook │ │ arXiv Adv. │ │ │ │ search/get │────▶│ Search Form │───────────▶│ │ │ (selectors) │ │ (40+ fields) │ │ │ └──────────────┘ └──────────────┘ │ │ │ ┌──────────┐ ┌──────────────┐ ┌──────────────┐ │ │ Open in │◀────│ json-ui │◀────│ Write JSON │◀───────────┘ │ Browser │ │ render │ │ Report │ Synthesize └──────────┘ └──────────────┘ └──────────────┘ ``` ## MUST USE Actionbook CLI **Always use `actionbook browser` commands for web browsing. NEVER use any other method to access the web:** - **NEVER** use `curl`, `wget`, `httpie`, or any HTTP CLI tool via bash - **NEVER** use `python -c "import requests"` or any scripting-language HTTP library via bash - **NEVER** use WebFetch or WebSearch tools - **ONLY** use `actionbook browser` and `actionbook search`/`actionbook get` commands If you need web content, the PREFERRED path is: `actionbook browser fetch <url> --format text --json` (one-shot). For interactive multi-step workflows, use: `actionbook browser open <url>` → `actionbook browser wait-idle` → `actionbook browser text`. ## Browser Flags — Research Defaults **CRITICAL: Always use these flags when opening the browser for research.** ```bash # PREFERRED: One-shot fetch (I1) — handles open+wait+extract+close automatically actionbook --block-images --rewrite-urls browser fetch "<url>" --format text --json # For interactive multi-step workflows, use explicit open: actionbook --block-images --auto-dismiss-dialogs --no-animations --rewrite-urls browser open "<url>" ``` | Flag | Why | |------|-----| | `--block-images` | Skip image downloads — 2-5x faster page load for text extraction | | `--auto-dismiss-dialogs` | Prevent alert/confirm/prompt from blocking automation | | `--no-animations` | Freeze CSS animations — stable snapshots, no timing issues | | `--rewrite-urls` | Rewrite x.com→xcancel.com, reddit→old.reddit to avoid anti-bot blocking | | `--wait-hint <hint>` | Domain-aware wait: `instant`, `fast`, `normal`, `slow`, `heavy`, or ms | | `--session-tag <tag>` | Tag all operations for log correlation and debugging | | `--lite` (fetch only) | Try HTTP first, skip browser for static pages (Wikipedia, docs, blogs) | For sites with anti-bot protection, add `--stealth`: ```bash actionbook --block-images --auto-dismiss-dialogs --no-animations --stealth --rewrite-urls browser open "<url>" ``` ## Navigation Pattern — ALWAYS Follow **Option A: One-shot fetch (PREFERRED for read-only page extraction):** ```bash # Single command: navigate → wait (domain-aware) → extract → close actionbook --block-images --rewrite-urls browser fetch "<url>" --format text --json # For static pages (Wikipedia, docs, blogs), add --lite to skip browser entirely: actionbook --rewrite-urls browser fetch "<url>" --format text --lite --json # For accessibility tree: actionbook --block-images --rewrite-urls browser fetch "<url>" --format snapshot --max-tokens 2000 --json ``` **Option B: Interactive multi-step pattern (for forms, clicks, multi-page flows):** ```bash # Step 1: Navigate actionbook browser open "<url>" # or: goto, click a link # Step 2: Wait for load (MANDATORY in v2) actionbook browser wait-idle # Wait for fetch/XHR to settle # Step 3: Extract content actionbook browser text [selector] # Extract text # OR actionbook browser snapshot --filter interactive --max-tokens 500 # Understand page structure ``` **Why `wait-idle` is critical:** - SPAs (React, Vue, Next.js) load content via fetch/XHR after initial HTML - Without waiting, `text` returns empty or incomplete content - `wait-idle` monitors all pending network requests, waits until quiet for 500ms **For pages that load content dynamically after network settles:** ```bash actionbook browser wait-idle actionbook browser wait-fn "document.querySelector('.results')" # Wait for specific element actionbook browser text ".results" ``` ## Complete Workflow > **REMINDER:** Every web access in this workflow MUST use `actionbook browser` commands. > Using `curl`, `wget`, `python requests`, or any other HTTP tool is **strictly forbidden**. > The bash tool should ONLY be used for `actionbook` CLI commands and local file operations (json-ui render, `open`). ### Step 1: Plan Search Strategy Based on the topic, generate 5-8 search queries from different angles: - Core definition / overview - Latest developments / news - Technical details / implementation - Comparisons / alternatives - Expert opinions / analysis - Use cases / applications **Search order — ALWAYS query Actionbook API first, then search:** | Step | Action | Why | |------|--------|-----| | **Step 2 (FIRST)** | **Query Actionbook API** | Get verified selectors for arXiv, ar5iv, and other known sites BEFORE browsing. | | **Step 3 (SECOND)** | **arXiv Advanced Search** | Use Actionbook selectors for multi-field, filtered academic search. | | **Step 4 (THIRD)** | Google / Bing search | Supplement with blogs, news, code, discussions, non-academic sources. | ### Step 2: Query Actionbook API for Selectors (ALWAYS DO THIS FIRST) **BEFORE browsing any URL, query Actionbook's indexed selectors.** ```bash # Search for indexed actions by domain actionbook search "<keywords>" -d "<domain>" # Get detailed selectors for a specific page actionbook get "<domain>:/<path>:<area>" ``` **Pre-indexed sites useful for research:** | Site | area_id | Key Selectors | |------|---------|---------------| | arXiv Advanced Search | `arxiv.org:/search/advanced:default` | **40+ selectors**: field select, term input, category checkboxes, date range filters | | ar5iv paper | `ar5iv.labs.arxiv.org:/html/{paper_id}:default` | `h1.ltx_title_document`, `div.ltx_authors`, `div.ltx_abstract`, `section.ltx_section` | | Google Scholar | `scholar.google.com:/:default` | `#gs_hdr_tsi` (search), `#gs_hdr_tsb` (submit) | | arXiv homepage | `arxiv.org:/:default` | Global search across 2.4M+ articles | **For any URL you plan to visit**, run `actionbook search "<keywords>" -d "<domain>"` to check if it's indexed. ### Step 3: arXiv Search (URL-First, Form as Backup) **LESSON LEARNED: arXiv form submission via browser automation is unreliable. Use URL-based search as the PRIMARY method.** **Option A: URL-based search (PRIMARY — most reliable):** ```bash # Simple keyword search actionbook --block-images --auto-dismiss-dialogs --no-animations browser open "https://arxiv.org/search/?query=large+language+model+agent&searchtype=all" actionbook browser wait-idle actionbook browser text "#main-container" # Advanced URL search with filters # searchtype: all, title, author, abstract # start: result offset (0, 50, 100, ...) actionbook browser open "https://arxiv.org/search/?query=Rust+machine+learning&searchtype=all&start=0" actionbook browser wait-idle actionbook browser text "#main-container" ``` **Search strategy: Start broad, then narrow:** 1. First search: broad terms (e.g., `"Rust" "machine learning"`) — aim for 50+ results 2. If too few results (< 10): broaden further, remove date/category filters 3. If too many results (> 200): add more specific terms, use `searchtype=title` 4. Try 2-3 different query angles (e.g., framework names, use cases, benchmarks) **Option B: Form interaction via batch (BACKUP — use if URL search is insufficient):** ```bash # Open arXiv with research flags actionbook --block-images --auto-dismiss-dialogs --no-animations browser open "https://arxiv.org/search/advanced" actionbook browser wait-idle # Use batch for form — fewer round-trips, more reliable cat <<'EOF' | actionbook browser batch --delay 150 { "actions": [ {"kind": "click", "selector": "#terms-0-field"}, {"kind": "click", "selector": "option[value='title']"}, {"kind": "type", "selector": "#terms-0-term", "text": "large language model agent"}, {"kind": "click", "selector": "#classification-computer_science"}, {"kind": "click", "selector": "#date-filter_by-3"}, {"kind": "type", "selector": "#date-from_date", "text": "2025-01-01"}, {"kind": "type", "selector": "#date-to_date", "text": "2026-02-23"}, {"kind": "click", "selector": "button:has-text('Search'):nth(2)"} ], "stopOnError": true } EOF actionbook browser wait-idle actionbook browser text "#main-container" # If batch form submission fails (page shows form again instead of results): # → Fall back to Option A URL-based search immediately # → Do NOT retry the form — it wastes time ``` **arXiv search capabilities (from indexed selectors — for Option B):** | Capability | Selector | |------------|----------| | Search field (Title/Author/Abstract) | `#terms-0-field` select | | Search term | `#terms-0-term` input | | Add boolean terms | `button "Add another term +"` | | Filter: Computer Science | `#classification-computer_science` | | Filter: Physics, Math, etc. | `#classification-physics`, `#classification-mathematics` | | Date: past 12 months | `#date-filter_by-1` radio | | Date: specific year | `#date-filter_by-2` radio + `#date-year` | | Date: custom range | `#date-filter_by-3` radio + `#date-from_date` / `#date-to_date` |
View on GitHub
This SKILL.md is very large, so SkillsMP previews the first section here. View on GitHub