active-research
深い調査・分析を行うリサーチツールで、あらゆるトピック・技術・論文・ドメインに関する包括的なHTMLレポートを生成します。SPA対応・ネットワーク待機・バッチ処理・ステルスブラウジング・インテリジェントなページ解析など高度なブラウザ自動化機能を搭載しており、ユーザーが特定のテーマについて調査・分析・詳細解説・レポート作成を求めた際に活用してください。
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.
SKILL.md 本文
Active Research
Actionbook Browser を使用して、任意のトピック、ドメイン、論文を分析し、美しい HTML レポートを生成します。SPA 対応ナビゲーション、ネットワークアイドル検出、バッチ操作、インテリジェントなページ分析を備えています。
拡張ブラウザ機能
| 機能 | 説明 |
|---|---|
| Page load wait | wait-idle — fetch/XHR が落ち着くまでネットワークを監視 |
| SPA コンテンツ | wait-fn — 抽出前に JS 条件を待機 |
| ページ理解 | snapshot --filter interactive --max-tokens N — フォーカスされた、予算に優しい |
| ポップアップブロック | --auto-dismiss-dialogs — alert/confirm/prompt を自動処理 |
| 読み込み速度 | --block-images — テキスト抽出を高速化するため画像をスキップ |
| ページ安定性 | --no-animations — CSS トランジションを凍結 |
| エラー検出 | console --level error — ページの問題をチェック |
| 複数ステップフォーム | batch — 1 つの呼び出しで複数のアクションを実行 |
| 要素デバッグ | info <selector> — 表示、位置、プロパティを検査 |
| 変更追跡 | snapshot --diff — 変更箇所のみを表示 |
| アンチ検出 | --stealth + fingerprint rotate — 保護されたサイト向け |
| 認証管理 | storage set — JWT/トークンを注入してゲートコンテンツにアクセス |
| ワンショット取得 | browser fetch <url> — ナビゲート + 待機 + 抽出 + 閉じる を 1 コマンドで |
| 静的ページ速度 | --lite — HTTP 優先、必要な場合のみブラウザフォールバック |
| アンチスクレイプ URL | --rewrite-urls — x.com→xcancel.com、reddit→old.reddit |
| 待機チューニング | --wait-hint — ドメイン対応待機 (fast/normal/slow/heavy) |
| ログ相関 | --session-tag — デバッグ用にすべての操作にタグを付与 |
使用方法
/active-research <topic>
/active-research <topic> --output ./reports/my-report.json
または単純に Claude に「Research XXX and generate a report」と指示してください。
パラメータ
| パラメータ | 必須 | デフォルト | 説明 |
|---|---|---|---|
topic | はい | — | 調査するサブジェクト(任意のテキスト) |
--output | いいえ | ./output/<topic-slug>.json | JSON レポートの出力パス |
トピック検出
| パターン | タイプ | 戦略 |
|---|---|---|
arxiv:XXXX.XXXXX | 論文 | arXiv Advanced Search + ar5iv ディープリード |
doi:10.XXX/... | 論文 | DOI を解決し、arXiv Advanced Search で関連作業を検索 |
| アカデミックキーワード (paper, research, model, algorithm) | アカデミックトピック | arXiv Advanced Search + 非アカデミック源を Google で検索 |
| URL | 特定ページ | ページを取得して分析 |
| 一般的なテキスト | トピック調査 | Google 検索 + 関連性がある場合は arXiv Advanced Search |
アーキテクチャ
┌──────────┐ ┌──────────────┐ ┌──────────────┐ ┌──────────┐
│ 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
└──────────┘ └──────────────┘ └──────────────┘
必須: Actionbook CLI を使用
Web ブラウジング用に常に actionbook browser コマンドを使用してください。他の方法を使用しないでください:
- 決して
curl、wget、httpie、または bash 経由の HTTP CLI ツールを使用しない - 決して
python -c "import requests"または bash 経由のスクリプト言語 HTTP ライブラリを使用しない - 決して WebFetch または WebSearch ツールを使用しない
- のみ
actionbook browserおよびactionbook search/actionbook getコマンドを使用
Web コンテンツが必要な場合、推奨パスは: actionbook browser fetch <url> --format text --json(ワンショット)
インタラクティブなマルチステップワークフローの場合: actionbook browser open <url> → actionbook browser wait-idle → actionbook browser text
ブラウザフラグ — リサーチデフォルト
重要: 研究のためにブラウザを開く場合、常にこれらのフラグを使用してください。
# 推奨: ワンショット取得 (I1) — open + wait + extract + close を自動的に処理
actionbook --block-images --rewrite-urls browser fetch "<url>" --format text --json
# インタラクティブなマルチステップワークフローの場合、明示的な open を使用:
actionbook --block-images --auto-dismiss-dialogs --no-animations --rewrite-urls browser open "<url>"
| フラグ | 理由 |
|---|---|
--block-images | 画像ダウンロードをスキップ — テキスト抽出で 2-5 倍高速 |
--auto-dismiss-dialogs | alert/confirm/prompt がオートメーションをブロックするのを防ぐ |
--no-animations | CSS アニメーションを凍結 — 安定したスナップショット、タイミングの問題なし |
--rewrite-urls | x.com→xcancel.com、reddit→old.reddit を書き直してアンチボット遮断を回避 |
--wait-hint <hint> | ドメイン対応待機: instant、fast、normal、slow、heavy、または ms |
--session-tag <tag> | ログ相関とデバッグ用にすべての操作にタグを付与 |
--lite (fetch のみ) | HTTP を優先、静的ページについてはブラウザをスキップ (Wikipedia、ドキュメント、ブログ) |
アンチボット保護付きサイトの場合、--stealth を追加:
actionbook --block-images --auto-dismiss-dialogs --no-animations --stealth --rewrite-urls browser open "<url>"
ナビゲーションパターン — 常に従う
オプション A: ワンショット取得(読み取り専用ページ抽出に推奨):
# 単一コマンド: ナビゲート → 待機 (ドメイン対応) → 抽出 → 閉じる
actionbook --block-images --rewrite-urls browser fetch "<url>" --format text --json
# 静的ページの場合 (Wikipedia、ドキュメント、ブログ)、--lite を追加してブラウザをスキップ:
actionbook --rewrite-urls browser fetch "<url>" --format text --lite --json
# アクセシビリティツリーの場合:
actionbook --block-images --rewrite-urls browser fetch "<url>" --format snapshot --max-tokens 2000 --json
オプション B: インタラクティブなマルチステップパターン(フォーム、クリック、複数ページフロー用):
# ステップ 1: ナビゲート
actionbook browser open "<url>" # または: goto、リンククリック
# ステップ 2: 読み込み待機 (必須 in v2)
actionbook browser wait-idle # fetch/XHR が落ち着くまで待機
# ステップ 3: コンテンツを抽出
actionbook browser text [selector] # テキストを抽出
# または
actionbook browser snapshot --filter interactive --max-tokens 500 # ページ構造を理解
wait-idle が重要な理由:
- SPA (React、Vue、Next.js) は初期 HTML 後に fetch/XHR 経由でコンテンツを読み込む
- 待機しない場合、
textは空または不完全なコンテンツを返す wait-idleはすべての保留中のネットワークリクエストを監視し、500ms 間静かになるまで待つ
ネットワークが落ち着いた後に動的にコンテンツを読み込むページの場合:
actionbook browser wait-idle
actionbook browser wait-fn "document.querySelector('.results')" # 特定要素を待機
actionbook browser text ".results"
完全なワークフロー
リマインダー: このワークフロー内のすべての web アクセスは
actionbook browserコマンドを使用する必要があります。curl、wget、python requests、または他の HTTP ツールの使用は 厳しく禁止 です。 bash ツールはactionbookCLI コマンドとローカルファイル操作 (json-ui レンダー、open) のみに使用すべきです。
ステップ 1: 検索戦略を計画
トピックに基づいて、異なる角度から 5-8 個の検索クエリを生成:
- コア定義 / 概要
- 最新動向 / ニュース
- 技術的詳細 / 実装
- 比較 / 代替案
- 専門家の意見 / 分析
- ユースケース / アプリケーション
検索順序 — 常に最初に Actionbook API をクエリし、次に検索:
| ステップ | アクション | 理由 |
|---|---|---|
| ステップ 2 (最初) | Actionbook API をクエリ | ブラウジング前に arXiv、ar5iv、およびその他の既知サイトの検証されたセレクターを取得。 |
| ステップ 3 (次) | arXiv Advanced Search | マルチフィールド、フィルタリングされたアカデミック検索に Actionbook セレクターを使用。 |
| ステップ 4 (3 番目) | Google / Bing 検索 | ブログ、ニュース、コード、ディスカッション、非アカデミック源で補完。 |
ステップ 2: Actionbook API をセレクターでクエリ (常に最初に実行)
任意の URL をブラウジングする前に、Actionbook のインデックス付きセレクターをクエリしてください。
# ドメインのインデックス付きアクションを検索
actionbook search "<keywords>" -d "<domain>"
# 特定ページの詳細なセレクターを取得
actionbook get "<domain>:/<path>:<area>"
研究に役立つ事前インデックス付きサイト:
| サイト | area_id | キーセレクター |
|---|---|---|
| arXiv Advanced Search | arxiv.org:/search/advanced:default | 40+ セレクター: フィールド選択、用語入力、カテゴリチェックボックス、日付範囲フィルター |
| 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 (検索)、#gs_hdr_tsb (送信) |
| arXiv homepage | arxiv.org:/:default | 2.4M+ 記事全体の全体検索 |
訪問する予定の任意の URL について, actionbook search "<keywords>" -d "<domain>" を実行してインデックスされているかどうかを確認してください。
ステップ 3: arXiv 検索 (URL 優先、フォームはバックアップ)
学習した教訓: arXiv フォーム送信のブラウザオートメーションは信頼できません。URL ベースの検索を主要な方法として使用してください。
オプション A: URL ベース検索(主要 — 最も信頼できる):
# シンプルなキーワード検索
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"
# フィルター付きの高度な URL 検索
# searchtype: all, title, author, abstract
# start: 結果オフセット (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"
検索戦略: 広くから始めて、次に絞る:
- 最初の検索: 広い用語 (例:
"Rust" "machine learning") — 50+ 結果を目指す - 結果が少ない場合 (< 10): さらに拡大、日付/カテゴリフィルターを削除
- 結果が多すぎる場合 (> 200): より具体的な用語を追加、
searchtype=titleを使用 - 2-3 個の異なるクエリアングルを試す (例: フレームワーク名、ユースケース、ベンチマーク)
オプション B: バッチによるフォーム相互作用(バックアップ — URL 検索が不十分な場合に使用):
# リサーチフラグ付きで arXiv を開く
actionbook --block-images --auto-dismiss-dialogs --no-animations browser open "https://arxiv.org/search/advanced"
actionbook browser wait-idle
# フォーム用にバッチを使用 — より少ないラウンドトリップ、より信頼できる
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"
# バッチフォーム送信が失敗した場合 (ページが結果の代わりにフォームを表示):
# → オプション A URL ベース検索に即座にフォールバック
# → フォームを再試行しない — 時間の無駄
arXiv 検索機能(インデックス付きセレクターから — オプション B 用):
| 機能 | セレクター |
|---|---|
| 検索フィールド (タイトル/著者/要約) | #terms-0-field select |
| 検索用語 | #terms-0-term input |
| ブール用語を追加 | button "Add another term +" |
| フィルター: コンピュータサイエンス | #classification-computer_science |
| フィルター: 物理学、数学など | #classification-physics、#classification-mathematics |
| 日付: 過去 12 か月 | #date-filter_by-1 radio |
| 日付: 特定の年 | #date-filter_by-2 radio + #date-year |
| 日付: カスタム範囲 | #date-filter_by-3 radio + #date-from_date / #date-to_date |
| 概要を表示 | #abstracts-0 radio |
ステップ 4: Google / Bing 検索で補完
# Google 経由で検索 (SPA 結果用に wait-idle を使用)
actionbook browser open "https://www.google.com/search?q=<encoded_query>"
actionbook browser wait-idle
actionbook browser text "#search"
# または Bing 経由で検索
actionbook browser open "https://www.bing.com/search?q=<encoded_query>"
actionbook browser wait-idle
actionbook browser text "#b_results"
検索結果を解析して URL を抽出してください。発見した各 URL について、Actionbook API をクエリしてインデックスされているかどうかを確認してください。
重要: URL 処理ルール(本番環境の使用から学習)
-
検索スニペットから URL を手動で構築しない。 多くの Google スニペット URL は切り詰められているか再フォーマットされています。代わりに:
actionbook browser snapshot --filter interactiveを使用して実際のリンク要素を検索- リンクを直接クリック:
actionbook browser click "a[href*='domain.com']" - またはスナップショット参照から href を抽出
-
URL の 20-30% が無効になることを予想してください。 実際には、20 個中約 5 個が 404 を返します。これに対処:
actionbook browser open "<url>" actionbook browser wait-idle # ページが 404 またはエラーページかどうかを確認 actionbook browser wait-fn "!document.title.includes('404') && !document.title.includes('Not Found')" --timeout 3000 # タイムアウト → ページが無効、即座にスキップ。再試行しない。 -
Google スニペットから情報を救出。 URL が無効だが Google スニペットに有用な情報があった場合:
- 既に抽出したスニペットテキストは有効なデータ です
- ソースが利用できなくなったというメモ付きでレポートで使用
- 同じコンテンツを代替サイトで検索 (archive.org、キャッシュ版)
-
4 個以上の多様な検索クエリを使用。 1 つの検索アングルに頼らない:
- クエリ 1: コアトピック概要 (例: "Rust AI ecosystem 2026")
- クエリ 2: 特定フレームワーク/ツール (例: "Candle vs Burn Rust ML framework")
- クエリ 3: ユースケース/ベンチマーク (例: "Rust LLM inference performance benchmark")
- クエリ 4: 最新ニュース/展開 (例: "Rust machine learning latest 2026")
- クエリ 5: コミュニティ/エコシステム (例: "Rust AI agent framework comparison")
ステップ 5: ソースをディープリード
推奨: ワンショットページ抽出用に browser fetch を使用(wait + extract + cleanup を処理):
# クイックテキスト抽出(最も一般的)
actionbook --block-images --rewrite-urls browser fetch "<url>" --format text --json
# 静的ページ (Wikipedia、ドキュメント、ブログ) — ブラウザを完全にスキップ
actionbook --rewrite-urls browser fetch "<url>" --format text --lite --json
# ページ構造分析
actionbook --block-images --rewrite-urls browser fetch "<url>" --format snapshot --max-tokens 2000 --json
# LLM コンテキスト管理用トークン予算付き
actionbook --block-images --rewrite-urls browser fetch "<url>" --format text --max-tokens 4000 --json
インタラクティブワークフロー (フォーム、クリック) の場合、マルチステップにフォールバック:
actionbook browser open "<url>"
actionbook browser wait-idle # 必須: ネットワーク待機
actionbook browser text # フルページテキスト (フォールバック)
actionbook browser text "<selector>" # インデックス付きセレクターがある場合は使用
ページコンテンツが不完全に見える場合、デバッグ:
# レンダリングをブロックする可能性のある JS エラーをチェック
actionbook browser console --level error
# 特定要素が存在するかどうかをチェック
actionbook browser wait-fn "document.querySelector('.content')" --timeout 5000
# 要素プロパティを検査
actionbook browser info ".content"
arXiv 論文の場合, この順序でソースを試す:
# 1. arXiv 概要(最も信頼できる) — fetch を使用
actionbook --block-images browser fetch "https://arxiv.org/abs/<arxiv_id>" --format text --json
# 2. HuggingFace papers ページ
actionbook --block-images browser fetch "https://huggingface.co/papers/<arxiv_id>" --format text --json
# 3. ar5iv HTML(構造化されているが新しい論文では失敗) — 静的 HTML に --lite を使用
actionbook browser fetch "https://ar5iv.org/html/<arxiv_id>" --format text --lite --json
# 注記: コンテンツが短すぎる場合、ar5iv がレンダリングしなかった。フォールバック。
# 4. GitHub リポジトリ(検索結果から) — fetch を使用
actionbook --block-images browser fetch "<github_repo_url>" --format text --json
保護されたサイト (Cloudflare、ボット検出) の場合 — stealth 付きインタラクティブモードを使用:
actionbook --stealth --block-images --auto-dismiss-dialogs --rewrite-urls browser open "<protected_url>"
actionbook browser wait-idle
actionbook browser text
モバイル限定コンテンツの場合:
actionbook browser emulate iphone-14
actionbook browser open "<url>"
actionbook browser wait-idle
actionbook browser text
Google Scholar の場合(Actionbook でインデックス付き):
actionbook browser open "https://scholar.google.com"
actionbook browser wait-idle
actionbook browser click "#gs_hdr_tsi"
actionbook browser type "#gs_hdr_tsi" "<query>"
actionbook browser click "#gs_hdr_tsb"
actionbook browser wait-idle
actionbook browser text "#gs_res"
インデックスなしのサイトの場合, スナップショットを使用して構造を発見:
actionbook --block-images browser fetch "<url>" --format snapshot --max-tokens 800 --json
ステップ 6: 調査結果を合成
収集した情報を首尾一貫したレポートに整理:
- 概要 / エグゼクティブサマリー
- 主要な発見
- 詳細分析
- サポートデータ / エビデンス
- 含意 / 重要性
- ソース
ステップ 7: json-ui JSON レポートを生成
@actionbookdev/json-ui スキーマに従う JSON ファイルを作成してください。Write ツールを使用。
出力パス: ./output/<topic-slug>.json (またはユーザー指定の --output パス)
ステップ 8: HTML をレンダー
重要: すべてのフォールバック方法を試す必要があります。最初の失敗で止まらないでください。
重要: JSON_FILE と HTML_FILE に絶対パスを常に使用してください。
各方法を 1 つずつ試し、いずれかが成功するまで続行:
# 方法 1: モノレポ絶対パス (actionbook プロジェクト内の場合が最も信頼できる)
node "$(git rev-parse --show-toplevel)/packages/json-ui/dist/cli.js" render /absolute/path/to/report.json -o /absolute/path/to/report.html
# 方法 2: グローバルインストール (ユーザーが `cd packages/json-ui && npm link` を実行した場合)
json-ui render /absolute/path/to/report.json -o /absolute/path/to/report.html
# 方法 3: npx (npm に発行されている場合)
npx @actionbookdev/json-ui render /absolute/path/to/report.json -o /absolute/path/to/report.html
静かに諦めないでください。 すべての方法が失敗した場合、ユーザーに通知:
- JSON レポートは
<path>に保存されている - HTML レンダリングを有効にするには:
cd <actionbook-repo>/packages/json-ui && npm linkを実行
ステップ 9: ブラウザで開く
# macOS
open <report.html>
# Linux
xdg-open <report.html>
ステップ 10: ブラウザを閉じる
完了したら常にブラウザを閉じてください:
actionbook browser close
エラー復旧パターン
高度なブラウザ機能を使用したインテリジェントなエラー復旧:
パターン: ページ読み込み失敗
# 1. ページを開く
actionbook browser open "<url>"
actionbook browser wait-idle --timeout 15000
# 2. JS エラーをチェック
actionbook browser console --level error
# エラーが見つかった場合 → ページが破損している、スキップ
# 3. コンテンツがレンダリングされたかどうかをチェック
actionbook browser wait-fn "document.body.innerText.length > 100" --timeout 5000
# タイムアウト → コンテンツがレンダリングされなかった、フォールバックを試す
パターン: セレクターが見つからない
# 1. スナップショットを使用して実際のページ構造を発見
actionbook browser snapshot --filter interactive --max-tokens 800
# 2. または特定の領域を検査
actionbook browser info "<parent_selector>"
# 返すもの: 推奨セレクター、表示、タグ情報
# 3. セレクターを調整して再試行
パターン: アンチボット検出
# 1. 初期負荷が CAPTCHA またはアクセス拒否を返す場合:
actionbook browser close
# 2. stealth で再度開く
actionbook --stealth --no-animations --auto-dismiss-dialogs browser open "<url>"
actionbook browser wait-idle
# 3. それでもブロックされている場合、フィンガープリントをローテート
actionbook browser fingerprint rotate --os windows
actionbook browser open "<url>"
actionbook browser wait-idle
パターン: SPA コンテンツが読み込まれない
# 1. ネットワークを待つ
actionbook browser wait-idle --idle-time 1000 --timeout 15000
# 2. 特定の要素を待つ
actionbook browser wait-fn "document.querySelector('.results')" --timeout 10000
# 3. それでも空の場合、コンソールを確認
actionbook browser console --level error
# 4. 読み込みトリガーをクリックしてみる
actionbook browser snapshot --filter interactive --max-tokens 300
# 「Load More」「Show Results」などを探す
フル エラー処理リファレンス
| エラー | 復旧戦略 |
|---|---|
| ブラウザが開かない | actionbook browser status、再試行 + console --level error をチェック |
| ページ読み込みタイムアウト | wait-idle --timeout 15000、次に console --level error で診断 |
| URL が 404 を返す | wait-fn "!document.title.includes('404')" で高速に検出。即座にスキップ、再試行しない。 Google スニペットテキストをバックアップデータとして使用。 |
| arXiv フォーム送信が失敗 | URL ベース検索にフォールバック: arxiv.org/search/?query=...&searchtype=all |
| ar5iv コンテンツが切り詰められた | arxiv 概要 + wait-fn "document.body.innerText.length > 5000" にフォールバックして検証 |
| セレクターが見つからない | snapshot --filter interactive で実際の構造を発見 |
| 動的コンテンツが不足 | 特定条件について wait-idle + wait-fn |
| Alert ポップアップがブロック | --auto-dismiss-dialogs が完全に防ぐ |
| アンチボット検出 | --stealth + fingerprint rotate |
| 遅いメディア集約ページ | テキスト抽出を高速化するため --block-images または --block-media |
| CSS アニメーション干渉 | --no-animations がすべてのトランジションを凍結 |
| json-ui レンダークラッシュ | MetricsGrid をチェック — suffix/value は平文字列である必要がある |
npx json-ui 404 | すべての 3 つの方法を試す (モノレポ、グローバル、npx) |
| 検索結果がない | 広く開始 (50+ 結果)、次に絞る。4 個以上のクエリアングルを使用。 |
重要: エラーでも、完了する前に常に actionbook browser close を実行してください。
機能使用チェックリスト
リサーチを最終化する前に、これらの機能を使用したことを確認してください:
| 機能 | いつ使用するか | チェック |
|---|---|---|
browser fetch | 読み取り専用ページ抽出 (open + wait + text より推奨) | ほとんどのページ読み取りに使用 |
--lite | 静的ページ (Wikipedia、ドキュメント、ブログ) — ブラウザをスキップ | 静的サイトへの fetch に追加 |
--rewrite-urls | 常に (x.com、reddit のアンチボットを回避) | ブラウザ起動時に設定 |
--wait-hint | ドメイン対応待機チューニング (fast/slow/heavy) | fetch またはマニュアルフロー時に使用 |
--session-tag | ログ相関が必要なマルチステップ操作 | デバッグセッション用に設定 |
wait-idle | すべての open/goto/click 後に(ナビゲーションをトリガー) | 各ページで使用する必須 |
--block-images | 常に (リサーチは画像が不要) | ブラウザ起動時に設定 |
--auto-dismiss-dialogs | 常に (ブロックを防ぐ) | ブラウザ起動時に設定 |
--no-animations | 常に (安定したスナップショット) | ブラウザ起動時に設定 |
wait-fn | コンテンツがネットワーク後に非同期で読み込まれる場合 | SPA、動的ページで使用 |
console --level error | ページコンテンツが不完全または破損したように見える場合 | デバッグに使用 |
batch | マルチステップフォーム入力時 (arXiv、Google Scholar) | 5 個以上の順序コマンドを置き換え |
snapshot --filter interactive | 未知のページ構造を発見する場合 | インデックスなしサイトで使用 |
info <selector> | click/type が期待どおりに機能しない場合 | 要素表示をデバッグ |
--stealth | サイトが CAPTCHA またはアクセス拒否を返す場合 | 再試行時に追加 |
避けるべき一般的なミス:
browser fetchで完了する場合のマニュアルopen → wait-idle → text → closeの使用- 静的ページで
--liteを使用しない (Wikipedia、ドキュメント、ブログ) — 5-10s ブラウザ起動を無駄に --rewrite-urlsを使用しない — x.com と reddit.com には攻撃的なアンチボット防衛- インタラクティブモードでナビゲーション後
wait-idleを忘れる (コンテンツが空に見える) - フォーム相互作用に
batchを使用しない (遅い、信頼できない) - 無効な URL を再試行する代わりにスキップしない
- 検索スニペットからの URL を手動で構築する代わりにリンクをクリック
- 1 つの検索クエリアングルのみを使用 (常に 4 個以上の多様なクエリを使用)
- コンテンツを抽出する前に 404 ページをチェックしない
json-ui レポートテンプレート
重要: 常に BrandHeader と BrandFooter を含めてください。
{
"type": "Report",
"props": { "theme": "auto" },
"children": [
{
"type": "BrandHeader",
"props": {
"badge": "Deep Research Report",
"poweredBy": "Actionbook"
}
},
{
"type": "Section",
"props": { "title": "Overview", "icon": "paper" },
"children": [
{
"type": "Prose",
"props": {
"content": "トピックの概要..."
}
}
]
},
{
"type": "Section",
"props": { "title": "Key Findings", "icon": "star" },
"children": [
{
"type": "ContributionList",
"props": {
"items": [
{
"badge": "Finding",
"title": "...",
"description": "..."
}
]
}
}
]
},
{
"type": "Section",
"props": { "title": "Detailed Analysis", "icon": "bulb" },
"children": [
{
"type": "Prose",
"props": { "content": "..." }
}
]
},
{
"type": "Section",
"props": { "title": "Key Metrics", "icon": "chart" },
"children": [
{
"type": "MetricsGrid",
"props": { "metrics": [], "cols": 3 }
}
]
},
{
"type": "Section",
"props": { "title": "Sources", "icon": "link" },
"children": [
{
"type": "LinkGroup",
"props": { "links": [] }
}
]
},
{
"type": "BrandFooter",
"props": {
"timestamp": "YYYY-MM-DDTHH:MM:SSZ",
"attribution": "Powered by Actionbook",
"disclaimer": "This report was generated by AI using web sources. Verify critical information independently."
}
}
]
}
論文レポートテンプレート (arXiv 論文向け)
アカデミック論文を分析する場合、以下を含むより豊かなテンプレートを使用:
PaperHeader(タイトル、arxivId、日付、カテゴリー)AuthorList(所属付きの著者)Abstract(キーワードハイライト付き)ContributionList(主要な貢献)MethodOverview(ステップバイステップの方法)ResultsTable(実験結果)Formula(主要な方程式、LaTeX)Figure(ar5iv からの論文図)
利用可能な json-ui コンポーネント
| コンポーネント | 用途 | キープロップス |
|---|---|---|
BrandHeader | レポートヘッダー | badge、poweredBy |
PaperHeader | 論文メタデータ | title、arxivId、date、categories |
AuthorList | 著者 | authors: [{name, affiliation}]、maxVisible |
Section | 主要セクション | title、icon (paper/star/bulb/chart/code/link/info/warning) |
Prose | リッチテキスト | content (太字、斜体、code、リスト対応) |
Abstract | 概要テキスト | text、highlights: ["keyword"] |
ContributionList | 番号付き調査結果 | items: [{badge, title, description}] |
MethodOverview | ステップバイステップ | steps: [{step, title, description}] |
MetricsGrid | 主要統計 | metrics: [{label, value, trend, suffix}]、cols |
ResultsTable | データテーブル | columns、rows、highlights: [{row, col}] |
Table | 汎用テーブル | columns: [{key, label}]、rows、striped、compact |
Callout | 情報/ティップ/警告 | type (info/tip/warning/important/note)、title、content |
Highlight | ブロッククォート | type (quote/important/warning/code)、text、source |
KeyPoint | 主要調査結果カード | icon、title、description、variant |
CodeBlock | コードスニペット | code、language、title、showLineNumbers |
Formula | LaTeX 方程式 | latex、block、label |
Figure | 画像 | images: [{src, alt, width}]、label、caption |
Image | 単一画像 | src、alt、caption、width |
DefinitionList | 用語/定義 | items: [{term, definition}] |
LinkGroup | ソースリンク | links: [{href, label, icon}] |
Grid | グリッドレイアウト | cols、children |
Card | カードコンテナ | padding (sm/md/lg)、shadow |
TagList | タグ | tags: [{label, color, href}] |
BrandFooter | フッター | timestamp、attribution、disclaimer |
json-ui 既知のピットフォール
| ピットフォール | 症状 | 修正 |
|---|---|---|
MetricsGrid.suffix オブジェクトとして | text.replace is not a function | suffix は 平文字列 である必要がある |
MetricsGrid.value を数字として | レンダーエラー | value は 文字列 である必要がある (例: "58.5" ではなく 58.5) |
BrandHeader/BrandFooter がない | レポートが破損して見える | 常に両方を含める |
Table 行値がオブジェクトとして | セルの [object Object] | 行セル値は 平文字列 である必要がある |
| 非常に長い Prose コンテンツ | 切り詰められたレンダー | 複数の Prose ブロックに分割するか、サブセクションを使用 |
テキストフィールド
すべてのテキストフィールドは 平英文字列 を使用する必要があります。
{ "title": "Key Findings" }
注記: MetricsGrid プロップス value および suffix、ならびに Table 行セル値は常に平文字列である必要があります。
アカデミック論文サポート
arXiv 論文
ar5iv.org HTML(読むのに推奨、ただし 3 か月未満の論文では不完全なことが多い):
| 要素 | セレクター | 信頼性 | フォールバック |
|---|---|---|---|
| タイトル | h1.ltx_title_document | 高 | div.ltx_abstract |
| 著者 | div.ltx_authors | 高 | — |
| 概要 | div.ltx_abstract | 高 | — |
| 完全な記事 | article | 中 | セクションセレクターが失敗した場合に使用 |
| セクション | section.ltx_section | 新しい論文では低 | article |
| 図 | figure.ltx_figure | 中 | — |
| テーブル | table.ltx_tabular | 中 | — |
推奨アプローチ: wait-idle + wait-fn を使用して ar5iv コンテンツが読み込まれたことを確認:
actionbook browser open "https://ar5iv.org/html/<arxiv_id>"
actionbook browser wait-idle --timeout 15000
actionbook browser wait-fn "document.body.innerText.length > 5000" --timeout 10000
# wait-fn がタイムアウト → コンテンツがレンダリングされなかった、他のソースにフォールバック
推奨ソース優先度
| 優先度 | ソース | 取得できるもの | 信頼性 |
|---|---|---|---|
| 1 | arxiv.org/abs/<id> | 概要、メタデータ、送信履歴 | 非常に高 |
| 2 | huggingface.co/papers/<id> | 概要、コミュニティ、関連モデル | 非常に高 |
| 3 | GitHub リポジトリ | README、コード、モデル動物園 | 高 |
| 4 | HuggingFace モデルカード | トレーニング、レシピ、ベンチマーク | 高 |
| 5 | ar5iv.org/html/<id> | 完全な論文 HTML | 中 |
| 6 | Google Scholar / Semantic Scholar | 引用、関連作業 | 中 |
その他のアカデミックソース
- Google Scholar (
scholar.google.com) — Actionbook でインデックス付き - Semantic Scholar (
semanticscholar.org) - Papers With Code (
paperswithcode.com) - 学会議事録サイト
品質ガイドライン
- 幅広さ: 3-5 個の多様なソースから調査
- 深さ: スニペットではなく、完全な記事を読む
- 正確性: ソース全体で事実をクロスリファレンス
- 構造: 各コンテンツタイプに適切な json-ui コンポーネントを使用
- 帰属: レポートにソースリンクを常に含める
- 新鮮さ: 関連性が等しい場合は最近のソースを優先
ライセンス: Apache-2.0(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- actionbook
- ライセンス
- Apache-2.0
- 最終更新
- 不明
Source: https://github.com/actionbook/actionbook / ライセンス: Apache-2.0
関連スキル
doubt-driven-development
重要な判断はすべて、本番環境への展開前に新しい視点から対抗的レビューを実施します。速度より正確性が重要な場合、不慣れなコードを扱う場合、本番環境・セキュリティに関わるロジック・取り消し不可の操作など影響度が高い場合、または後でバグを修正するよりも今検証する方が効率的な場合に活用してください。
apprun-skills
TypeScriptを使用したAppRunアプリケーションのMVU設計に関する総合的なガイダンスが得られます。コンポーネントパターン、イベントハンドリング、状態管理(非同期ジェネレータを含む)、パラメータと保護機能を備えたルーティング・ナビゲーション、vistestを使用したテストに対応しています。AppRunコンポーネントの設計・レビュー、ルートの配線、状態フローの管理、AppRunテストの作成時に活用してください。
desloppify
コードベースのヘルスチェックと技術負債の追跡ツールです。コード品質、技術負債、デッドコード、大規模ファイル、ゴッドクラス、重複関数、コードスメル、命名規則の問題、インポートサイクル、結合度の問題についてユーザーが質問した場合に使用してください。また、ヘルススコアの確認、次の改善項目の提案、クリーンアップ計画の作成をリクエストされた際にも対応します。29言語に対応しています。
debugging-and-error-recovery
テストが失敗したり、ビルドが壊れたり、動作が期待と異なったり、予期しないエラーが発生したりした場合に、体系的な根本原因デバッグをガイドします。推測ではなく、根本原因を見つけて修正するための体系的なアプローチが必要な場合に使用してください。
test-driven-development
テスト駆動開発により実装を進めます。ロジックの実装、バグの修正、動作の変更など、あらゆる場面で活用できます。コードが正常に動作することを証明する必要がある場合、バグ報告を受けた場合、既存機能を修正する予定がある場合に使用してください。
incremental-implementation
変更を段階的に実施します。複数のファイルに影響する機能や変更を実装する場合に使用してください。大量のコードを一度に書こうとしている場合や、タスクが一度では完結できないほど大きい場合に活用します。