Skip to content

Instantly share code, notes, and snippets.

@sifue
Created August 25, 2025 10:04
Show Gist options
  • Save sifue/6ae4bb6c3d807dcbd0323ed8d96a6354 to your computer and use it in GitHub Desktop.
Save sifue/6ae4bb6c3d807dcbd0323ed8d96a6354 to your computer and use it in GitHub Desktop.
AGENTS.md/CLAUDE.md 美しい3D魚群シミュレーション - 深海を優雅に泳ぐ魚たちのインタラクティブな水中体験

リポジトリ運用ガイドライン

言語設定 (Language Configuration)

このプロジェクトは日本語環境での動作を前提とする。 基本的な受け答えは、全て日本語で行うこと。

  • コミュニケーション: 日本語で対応
  • コメント: コードコメントは日本語で記述
  • ドキュメント: 技術文書は日本語で作成
  • エラーメッセージ: 可能な限り日本語で表示
  • 変数名・関数名: 英語を使用(国際的な慣例に従う)

プロジェクト状況

このプロジェクトでは、p5.jsを利用したアニメーションするジェネラティブアートの制作を目的としています。 黒い水槽の中を1000体以上の魚が魚群を作りながら泳ぎ回る様子を3Dで表現し、マウスクリックで餌を与えると魚が集まるインタラクティブな要素も含みます。

技術構成

  • Node.js v22.14.0
  • TypeScript v5.8
  • p5.js 2.0.4
  • vite 7.1.3

必要に応じて、ライブラリやフレームワークを追加。

機能要件

  • HTMLのページとして表示することができる
  • 黒い背景の3Dの水中を模したフィールドが表示される
  • 画面上に魚が1000匹以上泳いでいる
  • 3次元空間上の水槽をイメージして、その3D空間上を魚群を成して魚が泳ぐ
  • 魚はマグロのように、水槽の中を魚群をなし、奥行きのある水槽をぐるぐる泳ぎ回っている
  • デフォルトでは魚は普段はぐるぐる泳ぎ回っているが、マウスをクリックするとそこに餌が現れ、そちらに魚が泳いでいく
  • 餌は光っている物体として表示され、魚に食べられて消滅すると、また魚は普段の泳ぎに戻る
  • 背景にはオーロラのような綺麗な光の帯がゆらゆらと揺れている

非機能要件

  • Wranglerを利用してCloudflare Pagesにデプロイできる
  • ツールの利用方法のREADME.mdを用意する
  • README.mdには、セットアップ方法、実行方法、テスト方法、デプロイ方法を記載する
  • 再度やり直しても中間ファイルデータやデータベースの情報が壊れないようにする
  • ツールのログは、全体のタスクを表示した上での進行状況をコンソールに出力する
  • ログには、タイムスタンプを表示する
  • GitHubで管理するための.gitignore
  • .env などのクレデンシャルを含むファイルは.gitignoreに含め、GitHubなどに上らないようにする

プロジェクト構成とモジュール設計

  • ソースコード: 機能単位で src/ に配置(例: src/api/, src/utils/)。
  • テスト: tests/ でソース構造をミラー(例: tests/api/, tests/utils/)。
  • スクリプト: CLI 用の補助タスクは scripts/(bash または言語別)。
  • ドキュメント & アセット: 長文ノートは docs/、画像やスキーマは assets/
  • 設定: 環境変数のデフォルトは .env.example に置き、実際のシークレットはコミットしない。

ビルド・テスト・開発のコマンド

利用するフレームワークの標準的なスタイルに準拠する。

コーディングスタイルと命名規則

利用するフレームワークの標準的なスタイルに準拠する。 可能な限り、リンターやフォーマッターを導入し、ビルド時に自動化する。

テストガイドライン

ビジネスロジックが発生するもの、仕様に条件が加わるものは、ユニットテストを実装する。 利用するテスティングフレームワークの標準的なスタイルに準拠する。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment