0001: Web表示層とモーション方針

背景

docs/architecture.mdはWeb WikiにQuartz/Fumadocsを、Dashboardの技術候補にNext.js、 shadcn/ui、Motion、Lenisを併記しているが、どちらのWeb Wiki候補を使うかは未確定だった。 サイトにモーションを持たせたい、既存OSSの組み合わせだけでも一貫した見た目に仕上げたい、 という方針があるため、実装が始まる前に候補を絞る。

決定

  • Web Wiki表示層は Fumadocs(Next.jsベース)を採用し、Quartzは採用しない。
  • アニメーションはMotion(旧Framer Motion)、スクロール演出はLenisを共通の実装手段とする。
  • UIコンポーネントの土台はshadcn/uiとする。
  • Dashboardと同じNext.js/shadcn/ui/Motion/Lenisの組み合わせをWeb Wikiでも使い、 2つの表示層でコンポーネントとアニメーションパターンを共有する。

理由

  • FumadocsはNext.js上に構築されており、React/Motionとの統合が直接的。Quartzは静的サイト 生成寄りで、カスタムモーションを足す際の実装コストが高い。
  • Dashboard側の技術選定(Next.js/shadcn/ui/Motion/Lenis)とWeb Wiki側を揃えることで、 「既存OSSの薄い接着層を優先する」というAGENTS.mdの方針に沿った寄せ集めでも、見た目の 一貫性を保ちやすくなる。

却下した選択肢

  • Quartz: Obsidian風Wikiとしての実績はあるが、Reactベースではないため、モーションを 追加する際にFumadocsより実装コストが高い。

影響

  • web/ディレクトリを新規に立ち上げる際は、Fumadocs + Next.jsを前提にする。
  • Web Wiki用のコンポーネントは、shadcn/ui + Motion + Lenisの組み合わせを前提に設計する。
  • docs/architecture.mdの技術スタック表は、この決定に合わせて更新する。

未決定事項

  • PDF組版側(Vivliostyle/Paged.js/Quarto/Typst)の選定は別の決定として切り出す。
  • LLMモデル(Fable 5含む)の使い分け方針は別途整理する。0002で確定済み: 専用エージェントはClaude/ Fable 5を使わずOpenCode Goを使う。Fable 5を含むClaude系モデルは、実装作業を行う Claude Code CLI側でのみ使う。