This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
PPAP(Planning Poker Application Portable)- アジャイル開発のプランニングポーカーを実施するためのリアルタイムWebアプリケーション。
deno task dev- Vite開発サーバー起動(ポート5173)deno task build- プロダクションビルドdeno task preview- ビルド結果のプレビュー
deno task dev:serve- 開発サーバー起動(ポート8000、ホットリロード有効)deno task serve- プロダクションサーバー起動
deno test backend/- バックエンドテスト実行deno test backend/handlers/roomHandlers_test.ts- 単一テストファイル実行deno task install-browsers- E2Eテスト用ブラウザインストール
Deno Deploy(console.deno.com)のGitHub連携により、mainへのpushで自動デプロイされる。
ビルド設定はDeno Deployのダッシュボード側で管理(Build command: deno task build、 Entrypoint:
backend/server.ts)。
- 本番: https://ppap.p-craft.deno.net
- カスタムドメイン https://ppap.p-craft.dev はDNS移行後に有効化予定
- KVはアプリにアタッチされたDeno KVデータベースを
Deno.openKv()が自動で参照する APP_ENV=developmentを本番に設定しないこと(KVデバッグビューアが公開される)
- フロントエンド: Vue 3 + TypeScript + Vite + Tailwind CSS
- バックエンド: Deno v2 + Deno KV
- リアルタイム通信: WebSocket
- ホスティング: Deno Deploy(console.deno.com。Deploy Classicは2026-07-20に終了済み)
src/- Vueフロントエンドcomponents/- Vueコンポーネントcomposables/- 状態管理(store.ts)、WebSocket(webSocket.ts)router/- Vue Routerルーティング設定
backend/- Denoバックエンドserver.ts- HTTPサーバー・ルーティングkv.ts- Deno KV CRUD操作handlers/- REST API/WebSocketハンドラ
wsMsg/- WebSocketメッセージ型定義e2e/- Playwrightテストdocs/- 設計ドキュメント(日本語)
- 入退室: REST API(
/api/rooms/*) - 回答・リアルタイム更新: WebSocket(
/ws/rooms/:roomId) - Deno Deploy複数インスタンス間の同期: Deno KV watch
- UserTokenをsessionStorageに保存
- リロード時はrejoin APIで復帰
deno.jsonのimportsはキャレットなしの厳密バージョンで固定するminimumDependencyAge: "P7D"により、リリースから7日未満のバージョンは解決されない (サプライチェーン攻撃対策)。7日未満に上げたい場合は--minimum-dependency-age 0で一時解除- 自動更新はRenovate(
renovate.json)。Dependabotはdeno.json/deno.lock非対応- マイナー/パッチ: 週次でグループPR
- メジャー: Dependency Dashboardで承認したものだけPR作成
- 更新後は
deno task test:allとdeno task buildを通す
- コメントは最小限、説明が必要な場合は日本語で記述
- フォーマット: セミコロンなし、行幅100文字(
deno fmt準拠)
詳細な設計は docs/設計.md を参照。