Home/Science & Research/active-research
A

active-research

by @actionbookv
4.3(20)

Deep research and analysis tool capable of generating comprehensive HTML reports, aiding in complex information exploration.

research-methodologyinformation-gatheringcritical-thinkingdata-synthesisacademic-researchGitHub
Installation
npx skills add actionbook/actionbook --skill active-research
compare_arrows

Before / After Comparison

1
Before

Traditional research methods are time-consuming and laborious, making it difficult to conduct comprehensive analysis of complex topics in a short period. Information fragmentation and low report generation efficiency affect decision quality and response speed.

After

Utilizing this skill enables deep research and analysis, and automatically generates comprehensive HTML reports. Quickly gain multi-dimensional insights, significantly improve research efficiency, and provide strong support for decision-making.

SKILL.md

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

CapabilityDescription
Page load waitwait-idle — monitors fetch/XHR until network settles
SPA contentwait-fn — wait for JS conditions before extracting
Page understandingsnapshot --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 detectionconsole --level error — check for page issues
Multi-step formsbatch — execute multiple actions in one call
Element debugginginfo <selector> — inspect visibility, position, properties
Change trackingsnapshot --diff — only see what changed
Anti-detection--stealth + fingerprint rotate for protected sites
Auth managementstorage set — inject JWT/tokens for gated content
One-shot fetchbrowser 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

ParameterRequiredDefaultDescription
topicYes-The subject to research (any text)
--outputNo./output/<topic-slug>.jsonOutput path for JSON report

Topic Detection

PatternTypeStrategy
arxiv:XXXX.XXXXXPaperarXiv Advanced Search + ar5iv deep read
doi:10.XXX/...PaperResolve DOI, then arXiv Advanced Search for related work
Academic keywords (paper, research, model, algorithm)Academic topicarXiv Advanced Search + Google for non-academic sources
URLSpecific pageFetch and analyze the page
General textTopic researchGoogle 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-idleactionbook browser text.

Browser Flags — Research Defaults

CRITICAL: Always use these flags when opening the browser for research.

# 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>"
FlagWhy
--block-imagesSkip image downloads — 2-5x faster page load for text extraction
--auto-dismiss-dialogsPrevent alert/confirm/prompt from blocking automation
--no-animationsFreeze CSS animations — stable snapshots, no timing issues
--rewrite-urlsRewrite 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:

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):

# 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):

# 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:

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:

StepActionWhy
Step 2 (FIRST)Query Actionbook APIGet verified selectors for arXiv, ar5iv, and other known sites BEFORE browsing.
Step 3 (SECOND)arXiv Advanced SearchUse Actionbook selectors for multi-field, filtered academic search.
Step 4 (THIRD)Google / Bing searchSupplement 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.

# 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:

Sitearea_idKey Selectors
arXiv Advanced Searcharxiv.org:/search/advanced:default40+ selectors: field select, term input, category checkboxes, date range filters
ar5iv paperar5iv.labs.arxiv.org:/html/{paper_id}:defaulth1.ltx_title_document, div.ltx_authors, div.ltx_abstract, section.ltx_section
Google Scholarscholar.google.com:/:default#gs_hdr_tsi (search), #gs_hdr_tsb (submit)
arXiv homepagearxiv.org:/:defaultGlobal 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):

# 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):

# 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):

CapabilitySelector
Search field (Title/Author/Abstract)#terms-0-field select
Search term#terms-0-term input
Add boolean termsbutton "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
Show abstracts#abstracts-0 radio

Step 4: Supplement with Google / Bing Search

# Search via Google (with wait-idle for SPA results)
actionbook browser open "https://www.google.com/search?q=<encoded_query>"
actionbook browser wait-idle
actionbook browser text "#search"

# Or search via Bing
actionbook browser open "https://www.bing.com/search?q=<encoded_query>"
actionbook browser wait-idle
actionbook browser text "#b_results"

Parse search results to extract URLs. For each discovered URL, query Actionbook API to check if indexed.

CRITICAL: URL Handling Rules (Learned from Production Use)

  1. NEVER manually construct URLs from search snippets. Many Google snippet URLs are truncated or reformatted. Instead:

    • Use actionbook browser snapshot --filter interactive to find actual link elements
    • Click the link directly: actionbook browser click "a[href*='domain.com']"
    • Or extract href from snapshot refs
  2. Expect 20-30% of URLs to be dead. In practice, ~5 out of 20 URLs return 404. Handle this:

    actionbook browser open "<url>"
    actionbook browser wait-idle
    # Check if the page is a 404 or error page
    actionbook browser wait-fn "!document.title.includes('404') && !document.title.includes('Not Found')" --timeout 3000
    # If timeout → page is dead, skip immediately. Do NOT retry.
    
  3. Salvage info from Google snippets. If a URL is dead but the Google snippet had useful info:

    • The snippet text you already extracted IS valid data
    • Use it in the report with a note that the source is no longer available
    • Search for the same content on alternative sites (archive.org, cached versions)
  4. Use 4+ diverse search queries. Don't rely on one search angle:

    • Query 1: Core topic overview (e.g., "Rust AI ecosystem 2026")
    • Query 2: Specific frameworks/tools (e.g., "Candle vs Burn Rust ML framework")
    • Query 3: Use cases/benchmarks (e.g., "Rust LLM inference performance benchmark")
    • Query 4: Recent news/developments (e.g., "Rust machine learning latest 2026")
    • Query 5: Community/ecosystem (e.g., "Rust AI agent framework comparison")

Step 5: Deep Read Sources

PREFERRED: Use browser fetch for one-shot page extraction (handles wait + extract + cleanup):

# Quick text extraction (most common)
actionbook --block-images --rewrite-urls browser fetch "<url>"

...

User Reviews (0)

Write a Review

Effect
Usability
Docs
Compatibility

No reviews yet

Statistics

Installs1.6K
Rating4.3 / 5.0
Version
Updated2026年5月20日
Comparisons1

User Rating

4.3(20)
5
15%
4
45%
3
35%
2
5%
1
0%

Rate this Skill

0.0

Compatible Platforms

🔧Claude Code
🔧OpenClaw
🔧OpenCode
🔧Codex
🔧Gemini CLI
🔧GitHub Copilot
🔧Amp
🔧Kimi CLI

Timeline

Created2026年3月16日
Last Updated2026年5月20日