AIによる回答はすべて日本語で行ってください。
src/にはC++23ランタイム(render context、renderer、swapchain、resource managerなど)が入っています。新規モジュールは凝集度を保ち、プラットフォーム依存コードは分離してください。script/にはrun_cppcheck.shなどの自動化スクリプトが置かれています。CMake Presetはbuild_debug、build_develop、build_releaseに成果物を出力するため、生成物は各ディレクトリに閉じ込めましょう。vcpkg/とvcpkg.jsonがfmt、spdlog、vk-bootstrap、Vulkan、GLFWといった外部依存を固定します。Devboxマニフェストは再現性のあるツールチェーンを提供するので、新しい依存を追加するときはマニフェストも更新し、全員が同じ環境を再現できるようにします。
devbox shell– Clang 21、CMake 4.1、cppcheck、X11依存を備えた再現ツールチェーンに入ります。cmake --preset debug– vcpkgツールチェーン込みでbuild_debugにNinja用設定を生成します。cmake --build build_debug– ビルドを実行します。最適化バイナリが欲しい場合は--preset releaseまたはbuild_releaseを使います。./build_debug/imv2– 変更ごとにローカルでモーションビジュアライザを動かし、状態遷移とリソースロードを確認します。script/run_cppcheck.sh– ベンダー/ビルドディレクトリを除外した静的解析を実行します。
.clang-formatはGoogleスタイル(2スペースインデント)を強制するため、コミット前にclang-format -i path/to/file.cppを走らせてください。.clang-tidy(bugprone、cppcoreguidelines、modernize、performance、readability)でclang-tidy -p build_debug src/foo.cppのように新規コードを検証し、CPPLintが軽量な追いチェックを行います。型名はパスカルケース(Context)、公開APIはlowerCamelCase、privateヘルパは末尾アンダースコア付きsnake_case(create_swapchain_)を使います。#pragma onceや明示的なnamespace、C++23機能(conceptsやstd::expected)を優先し、独自マクロは避けてください。
現状は自動テストがないため、すべての変更で./build_debug/imv2とscript/run_cppcheck.sh(必要ならclang-tidy)を必ず実行し、退行を防ぎます。テストを追加する際はtests/を作成し、add_testで登録したうえでctest --test-dir build_debug --output-on-failureで実行してください。GPUタイミングなど非決定的な検証は避け、必要なアセットはテストターゲットと同じ場所にコミットします。
履歴はConventional Commits(chore: add devbox depends for linux x11)に従っているので、<type>: <imperative summary>形式を維持し、細かい修正はマージ前にスカッシュしてください。PRでは課題、解決策、検証ログ(コマンドや出力)を説明し、描画に触れた場合はスクリーンショットや動画も添付します。関連Issueをリンクし、担当レビュアに依頼し、Presetビルドがクリーンであることを確認してからマージします。
依存はvcpkgで解決するため、新しいライブラリはvcpkg.jsonに追加し、devbox shell内でvcpkg install --triplet x64-linuxを実行してマニフェストとロックを同期させます。Vulkan/GLFWはホストGPUドライバに依存するためSDKパスをコミットせず、提供済みツールチェーンファイルを使ってください。ローカルのICD設定や秘密情報はバージョン管理に含めないようにします。