deep-research について
deep-researchは、トピックや学術論文、Webページを調査し、構造化されたJSONレポートとHTMLを生成するClaudeスキルです。Actionbookのブラウザー自動化を使って検索とページ分析を行います。
主な機能
- 01トピックと論文の調査
- 02arXivの高度な検索
- 03複数ソースのページ分析
- 04JSONレポートの生成
- 05HTMLレポートの描画
活用シーン
- 01学術論文の調査
- 02複数ソースによるトピック調査
- 03バイリンガルレポートの作成
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ actionbook/ actionbook --skill deep-researchインストール後、Claude Code で/deep-researchを入力して読み込まれたか確認します。
詳細
ディープリサーチ
Actionbook のブラウザー自動化と json-ui のレンダリングを使用して、あらゆるトピック、分野、論文を分析し、美しい HTML レポートを生成します。
使い方
/deep-research:analyze <topic>
/deep-research:analyze <topic> --lang zh
/deep-research:analyze <topic> --output ./reports/my-report.json
または、Claude に「XXX を深く調査してレポートを生成して」/「XXX を調査してレポートを生成して」と伝えるだけです。
パラメーター
| パラメーター | 必須 | デフォルト | 説明 |
|---|---|---|---|
topic | はい | - | 調査する対象(任意のテキスト) |
--lang | いいえ | both | 言語:en、zh、または both(バイリンガル) |
--output | いいえ | ./output/<topic-slug>.json | JSON レポートの出力先 |
トピックの検出
| パターン | 種類 | 戦略 |
|---|---|---|
arxiv:XXXX.XXXXX | 論文 | arXiv Advanced Search(ステップ 2b)+ ar5iv による詳細な読み込み |
doi:10.XXX/... | 論文 | DOI を解決してから、関連研究を arXiv Advanced Search で検索 |
| 学術関連のキーワード(paper、research、model、algorithm) | 学術トピック | arXiv Advanced Search(ステップ 2b)+学術以外の情報源を Google で検索 |
| URL | 特定のページ | ページを取得して分析 |
| 一般的なテキスト | トピック調査 | Google 検索+関連する場合は arXiv Advanced Search |
アーキテクチャ
┌──────────┐ ┌──────────────┐ ┌──────────────┐ ┌──────────┐
│ Claude │────▶│ Actionbook │────▶│ Web Pages │────▶│ Extract │
│ Code │ │ Browser CLI │ │ (multiple) │ │ Content │
└──────────┘ └──────────────┘ └──────────────┘ └─────┬────┘
│ │
│ ┌──────────────┐ ┌──────────────┐ │
├─────────▶│ Actionbook │ │ arXiv Adv. │ │
│ │ search/get │────▶│ Search Form │──────────▶│
│ │ (selectors) │ │ (40+ fields) │ │
│ └──────────────┘ └──────────────┘ │
│ │
│ Actionbook indexes arXiv form selectors, │
│ enabling field-specific, filtered academic │
│ searches that WebFetch/WebSearch CANNOT do. │
│ │
┌──────────┐ ┌──────────────┐ ┌──────────────┐ │
│ Open in │◀────│ json-ui │◀────│ Write JSON │◀──────────┘
│ Browser │ │ render │ │ Report │ Synthesize
└──────────┘ └──────────────┘ └──────────────┘
WebFetch/WebSearch ではなく Actionbook を使う理由
| 機能 | Actionbook | WebFetch/WebSearch |
|---|---|---|
| 複雑なウェブフォーム(ドロップダウン、チェックボックス、日付選択)を操作 | はい — インデックス化されたセレクターを使用 | いいえ |
| arXiv:著者、タイトル、要約を個別に指定して検索 | はい — #terms-0-field セレクト | いいえ — キーワードのみ |
| arXiv:分野(CS、Physics、Math など)で絞り込み | はい — カテゴリーのチェックボックス | いいえ |
| arXiv:期間または特定の年で絞り込み | はい — 日付入力欄 | いいえ |
| 検証済みのセレクターでページを読み込み(推測不要) | はい — actionbook get | いいえ — 生の HTML を解析 |
| インデックス化されたサイトの UI を操作 | はい — クリック、入力、選択 | いいえ — 読み取り専用 |
これが調査における Actionbook の中核的な価値です。ウェブフォームを、AI エージェント向けの構造化されたプログラム可能なインターフェースに変換します。
Actionbook CLI を必ず使用する
ウェブ閲覧には常に actionbook browser コマンドを使用してください。WebFetch や WebSearch は使用しないでください。
actionbook browser open <url> # Navigate to page
actionbook browser snapshot # Get accessibility tree
actionbook browser text [selector] # Extract text content
actionbook browser screenshot [path] # Capture visual
actionbook browser click <selector> # Click element
actionbook browser close # Close browser (ALWAYS do this at end)
完全なワークフロー
ステップ 1:検索戦略を立てる
トピックに基づいて、さまざまな観点から 5~8 件の検索クエリを作成します。
- 中核となる定義/概要
- 最新の動向/ニュース
- 技術的な詳細/実装
- 比較/代替手段
- 専門家の意見/分析
- ユースケース/応用
検索順序 — 必ず Actionbook API に問い合わせてから検索します。
| ステップ | アクション | 理由 |
|---|---|---|
| ステップ 2(最初) | Actionbook API に問い合わせる | 閲覧を始める前に、arXiv Advanced Search フォーム、ar5iv の論文、その他の既知のサイトについて、検証済みのセレクターを取得します。これが以降のすべてのステップの土台になります。 |
| ステップ 3(2 番目) | arXiv Advanced Search | ステップ 2 で取得した Actionbook のセレクターを使用して、複数のフィールドや条件で絞り込んだ学術検索を実行します。学術以外のトピックでも、関連する論文が見つかることはよくあります。 |
| ステップ 4(3 番目) | Google/Bing 検索 | ブログ、ニュース、コード、ディスカッションなど、学術以外の情報源を補足します。 |
重要: まず必ず Actionbook API に問い合わせ(ステップ 2)、セレクターを取得してから、arXiv Advanced Search(ステップ 3)で使用してください。これが、Actionbook を活用した調査を WebFetch/WebSearch と根本的に異なるものにしています。ブラウザーを開く前に、エージェントが各フォームフィールドの正確なセレクターを把握できるのです。
Step 2: セレクターを取得するために Actionbook API に問い合わせます(必ず最初に実行してください)
URL を閲覧する前に、Actionbook のインデックス済みセレクターに問い合わせてください。 推測ではなく、検証済みの CSS/XPath セレクターを取得できます。
# Search for indexed actions by domain
actionbook search "<keywords>" -d "<domain>"
# Get detailed selectors for a specific page
actionbook get "<domain>:/<path>:<area>"
調査に役立つインデックス済みサイト:
| サイト | area_id | 主なセレクター |
|---|---|---|
| arXiv 詳細検索 | arxiv.org:/search/advanced:default | 40 個以上のセレクター:フィールド選択、検索語入力、カテゴリのチェックボックス(CS/物理学/数学など)、日付範囲フィルター、クロスリスト制御 — Step 3 で使用 |
| ar5iv 論文 | 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 ホームページ | arxiv.org:/:default | 240 万件以上の記事を横断するグローバル検索 |
アクセスする予定の URL ごとに、actionbook search "<keywords>" -d "<domain>" を実行して、インデックス済みか確認してください。利用可能な場合はインデックス済みセレクターを使用し、インデックスされていないサイトでは actionbook browser snapshot に切り替えてください。
例:検索前に arXiv 詳細検索のセレクターを取得する:
# Query Actionbook for arXiv form selectors
actionbook get "arxiv.org:/search/advanced:default"
# Returns 40+ selectors: #terms-0-field, #terms-0-term, #classification-computer_science, etc.
Step 3: arXiv 詳細検索(Actionbook セレクターを使用)
主な差別化要因: WebFetch/WebSearch でできるのは、簡単なキーワード検索だけです。Actionbook は arXiv 詳細検索フォーム全体を、検証済みの 40 個以上のセレクターでインデックス化しています(Step 2 で取得)。これにより、人間の研究者がフォームを使うのと同じように、複数のフィールドや条件を組み合わせて学術検索できます。
Step 2 で取得したセレクターを使用すると、エージェントは次の操作を行えます。
| 機能 | Actionbook セレクター | WebFetch/WebSearch |
|---|---|---|
| 特定のフィールド(タイトル、著者、概要)で検索 | #terms-0-field セレクト → フィールドを選択 | 不可能 |
| 論理演算子を使って複数の検索語を追加 | button "Add another term +" | 不可能 |
| 分野(CS、物理学、数学など)で絞り込み | #classification-computer_science チェックボックス | 不可能 |
| 日付範囲で絞り込み | #date-filter_by-3 ラジオ + #date-from_date / #date-to_date | 不可能 |
| 特定の年で絞り込み | #date-filter_by-2 ラジオ + #date-year 入力 | 不可能 |
| クロスリストされた論文を含める/除外する | #classification-include_cross_list-0/1 ラジオ | 不可能 |
| 検索結果の表示を制御 | #size セレクト、#abstracts-0/1 ラジオ | 不可能 |
例:特定の著者による最近の CS 論文を検索する:
# Open arXiv Advanced Search
actionbook browser open "https://arxiv.org/search/advanced"
# 1. Set search field to "Author" and type author name
actionbook browser click "#terms-0-field"
actionbook browser click "option[value='author']"
actionbook browser type "#terms-0-term" "Yann LeCun"
# 2. Filter to Computer Science only
actionbook browser click "#classification-computer_science"
# 3. Restrict to past 12 months
actionbook browser click "#date-filter_by-1"
# 4. Show abstracts in results
actionbook browser click "#abstracts-0"
# 5. Submit search
actionbook browser click "button:has-text('Search'):nth(2)"
# 6. Extract results
actionbook browser text "#main-container"
例:日付範囲を指定してタイトルのキーワードで検索する:
actionbook browser open "https://arxiv.org/search/advanced"
# Search in "Title" field
actionbook browser click "#terms-0-field"
actionbook browser click "option[value='title']"
actionbook browser type "#terms-0-term" "large language model agent"
# Date range: 2025-01 to 2026-02
actionbook browser click "#date-filter_by-3"
actionbook browser type "#date-from_date" "2025-01-01"
actionbook browser type "#date-to_date" "2026-02-09"
# Submit and extract
actionbook browser click "button:has-text('Search'):nth(2)"
actionbook browser text "#main-container"
Step 4: Google/Bing 検索で補足する
arXiv で検索した後、Google/Bing を使って、学術論文以外の情報源(ブログ、ニュース、ドキュメント、コード、議論)を探します。
# Search via Google
actionbook browser open "https://www.google.com/search?q=<encoded_query>"
actionbook browser text "#search"
# Or search via Bing
actionbook browser open "https://www.bing.com/search?q=<encoded_query>"
actionbook browser text "#b_results"
検索結果を解析して URL とスニペットを抽出します。関連性の高い上位 5~10 件の URL を収集します。見つかった URL ごとに、アクセスする前に Actionbook API に問い合わせ(Step 2 と同じ手順)、サイトがインデックス済みか確認してください。
Step 5: 情報源を詳しく読む
関連する URL ごとに、まず Actionbook API に問い合わせて(Step 2 と同じ手順)サイトがインデックス済みか確認し、その後、検証済みセレクターを使用します。
actionbook browser open "<url>"
actionbook browser text # Full page text (fallback)
actionbook browser text "<selector>" # Use Actionbook selector if indexed
arXiv 論文の場合は、次の順番で情報源を試してください(新しい論文は ar5iv で読み込めないことがよくあります)。
# 1. Try ar5iv first (best structured selectors from Actionbook)
actionbook browser open "https://ar5iv.org/html/<arxiv_id>"
actionbook browser text "h1.ltx_title_document" # Title
actionbook browser text "div.ltx_authors" # Authors
actionbook browser text "div.ltx_abstract" # Abstract
# NOTE: section.ltx_section often fails on newer papers — use "article" as fallback
# 2. If ar5iv content is truncated (<5KB), fall back to arxiv abstract + other sources
actionbook browser open "https://arxiv.org/abs/<arxiv_id>"
actionbook browser text "main"
# 3. Supplement with HuggingFace model cards and GitHub READMEs for full details
actionbook browser open "https://huggingface.co/papers/<arxiv_id>"
actionbook browser text "main"
重要な教訓: ar5iv だけに頼らないでください。情報を網羅するため、必ず 3~4 件の情報源を相互に照合してください。
Google Scholar の場合(Actionbook によりインデックス済み):
actionbook browser open "https://scholar.google.com"
# Type into search: use selector #gs_hdr_tsi
actionbook browser click "#gs_hdr_tsi"
# ... type query, click #gs_hdr_tsb to search
インデックスされていないサイトの場合は、snapshot を使ってページの構造を確認します。
actionbook browser open "<url>"
actionbook browser snapshot # Get accessibility tree to find selectors
actionbook browser text "<discovered_selector>"
Step 6: 調査結果をまとめる
収集した情報を、次のような一貫性のあるレポートに整理します。
- 概要/要約
- 主な調査結果
- 詳細な分析
- 裏付けとなるデータ/証拠
- 意義/重要性
- 情報源
Step 7: json-ui JSON レポートを生成する
@actionbookdev/json-ui スキーマに従って JSON ファイルを作成します。Write ツールを使用してください。
出力先: ./output/<topic-slug>.json(またはユーザー指定の --output パス)
ステップ 8:HTML をレンダリングする
重要:あきらめる前に、必ずすべてのフォールバック方法を試してください。最初の失敗で止めないでください。
重要:JSON_FILE と HTML_FILE には、必ず絶対パスを使用してください。 git rev-parse が絶対パスのリポジトリルートを返すため、相対パスでは動作しません。
成功するまで、各方法を順番に試してください。
# Method 1: npx (recommended — works anywhere if npm is available)
npx @actionbookdev/json-ui render /absolute/path/to/report.json -o /absolute/path/to/report.html
# Method 2: Global install (if user ran: npm install -g @actionbookdev/json-ui)
json-ui render /absolute/path/to/report.json -o /absolute/path/to/report.html
# Method 3: Monorepo local path (fallback if inside actionbook project)
node "$(git rev-parse --show-toplevel)/packages/json-ui/dist/cli.js" render /absolute/path/to/report.json -o /absolute/path/to/report.html
黙ってあきらめてはいけません。 すべての方法が失敗した場合は、ユーザーに次の内容を伝えてください。
- JSON レポートは
<path>に保存されています - レンダラーをインストールするには、次を実行してください:
npm install -g @actionbookdev/json-ui
ステップ 9:ブラウザーで開く
# macOS
open <report.html>
# Linux
xdg-open <report.html>
ステップ 10:ブラウザーを閉じる
作業が終わったら、必ずブラウザーを閉じてください。
actionbook browser close
json-ui レポートテンプレート
重要:必ず BrandHeader と BrandFooter を含めてください。
{
"type": "Report",
"props": { "theme": "auto" },
"children": [
{
"type": "BrandHeader",
"props": {
"badge": { "en": "Deep Research Report", "zh": "深度研究报告" },
"poweredBy": "Actionbook"
}
},
{
"type": "Section",
"props": { "title": { "en": "Overview", "zh": "概述" }, "icon": "paper" },
"children": [
{
"type": "Prose",
"props": {
"content": { "en": "English overview...", "zh": "中文概述..." }
}
}
]
},
{
"type": "Section",
"props": { "title": { "en": "Key Findings", "zh": "核心发现" }, "icon": "star" },
"children": [
{
"type": "ContributionList",
"props": {
"items": [
{
"badge": { "en": "Finding", "zh": "发现" },
"title": { "en": "...", "zh": "..." },
"description": { "en": "...", "zh": "..." }
}
]
}
}
]
},
{
"type": "Section",
"props": { "title": { "en": "Detailed Analysis", "zh": "详细分析" }, "icon": "bulb" },
"children": [
{
"type": "Prose",
"props": { "content": { "en": "...", "zh": "..." } }
}
]
},
{
"type": "Section",
"props": { "title": { "en": "Key Metrics", "zh": "关键指标" }, "icon": "chart" },
"children": [
{
"type": "MetricsGrid",
"props": { "metrics": [], "cols": 3 }
}
]
},
{
"type": "Section",
"props": { "title": { "en": "Sources", "zh": "信息来源" }, "icon": "link" },
"children": [
{
"type": "LinkGroup",
"props": { "links": [] }
}
]
},
{
"type": "BrandFooter",
"props": {
"timestamp": "YYYY-MM-DDTHH:MM:SSZ",
"attribution": "Powered by Actionbook",
"disclaimer": {
"en": "This report was generated by AI using web sources. Verify critical information independently.",
"zh": "本报告由 AI 基于网络来源生成,请独立验证关键信息。"
}
}
}
]
}
論文レポートテンプレート(arXiv 論文向け)
学術論文を分析する場合は、次の要素を含む、より充実したテンプレートを使用してください。
PaperHeader(タイトル、arxivId、日付、カテゴリ)AuthorList(所属先付きの著者)Abstract(キーワードのハイライト付き)ContributionList(主な貢献)MethodOverview(手順ごとの手法)ResultsTable(実験結果)Formula(主要な数式、LaTeX)Figure(ar5iv の論文図)
使用可能な json-ui コンポーネント
| コンポーネント | 用途 | 主な Props |
|---|---|---|
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(太字、斜体、コード、リストに対応) |
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 に i18n オブジェクトを指定 | text.replace is not a function | suffix は { "en": ..., "zh": ... } ではなく、プレーンな文字列である必要があります |
MetricsGrid.value に数値を指定 | レンダリングエラー | value は文字列である必要があります(例:58.5 ではなく "58.5") |
BrandHeader/BrandFooter がない | レポートの表示が崩れる | 必ず両方を含めてください |
Table の行の値に i18n オブジェクトを指定 | セルに [object Object] と表示される | 行のセル値はプレーンな文字列である必要があります。列の label は i18n に対応していますが、行データは対応していません。{ "en": "Runtimes", "zh": "运行时" } の代わりに "Runtimes / 运行时" を使用してください |
Prose のコンテンツが非常に長い | レンダリング時に切り詰められる | 複数の Prose ブロックに分割するか、小見出しを使用してください |
i18n サポート
特記がない限り、すべてのテキストフィールドでバイリンガル出力をサポートしています:
{ "en": "English text", "zh": "中文文本" }
--lang en の場合はプレーンな文字列を使用します。--lang zh の場合はプレーンな中国語の文字列を使用します。--lang both(デフォルト)の場合は i18n オブジェクトを使用します。
例外:
MetricsGridの propsvalueとsuffixは、常にプレーンな文字列である必要があります。Tableの行セルの値はプレーンな文字列である必要があります(列のlabelは i18n に対応していますが、行データは対応していません)。バイリンガルにする場合は、"English / 中文"形式を使用します。
学術論文のサポート
arXiv 論文
ar5iv.org HTML(閲覧に推奨。ただし、投稿から3か月未満の論文では不完全なことがよくあります):
| 要素 | セレクター(Actionbook で検証済み) | 信頼性 | フォールバック |
|---|---|---|---|
| タイトル | h1.ltx_title_document | 高 | div.ltx_abstract にタイトルの文脈が含まれます |
| 著者 | div.ltx_authors | 高 | — |
| 要約 | div.ltx_abstract | 高 | — |
| 全文 | article | 中 | セクションセレクターが失敗した場合に使用 |
| セクション | section.ltx_section | 新しい論文では低 | すべてのコンテンツに article を使用 |
| セクションタイトル | h2.ltx_title_section | 新しい論文では低 | article のテキストから解析 |
| 図 | figure.ltx_figure | 中 | — |
| 表 | table.ltx_tabular | 中 | — |
| 参考文献 | .ltx_bibliography | 中 | — |
注: 直近約3か月以内に投稿された論文では、ar5iv のレンダリングが不完全なことがよくあります。必ず actionbook browser text 2>&1 | wc -c を確認してください。結果が 5KB 未満の場合、ページが完全にレンダリングされていません。他のソースに切り替えてください。
arXiv API(actionbook browser 経由でメタデータを取得):
actionbook browser open "http://export.arxiv.org/api/query?id_list={arxiv_id}"
actionbook browser text
論文の推奨ソース優先順位
テスト結果に基づき、幅広く情報を得るには次の優先順位を使用してください:
| 優先順位 | ソース | 得られる情報 | 信頼性 |
|---|---|---|---|
| 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 | 引用、関連研究 | 中 |
重要なポイント: 単一のソースに頼らないでください。ar5iv が失敗した場合でも、arXiv の要約、HuggingFace、GitHub を組み合わせれば、通常は必要な情報の90%以上を得られます。
その他の学術情報源
actionbook browser を使用して、次のサイトにアクセスし、コンテンツを抽出してください:
- Google Scholar(
scholar.google.com)— Actionbook でインデックス済み。検索には#gs_hdr_tsiを使用 - Semantic Scholar(
semanticscholar.org) - Papers With Code(
paperswithcode.com) - 学会の論文集サイト
エラー処理
| エラー | 対応 |
|---|---|
| ブラウザが起動しない | actionbook browser status を実行し、再試行する |
| ページ読み込みタイムアウト(30秒) | ソースをスキップし、次を試す。papers.cool や低速な学術サイトでよく発生する |
| ar5iv のコンテンツが切り詰められている(5KB 未満) | 論文が新しすぎて ar5iv に対応していない。arxiv の要旨 + HuggingFace + GitHub にフォールバックする |
section.ltx_section が見つからない | ar5iv のレンダリングが不完全。代わりに actionbook browser text "article" または "main" を使用する |
| Actionbook のセレクターが見つからない | actionbook browser snapshot を使用して実際のページ構造を確認する |
actionbook search が結果を返さない | サイトがインデックスされていない。actionbook browser snapshot を使用してセレクターを手動で特定する |
json-ui のレンダリングクラッシュ(text.replace) | MetricsGrid の suffix/value を確認する — 必ずプレーンな文字列であり、i18n オブジェクトであってはならない |
npx @actionbookdev/json-ui が失敗する | npm install -g @actionbookdev/json-ui を実行し、json-ui render で再試行する。それでも失敗する場合は、モノレポのローカルパスを試す |
| 検索結果がない | 検索語を広げ、別の切り口を試す |
| レンダリングに失敗した | JSON を保存し、ユーザーにパスを伝え、次を提案する: npm install -g @actionbookdev/json-ui |
IMPORTANT: 終了する前に必ず actionbook browser close を実行してください。エラー時でも同様です。
品質ガイドライン
- 広さ: 少なくとも 3〜5 の多様なソースから調査する
- 深さ: 抜粋だけでなく、記事全文を読む
- 正確性: ソース間で事実を照合する
- 構成: コンテンツの種類ごとに適切な json-ui コンポーネントを使用する
- 出典表示: レポートには必ずソースリンクを含める
- 鮮度: 関連性が同等であれば、新しいソースを優先する
中国語コンテンツ品質ガイドライン (中文内容质量规范)
CRITICAL: 中国語のテキストは、英語から翻訳したものではなく、ネイティブな中国語として書かれなければなりません。
zh フィールドは翻訳ではありません — それはコンテンツの独立した中国語版です。まるで中国語の技術記事をゼロから執筆するかのように書いてください。
避けるべきよくある問題
| 問題 | 悪い例 | 良い例 |
|---|---|---|
| 受動態が多すぎる | "Wasm 已被广泛采用" | "Wasm 已经大规模落地" |
| 英語語順の直訳 | "广泛但常常不可见地被采用" | "已经深入渗透到各类产品中,只是用户浑然不觉" |
| 硬直した用語の寄せ集め | "语言无关的异步通信" | "不绑定特定编程语言的异步通信机制" |
| 英語フレーズの直訳 | "关键缺失部分" | "最后一块拼图" |
| 「地道」を形容詞として使う | "地道绑定" | "符合各语言习惯的绑定" |
| カンマの多い長文(一文がだらだら続く) | "A,B,C,D,E。" | 2〜3 の短い文に分割する |
| 原文をそのまま引用して硬訳 | "「许多用户并未意识到它正在被使用」" | 引用の核心的な意味を中国語で言い換え、必要に応じて原文の人名は保持する |
執筆ルール
- まず中国語で書き、その後英語と照合して漏れを確認する: 英語から逐語訳してはいけません。内容の本質を理解し、中国語で表現を再構成してください。
- 能動態を優先する: 中国語はもともと能動文を好みます。"X 被 Y 采用" → "Y 采纳了 X" または "Y 已在用 X"。
- 短文 > 長文: 中国語の読者は短文を好みます。40 字を超える文は分割すべきです。
- 用語の扱いの原則:
- 定訳のある用語は中国語を使う: 服务器 → 服务器、容器 → 容器、沙箱 → 沙箱
- 定訳のない用語は英語のまま残す: Component Model、WASI、SIMD、Cold Start
- 初出時は中英併記: 「组件模型(Component Model)」、以降は中国語のみでも可
- 無理に中国語訳を作らない(例:「非干扰分析」ではなく「Noninterference 分析」または説明的表現とすべき)
- データと事実を一致させる: 中国語と英語で数字、日付、引用元が完全に一致していなければなりません。
- 自然な語調: 「说白了」「换句话说」「简单来说」などの口語的な接続詞を使い、全文が書き言葉調にならないようにする。
- 句読点の規範: 英語の句読点ではなく中国語の句読点(,。;:「」)を使う。引用符は「」を優先する。
表と短いテキストのルール (表格与短文本规则)
表の行における "English / 中文" 形式は、中国語品質の鬼門です。短いテキストほど機械翻訳の痕跡が露呈しやすくなります。
ルール: 中国語部分は、英語の逐語訳ではなく、独立した中国語表現でなければなりません。
| 悪い | 悪い理由 | 良い |
|---|---|---|
| "应用级错误处理" | 硬すぎて翻訳調 | "应用层统一报错" |
| "高性能 Web 框架" | 悪くはないが平凡 | "主打性能的 Web 框架" |
| "序列化框架" | 許容範囲 | "序列化框架" ✓ |
| "嵌入式异步执行器" | 回りくどい | "嵌入式异步运行器" |
| "凸块分配器" | 無理に作った訳語で、誰もそう言わない | "Bump 分配器(arena 风格)" |
| "安全内存擦除" | 硬すぎる | "安全清零内存" |
| "多生产者多消费者通道" | 長すぎる | "MPMC 通道" |
| "类 React UI 框架" | OK | "类 React 的 UI 框架" ✓ |
表の中国語短テキストの核心原則:
- 英語用語を残す: Bump allocator、MPMC、ECS といった定訳のない概念は、そのまま英語で残す。無理に翻訳しない。
- 口語 > 書き言葉: 短テキストは読者が一瞥して流し読みするものなので、話すように自然であるべき。「主打性能」は「性能优化的」より良い。
- 逐語訳しない: まず英語の説明の意味を理解し、それを中国語で言い直す。"Full-featured datetime" → 「功能齐全的时间日期库」であり、「全功能日期时间」ではない。
- 冗長な修飾は省略してよい: 英語の "A generic serialization/deserialization framework" → 中国語では「序列化框架」だけで十分。
- 字数は 10 字以内に抑える: 表の中国語説明はできるだけ 10 漢字以内で、簡潔かつ的確に。
バイリンガルなトーン参考表
| 英語のトーン | 中国語での表現 | 例 |
|---|---|---|
| "X has reached a critical milestone" | 「关键里程碑」と直訳しない | 「X 迎来了重要转折点」または「X 进入成熟期」 |
| "This is the key missing piece" | 「关键缺失部分」と直訳しない | 「这是最后一块拼图」または「补上了最关键的短板」 |
| "excels at cold starts" | 「在冷启动方面表现卓越」と直訳しない | 「冷启动速度远超同类方案」 |
| "security scrutiny intensifies" | 「安全审查加强」と直訳しない | 「安全领域的关注度持续升温」 |
| "emerging as a standard" | 「正成为标准」と直訳しない | 「逐渐确立了标准地位」または「大有一统江湖之势」 |
| "widespread but invisible adoption" | 「广泛但不可见的采用」と直訳しない | 「已经悄然渗透到各类产品中」 |