Newer
Older
PixelPaintWar / CLAUDE.md
@rinto hasegawa rinto hasegawa 27 days ago 5 KB [add] PWA対応の設定を追加

CLAUDE.md

このファイルはClaude Codeがコード生成・編集・ドキュメント作成を行う際に従うべきプロジェクトルールを定義する. 各ルールの詳細は docs/02_Guide/ 配下の対応ファイルを参照すること.


1. ドキュメント作成ルール (GUIDE_01)

ドキュメント(.txt)を新規作成・編集する際は以下に従う.

  • 文字コード: UTF-8,改行コード: LF,インデント: 半角スペース4つ(タブ禁止)
  • 句読点: 「,」「.」を使用する.「、」「。」は使用しない
  • コロン: 半角コロン+半角スペース ": " を使用する(全角コロン禁止)
  • ファイルヘッダー: ファイル先頭に = で囲ったタイトルブロックを必ず記述する
  • 見出し階層:
    • レベル1: 1. タイトル (English) + 下行にハイフン区切り線
    • レベル2: 1-1. タイトル
    • レベル3: ■ タイトル(並列)または 1. 番号付き(手順)
    • レベル4(リスト): (全角中黒)
    • レベル5(詳細): -(半角ハイフン+スペース),インデントはスペース8つ
  • 改行ルール: 大見出し前に2行,中見出し・小見出し前に1行空ける
  • コマンド: 先頭に $ を付ける

詳細: docs/02_Guide/GUIDE_01_ドキュメント作成ガイド.txt


2. ファイル命名規則 (GUIDE_02)

ドキュメントファイルを新規作成する際は以下の形式に従う.

[カテゴリ]_[連番2桁]_[ファイル名].txt
カテゴリ内容
GUIDE_チームルール,規約,運用フロー
PLAN_進行計画,スケジュール,要件定義
ENV_開発環境,ディレクトリ構造,技術スタック
SPEC_ゲームルール,UI/UX仕様
TECH_実装詳細,通信プロトコル,データ構造
TEST_テスト計画,テストケース,品質基準
  • 区切り文字: アンダースコア _
  • 連番: 01 から始まる2桁
  • 拡張子: .txt
  • 1ファイル1テーマで分割する

詳細: docs/02_Guide/GUIDE_02_ファイル命名規則.txt


3. Git運用ルール (GUIDE_03)

ブランチ命名

[プレフィックス][日付(YYMMDD)]_[名前]_[概要]
プレフィックス用途
feature/新機能実装,仕様変更
fix/バグ修正
refactor/コード整理(挙動変更なし)
docs/ドキュメント追記・修正
chore/ビルド設定,ツール導入

例: feature/260214_yamada_player_jump

コミットメッセージ

[タグ] 日本語で内容を記述(末尾の句点不要)
タグ用途
[add]ファイルや機能の追加
[update]機能やデータの更新・修正
[fix]バグ修正
[remove]削除
[clean]整理,リファクタリング

禁止事項

  • main への直接コミット・直接プッシュは禁止(必ずPR経由)
  • 作業ブランチのベースは常に最新の main から作成する

詳細: docs/02_Guide/GUIDE_03_Git運用ルール.txt


4. コードコメント規則 (GUIDE_04)

基本方針

  • 言語: 日本語
  • 句読点: 「,」を使用,文末の句点「.」は付けない
  • 文体: 体言止め,または「〜する」形で統一

コメントの種類

ファイルヘッダー(全ファイル先頭に必須)

/**
 * [ファイル名(拡張子なし)]
 * [ファイルの主な責務を1行で説明]
 */

型・定数export されるものに必須)

/** [何を表すかを端的に説明] */
export type / const ...

関数・コンポーネント・フックexport されるものに必須)

/** [何をするかを端的に説明] */
export const / function ...

ブロックコメント(処理のまとまりが変わる箇所)

// [このブロックの処理を端的に説明]

JSXコメント

{/* [説明] */}

省略してよいケース

  • ファイル内部でのみ使用し,外部に公開されない型・関数・定数
  • コード自体が自明な場合

詳細: docs/02_Guide/GUIDE_04_コードコメント規則.txt


5. プロトコル追加手順 (GUIDE_05)

packages/shared/src/protocol 配下のソケットイベントを追加・変更する際は,以下の順序で必ず全工程を実施する.

  1. socketEvents.ts にイベント名を追加(kebab-case/snake_case を既存方針に合わせる)
  2. payloads/ 配下の適切なファイルにペイロード型を追加(重複定義を避ける)
  3. maps/ 配下の方向別マップ(C→S / S→C)に追記
  4. eventPayloads.ts / eventPayloadMaps.ts / events.ts で外部利用する型のみ再公開
  5. client/server の handler/bridge/useCase で on/off/emit と型参照を更新

チェックポイント(PR前に確認)

  •  イベント名追加済みか
  •  payload 型追加済みか
  •  map への方向別登録済みか
  •  events.ts 再公開が過不足ないか
  •  client/server で型エラーがないか
  •  既存イベントの型互換を壊していないか
  •  UPDATE_PLAYERS / update-playersteamId を含めていないか
  •  CURRENT_PLAYERS / current-playersNEW_PLAYER / new-playerteamId を含めているか

検証コマンド

$ pnpm --filter @repo/shared build
$ pnpm --filter server build
$ pnpm --filter client build

禁止事項

  • events.ts に型本体を置かない(再公開専用を維持する)

詳細: docs/02_Guide/GUIDE_05_プロトコル追加手順.txt