0007: 仮説の統計的検証にQuarto+Rを採用し、Research-Wikiとして接続する

背景

知識ベースには総合研究仮定リスト/仮定リスト.mdのような、精神医学・哲学・ 社会構造にまたがる仮説群がある。現状のLLM-Wiki(0004)は これをMarkdown概念ページに変換するだけで、仮説を実際にデータ・統計で検証する 計算基盤を持たない。ユーザーは「Web UIで確認できる」ことを理想とし、かつ 専用デスクトップGUI(例: Open Science的なTauriアプリ)の導入は求めていない。

また、Fable 5(Claude系)が従量課金化するため、以後の新規領域は「Fable 5でしか 実装できない設計」を避け、Codex(またはOpenCode Goの軽量なオープンウェイト モデル)が単独で実行できる粒度まで本ドキュメントで機械的に規定する。

architecture.mdの技術スタック候補には元々Quartoが「PDF組版」候補として 挙がっていたが、正式採用はされていなかった。

決定

1. 採用ツール

  • 統計・データ分析にはR、レポート生成・Web UI表示にはQuartoを採用する。
  • 両方ともvps環境に導入済み(quarto --version = 1.9.38、R --version = 4.5.3、 knitr/rmarkdown同梱)。追加インストールは不要。動作確認は本タスクで完了 (quarto check全項目OK、日本語タイトル+R統計処理+グラフを含む.qmdquarto render成功、quarto preview --port <port>でHTTP 200を確認)。
  • Rパッケージ管理は当面Rscript -e 'install.packages("<pkg>")'の都度インストールで よい。renvによるロックファイル管理は、依存パッケージ数が増えて再現性が 問題になった時点で導入する(先送りしてよい。AGENTS.mdの「先取りした抽象化を 避ける」に従う)。

2. ディレクトリ構成

knowledge/配下(Git管理外、実データ)に、llm-wiki/と並列でresearch/を作る。

knowledge/research/<project>/
├── analyses/
│   └── <slug>.qmd          # 1仮説 = 1ファイル
├── _quarto.yml              # Quartoプロジェクト設定
└── _output/                 # quarto render の出力先(HTML)

<project>は当面main-research固定でよい(llm-wiki/projects/main-wiki/と 同様の命名)。

_quarto.ymlの最小構成:

project:
  type: default
  output-dir: _output

format:
  html:
    lang: ja
    self-contained: true

3. 命名・frontmatter規約(0006の拡張)

  • Research-Wikiという第5のWiki区分として扱う(Paper/Law/Data/LLM-Wikiに続く)。

  • <slug>は、対応するLLM-Wiki概念ページのファイル名(拡張子抜き)と完全一致 させる。例: LLM-Wikiにクオリアと他我問題.mdがあるなら、対応する分析ファイルは analyses/クオリアと他我問題.qmd。全ての概念に分析ファイルが要るわけではない (データ・統計で検証可能な仮説のみ作る)。

  • .qmdのfrontmatterは0006の 共通最小契約(title/tags/source)に従う。sourceには元の仮説ファイルと 行範囲を書く(LLM-Wikiの引用形式^[仮定リスト.md:13-17]に合わせ、 source: 仮定リスト.md:13-17のように書く)。

    ---
    title: クオリアと他我問題
    tags: [哲学, 意識, 統計検証]
    source: 仮定リスト.md:13-17
    format: html
    ---

4. リンク方向

0006のルール3を継承する。 LLM-Wiki→Research-Wikiの一方向のみ。LLM-Wikiの概念ページから [[Research-Wiki/analyses/<slug>]]形式でリンクしてよい(根拠の実データ検証先 として)。Research-Wiki側からLLM-Wikiへは書かない。Research-Wikiのsourceは 生の仮説ファイルを直接指す。

5. Web UI公開

  • 開発時: quarto previewをvps上で起動し、必要な時だけ確認する (常駐サービス化はしない。ポートは4444等、他サービスと衝突しない番号を都度選ぶ)。
  • 公開: quarto render_output/にHTML化し、生成物を web/app/public/research/<slug>.htmlへコピーする(Fumadocsの静的アセットとして 配信)。web/側のFumadocsテーマとの統合(ナビゲーション追加等)は本決定の 範囲外とし、docs/tasks/backlog.mdの別タスクとする。
  • Obsidian vaultへの統合は行わない。理由は「理由」節を参照。

6. 実行profile

vpsprofile(architecture.md)に置く。軽量なR計算であり mac-mini(embeddings専任)やrtx-worker(重いOCR)を使う理由がない。

理由

  • QuartoはR/Python/Markdownを混ぜて実行し静的HTMLとして書き出すツールで、 quarto previewはローカルWeb UIとしてライブプレビューできる。デスクトップ アプリ(Open Science等)を追加導入せずに「Web UIで仮説を確認する」という 要件を満たせる。
  • 実機検証(本タスク2026-07-07)で、追加インストールなしに動作することを 確認済み。導入コストがゼロに近い。
  • Obsidian vaultへ統合しない理由: LLM-Wikiは生成されたMarkdownをそのまま Obsidianで自然に閲覧できるが、Quartoのレンダリング後HTMLはObsidianの Markdownビューアと相性が悪い(プレビュー・インタラクションが活きない)。 「Web UIが理想」という要件には、Obsidian同期よりFumadocs(web/)での 静的配信の方が適合する。
  • 命名をLLM-Wiki概念ページのslugと一致させることで、0006の 「結合キーはURI/安定IDで行う」という原則を保ったまま、人間にも分かりやすい 1:1対応を作れる。

影響

  • docs/tasks/backlog.mdに「Research-Wiki雛形作成」タスクを追加する (knowledge/research/main-research/のスキャフォールド、_quarto.yml雛形、 最初の1〜2件の仮説分析.qmdをCodexが作成)。
  • architecture.mdの技術スタック表に「仮説統計検証」行としてQuarto+Rを追記する。
  • web/側のpublic/research/配信・ナビゲーション追加は別タスク。

追記: ダッシュボード形式(2026-07-09)

統計データの提示は.qmd→通常HTMLに限定しない。Quarto 1.4以降がネイティブ サポートするformat: dashboardを同じ.qmdファイルで使ってよい (ツールチェーン追加なし)。対話性(フィルタ・ドリルダウン等)が必要な場合は Observable JS(ojs)セルを使う——クライアントサイド実行なので静的HTMLの まま成立し、本決定の「web/app/public/research/へ静的配信」と矛盾しない。 Shinyは常駐サーバを要するため当面不採用。e-Statからのデータ取得はRの estatapiパッケージ(appIdは環境変数ESTAT_API_KEY)。

未決定事項

  • どの仮説から分析対象にするかの優先順位(ユーザーが個別に指示する想定)。
  • Rパッケージが増えた場合のrenv導入タイミング。
  • web/側でのResearch-Wiki一覧表示・ナビゲーションの具体的なUI設計。

追記: LLM-Wiki廃止(2026-07-22時点の注記)

本文中のLLM-Wikiは0004「LLM-Wiki生成 エンジンにllm-wiki-compilerを採用」の追記(2026-07-15、実運用でほぼ使われ なかったため廃止)により廃止済み。決定3「<slug>はLLM-Wiki概念ページの ファイル名と完全一致させる」・決定4「LLM-Wiki→Research-Wikiの一方向リンク」 は、参照先のLLM-Wikiが存在しないため現在は成立しない。Research-Wiki自体 (R+Quarto、決定1・2)は現役で、00140016の統計・法令・ 著作権資料カタログ化の分析基盤として使う想定。