コンテンツにスキップ
Documents for MorningStatusApp
Esc
移動開く⌘Jプレビュー
このページの内容

サイト設定(blume.config.ts)

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

現在の設定

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.providerflexsearchに変更し、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.provideroramaに戻し、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(デフォルト)またはpagefindpagefind_extendedがCJKをネイティブ対応)を選ぶこと。

このページは役に立ちましたか?