From d5ed251f4debe4c03588136f618dd069d4346a8f Mon Sep 17 00:00:00 2001 From: gakigaki Date: Fri, 13 Jun 2025 15:59:19 +0900 Subject: [PATCH 1/3] =?UTF-8?q?add:=20CLAUDE.md=E3=83=95=E3=82=A1=E3=82=A4?= =?UTF-8?q?=E3=83=AB=E3=82=92=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Claude Code用のガイダンスファイルを追加。プロジェクトのアーキテクチャ、開発コマンド、コーディング規約などの重要な情報を記載。 --- CLAUDE.md | 102 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 CLAUDE.md diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 000000000..a076a259a --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,102 @@ +# CLAUDE.md + +このファイルは、Claude Code (claude.ai/code) がこのリポジトリのコードを操作する際のガイダンスを提供します。 + +## プロジェクト概要 + +Connect-CMSは、Webサイトを簡単に作成するためのコンテンツ管理システムです。Laravel 8フレームワークをベースに構築されており、プラグインベースのアーキテクチャを採用しています。 + +## 開発コマンド + +### コードスタイル +```bash +# PHP Code Sniffer(コードスタイルチェック) +composer run phpcs + +# PHP Code Beautifier and Fixer(コードスタイル自動修正) +composer run phpcbf + +# 特定のファイルやディレクトリのみをチェック +composer run phpcs-any -- path/to/file +composer run phpcbf-any -- path/to/file +``` + +### テスト +```bash +# PHPUnit テストの実行 +composer run phpunit +# または +./vendor/bin/phpunit + +# 特定のテストファイルの実行 +./vendor/bin/phpunit tests/Feature/SomeTest.php +``` + +### フロントエンド +```bash +# 開発環境向けビルド +npm run dev + +# 本番環境向けビルド +npm run prod + +# ファイル監視(開発中) +npm run watch +``` + +## アーキテクチャ + +### プラグインシステム +このシステムの核心は `app/Plugins/` にあるプラグインアーキテクチャです: + +- **User プラグイン**: フロントエンド機能(Blog、Database、Forms、Reservations等) +- **Manage プラグイン**: 管理機能(UserManage、PageManage、SystemManage等) +- **Api プラグイン**: API機能 +- **Mypage プラグイン**: マイページ機能 + +各プラグインは `PluginBase` クラスを継承し、独自の機能を実装します。 + +### データベース設計 +- `pages`: ページ階層構造(Nested Set Pattern) +- `frames`: ページ内のフレーム(プラグインの配置エリア) +- `buckets`: 各プラグインのデータコンテナ +- `plugins`: プラグインの設定情報 + +### 権限システム +- `users_roles`: ユーザーと権限の関連 +- `buckets_roles`: バケット(プラグインデータ)レベルの権限 +- `page_roles`: ページレベルの権限 + +## 重要な設定 + +### PHPコーディング規約 +- phpcs.xml に従った PSR-12 準拠のコーディングスタイル +- プライベートフィールドには `_` プレフィックスを使用 + +## 主要なファイル構造 + +- `app/Plugins/`: プラグイン本体 +- `app/Enums/`: 列挙型定義 +- `app/Models/`: Eloquentモデル +- `database/migrations/`: データベースマイグレーション +- `resources/views/plugins/`: プラグインのビューファイル +- `public/`: 公開ファイル(CSS、JS、画像等) + +## 開発時の注意点 + +### プラグイン開発 +新しいプラグインを作成する場合は、既存のプラグインを参考にして以下の構造に従ってください: +- プラグインクラス(UserPluginBase継承) +- モデル(必要に応じて) +- ビューファイル +- マイグレーションファイル + +### データベース操作 +- データベースの変更は必ずマイグレーションファイルを作成 +- `created_id`、`updated_id` フィールドを適切に設定 +- 論理削除(`deleted_at`)を適切に使用 + +### テスト作成 +- 新機能には対応するテストを作成 +- Feature テストとUnit テストを適切に使い分け +- テストデータベースは `db-testing` データベースを使用 From 0c395a5d546b1c6643e01e7097114da07d97a7b9 Mon Sep 17 00:00:00 2001 From: gakigaki Date: Fri, 13 Jun 2025 18:09:00 +0900 Subject: [PATCH 2/3] =?UTF-8?q?update:=20CLAUDE.md=E3=81=ABGitHub=20Flow?= =?UTF-8?q?=E3=81=AE=E3=83=96=E3=83=A9=E3=83=B3=E3=83=81=E6=88=A6=E7=95=A5?= =?UTF-8?q?=E3=82=92=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CLAUDE.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/CLAUDE.md b/CLAUDE.md index a076a259a..663fb4265 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -100,3 +100,17 @@ npm run watch - 新機能には対応するテストを作成 - Feature テストとUnit テストを適切に使い分け - テストデータベースは `db-testing` データベースを使用 + +## ブランチ戦略 + +### GitHub Flow +このプロジェクトではGitHub Flowを採用しています: + +1. **mainブランチ**: 常にデプロイ可能な状態を保つ +2. **featureブランチ**: 新機能や修正は `feature/` プレフィックスで分岐 +3. **ワークフロー**: + - `master` から `feature/task-name` ブランチを作成 + - 開発・テスト・コミット + - Pull Requestを作成(`feature/task-name` → `master`) + - レビュー・承認後にマージ + - featureブランチを削除 From 978bb5153de9bd9d64999e73c4fd514685ac6192 Mon Sep 17 00:00:00 2001 From: gakigaki Date: Fri, 13 Jun 2025 18:13:34 +0900 Subject: [PATCH 3/3] =?UTF-8?q?update:=20CLAUDE.md=E3=81=ABPull=20Request?= =?UTF-8?q?=E3=83=AB=E3=83=BC=E3=83=AB=E3=82=92=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CLAUDE.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/CLAUDE.md b/CLAUDE.md index 663fb4265..89b1150ca 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -114,3 +114,22 @@ npm run watch - Pull Requestを作成(`feature/task-name` → `master`) - レビュー・承認後にマージ - featureブランチを削除 + +### Pull Requestルール +PRを作成する際は以下のルールに従ってください: + +**タイトル形式**: `[Plugin/Area] 具体的な変更内容の説明` +- 例: `[キャビネット] ZIPファイルを解凍してアップロードする機能を追加しました` +- プラグイン名やエリア名を角括弧で明記 +- ですます調で記述 +- リリースノートに使用されるため、ユーザーが理解しやすい説明にする + +**PRテンプレート**: `.github/PULL_REQUEST_TEMPLATE.md` に従って作成 +- 概要: 変更の背景・目的・内容 +- レビュー完了希望日 +- 関連PR/Issues +- 参考情報 +- DB変更の有無 +- チェックリスト + +詳細: https://github.com/opensource-workshop/connect-cms/wiki/Pull-requests-Rule