---
title: "サイト設定（blume.config.ts）"
---

このドキュメントは、本リポジトリ（Blumeで構築された設計書サイト）自体の`blume.config.ts`の設定内容と、各設定を選んだ理由を記録するものです。MorningStatusAppの設計（`docs/design/`配下）とは別に、サイト自体の構成・運用に関する知見をここにまとめます。

## 現在の設定

```ts blume.config.ts
export default defineConfig({
  title: "Documents for MorningStatusApp",
  description: "Documentation powered by Blume.",
  deployment: {
    output: "server",
    adapter: "vercel",
  },
  ai: {
    mcp: {
      enabled: true,
      route: "/mcp",
    },
  },
  i18n: {
    defaultLocale: "ja",
    locales: [{ code: "ja", label: "日本語" }],
  },
  search: {
    provider: "orama",
  },
});
```

## 各設定の理由

### `deployment: { output: "server", adapter: "vercel" }`

MorningStatusApp本体と同じVercelプロジェクト配下でホストするため。`server`出力により、`ai.mcp`のMCPサーバーエンドポイントや`Accept: text/markdown`によるコンテンツネゴシエーションが機能する（`static`出力ではこれらは動かない）。

### `ai.mcp.enabled: true, route: "/mcp"`

外部エージェント・ツールから設計書を読み取り専用で参照できるMCPサーバーを公開するため。`https://morning-status-blume.vercel.app/mcp`で疎通確認済み（`list_pages` / `get_page` / `get_navigation` / `search_docs`）。

### `i18n.defaultLocale: "ja"` / `search.provider: "orama"`（blume#41で追加・変更）

**背景**: 本サイトの設計書・開発ノートはすべて日本語で書かれている。Blumeの検索機能（サイト内検索ダイアログ・MCPの`search_docs`ツール・Ask AIグラウンディング）が日本語クエリで正しくヒットする必要がある。

**経緯**:

1. **初期構築時（blume導入時点、#1341 PoC）**: `search.provider`未設定＝デフォルトの`orama`のまま運用していた。
2. **2026-07-23（#1341 PoC検証、コミット`39c33e6`）**: Oramaのデフォルト（英語専用）トークナイザーでは日本語クエリが単語境界を認識できず、検索結果が常に0件になる問題を確認。`search.provider`を`flexsearch`に変更し、forwardトークナイズにより日本語でもヒットすることを検証・採用した。
3. **2026-07-31（`project_blume_mcp_setup`メモリで記録）**: FlexSearchへの切り替えは**サイト自体の検索ダイアログ**は直したが、**MCPの`search_docs`ツールは`search.provider`の設定に関わらず独自の「共有Oramaインデックス」を内部で使い続けており、日本語クエリでは引き続き`[]`を返す**ことが判明。既知の制約として記録し、Blume側のアップデート待ちとした。
4. **2026-08-12（#41）**: blume 1.4.xで`i18n.defaultLocale`がCJK言語（日本語・中国語・韓国語・タイ語）の場合、Oramaのインデックスが`Intl.Segmenter`ベースの単語分割トークナイザーに自動的に切り替わる機能が追加されていることを確認。公式ドキュメント（`apps/docs/content/docs/configuration/search.mdx`、upstream）によれば、このトークナイザーは**サイト内検索・`search_docs`・Ask AIグラウンディングの三者で共有される**。`search.provider`を`orama`に戻し、`i18n.defaultLocale: "ja"`を追加した。

**検証結果**（blume 1.4.3・本設定で実施）:

- サイト内検索ダイアログで「メンバー」を検索 → タイトル・本文中の一致箇所がハイライト付きで正しくヒット
- MCPの`search_docs`ツールに`{"query": "メンバー"}`を渡す → 「メンバー データ設計書」等9件の関連ドキュメントを関連度順に返却（変更前は`[]`）

両方の経路で日本語検索が機能することを実証済み。`flexsearch`パッケージへの依存は不要になったため`package.json`から削除した。

**注意**: `search.provider`を将来変更する場合は、`flexsearch`には`i18n`連携のCJKセグメンテーション機構がない（"FlexSearch has no equivalent segmentation hook"、upstream docs）。日本語サイトである限り`orama`（デフォルト）または`pagefind`（`pagefind_extended`がCJKをネイティブ対応）を選ぶこと。
