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.
What this skill does
# 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
- URelated in Web Dev
generating-lwc-components
IncludedLightning Web Components with PICKLES methodology and 165-point scoring. Use this skill when the user creates or edits LWC components, builds wire service patterns, or writes Jest tests for LWC. TRIGGER when: user creates/edits LWC components, touches lwc/**/*.js, .html, .css, .js-meta.xml files, or asks about wire service, SLDS, or Jest LWC tests. DO NOT TRIGGER when: Apex classes (use generating-apex), Aura components, or Visualforce.
tanstack-query
IncludedManage server state in React with TanStack Query v5. Set up queries with useQuery, mutations with useMutation, configure QueryClient caching strategies, implement optimistic updates, and handle infinite scroll with useInfiniteQuery. Use when: setting up data fetching in React projects, migrating from v4 to v5, or fixing object syntax required errors, query callbacks removed issues, cacheTime renamed to gcTime, isPending vs isLoading confusion, keepPreviousData removed problems.
document-processor-api
IncludedProcess documents with Nutrient DWS. Use when the user wants to generate PDFs from HTML or URLs, convert Office/images/PDFs, assemble or split packets, OCR scans, extract text/tables/key-value pairs, redact PII, watermark, sign, fill forms, optimize PDFs, or produce compliance outputs like PDF/A or PDF/UA. Triggers include convert to PDF, merge these PDFs, OCR this scan, extract tables, redact PII, sign this PDF, make this PDF/A, or linearize for web delivery.
nutrient-document-processing
IncludedProcess documents with Nutrient DWS. Use when the user wants to generate PDFs from HTML or URLs, convert Office/images/PDFs, assemble or split packets, OCR scans, extract text/tables/key-value pairs, redact PII, watermark, sign, fill forms, optimize PDFs, or produce compliance outputs like PDF/A or PDF/UA. Triggers include convert to PDF, merge these PDFs, OCR this scan, extract tables, redact PII, sign this PDF, make this PDF/A, or linearize for web delivery.
tanstack-query
IncludedManage server state in React with TanStack Query v5. Covers useMutationState, simplified optimistic updates, throwOnError, network mode (offline/PWA), and infiniteQueryOptions. Use when setting up data fetching, fixing v4→v5 migration errors (object syntax, gcTime, isPending, keepPreviousData), or debugging SSR/hydration issues with streaming server components.
accelint-nextjs-best-practices
IncludedNext.js performance optimization and best practices. Use when writing Next.js code (App Router or Pages Router); implementing Server Components, Server Actions, or API routes; optimizing RSC serialization, data fetching, or server-side rendering; reviewing Next.js code for performance issues; fixing authentication in Server Actions; or implementing Suspense boundaries, parallel data fetching, or request deduplication.