mcpField
T
tanstack-start-conventions

tanstack-start-conventions

github.com/fixmyberlin開発051 回インストール今日更新
リポジトリ

tanstack-start-conventions について

TanStack Start アプリを構築・リファクタリングするチーム向けの規約ガイドです。タスク別の資料とサーバー境界、サーバー関数、SSR のルールを示し、tanstack-router-conventions スキルとの併用が必要です。

主な機能

  1. 01タスク別リファレンスガイド
  2. 02クライアントとサーバーの境界規則
  3. 03サーバー関数の規約
  4. 04ルート SSR の指針
  5. 05API ルートの検証規則

活用シーン

  1. 01アプリのディレクトリ構成や改修
  2. 02サーバーコードの配置先の判断
  3. 03検証付きサーバー関数の実装
  4. 04ルートのレンダリング設定

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/fixmyberlin/fixmyskills --skill tanstack-start-conventions

インストール後、Claude Code で/tanstack-start-conventionsを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
app-structure.md
client-server-boundaries.md
execution-model.md
local-runtime.md
params-search-api-routes.md
selective-ssr.md
server-components.md
server-functions.md

詳細

TanStack Start の規約

この組織の TanStack Start アプリ向けのスタック規約です。必須スキル tanstack-router-conventions(検索パラメーター、きれいな URL、ローダーと Query、フォームと useMutation の使い分け、型付き Router TS、開発者ツール)を参照してください。ここでは重複させないでください。認証とセッションのレイアウトについては、tanstack-start-auth と併用してください。

参照するドキュメント

タスクファイル
app/src フォルダーの作成またはリファクタリング、薄いルート、Layout/Page の命名、テストapp-structure.md
.server.ts / .functions.ts 間のコード分割、インポート保護、beforeLoad と loader の使い分け、エラーログclient-server-boundaries.md
createServerFn、バリデーション、フォーム送信、無効化server-functions.md
ローダーまたはコンポーネントが DB/fs/シークレットにアクセスする場合、クライアントナビゲーションのバグexecution-model.md
ルートの ssr 設定、SSR / ハイドレーションのデバッグ、Query のデハイドレーションselective-ssr.md
routes/api/ 配下の API ルート(パスパラメーター、検索、POST 本文)params-search-api-routes.md
実験的な RSC(renderServerComponent、createCompositeComponent)server-components.md
Vite + Nitro スクリプト用の bun --bunlocal-runtime.md

認証フロー:スキル tanstack-start-auth。

譲れないルール

トピックルール
サーバー専用モジュール*.server.ts - ルート/コンポーネントからインポートしないでください(例外:routes/api/ およびコンポーネントを持たないハンドラー専用ルート)。内部では createServerOnlyFn を使用してください
クライアントから呼び出し可能createServerFn を使用する *.functions.ts。エクスポート名は *Fn にしてください
公開サーバー関数public*.functions.ts - グローバルな認証ミドルウェアは使用しないでください。レート制限/トークンチェックは .server.ts で行ってください(tanstack-start-auth を参照)
API ルートファイルルートファイルに server-only インポートマーカーを付けないでください。サーバー専用ロジックはハンドラー内、またはツリーシェイキングされるインポート内に配置してください
API 検索パラメーターAPI ルートで validateSearch を使用しないでください。request.url から GET 内で Zod の safeParse を実行し、失敗時は 400 の JSON を返してください
SSRすべてのルートで ssr を明示的に設定してください。UI の既定値は true、ハンドラー専用の API ルートは false、マップを多用する UI は 'data-only' です
ローカルの Bun ランタイムVite の dev と Nitro の start/preview では bun --bun を使用してください
Router の検索/Querytanstack-router-conventions が担当します(parseSearch/stringifySearch、loader + Query)

すぐに決めるための指針

  • beforeLoad と loader: リダイレクト、認証、軽量なコンテキストは beforeLoad(ミドルウェアではありません)で処理し、データ取得/Query の事前設定は loader で行います。beforeLoad は検索パラメーターの変更を含め、ナビゲーションのたびに再実行されるため、頻繁に更新されるルート(マップのビューポート、レイヤー切り替え)ではリダイレクト/認証/地域情報を loader に配置し、それらのパラメーターを loaderDeps に含めないでください。詳細:client-server-boundaries.md。
  • Loader と Query、フォームとミューテーション: tanstack-router-conventions -> references/router-and-query.md(#client-mutations)に従ってください。Start では、loader と mutationFn が *Fn を呼び出します。サーバーとの I/O は必ず createServerFn を経由してください。
  • ssr: サーバー認証/データを必要とする、マップ/キャンバスを多用する UI には 'data-only' を指定します。ハンドラー専用の API(server.handlers)には false を指定します。完全にクライアントファーストの UI ルートには false を指定します(まれです)。
  • サーバーコンポーネント: オプトイン方式の実験的機能であり、FMC のデータ処理経路では既定で使用しません。

関連スキル

トピックスキル
Router(必須)tanstack-router-conventions
認証/セッションtanstack-start-auth
Bun のインストール/nvmtech-stack -> bun-install
Zustandzustand-state-management
TanStack Router を使わない URL 状態nuqs
リファクタリング後の残りの配置先unslop-code Phase 6 -> references/component-location.md

コメント