Răsfoiți Sursa

remove obsoleted serena memories

Yuki Takei 2 luni în urmă
părinte
comite
e4be5e0ab6

+ 0 - 104
.serena/memories/apps-app-detailed-architecture.md

@@ -1,104 +0,0 @@
-# apps/app アーキテクチャ詳細ガイド
-
-## 概要
-`apps/app` は GROWI のメインアプリケーションで、Next.js ベースのフルスタック Web アプリケーションです。
-
-## エントリーポイント
-- **サーバーサイド**: `server/app.ts` - OpenTelemetry 初期化と Crowi サーバー起動を担当
-- **クライアントサイド**: `pages/_app.page.tsx` - Next.js アプリのルートコンポーネント
-
-## ディレクトリ構成の方針
-
-### フィーチャーベース(新しい方針)
-`features/` ディレクトリは機能ごとに整理され、各フィーチャーは以下の構造を持つ:
-- `interfaces/` - TypeScript 型定義
-- `server/` - サーバーサイドロジック(models, routes, services)
-- `client/` - クライアントサイドロジック(components, stores, services)
-- `utils/` - 共通ユーティリティ
-
-#### 主要フィーチャー
-- `openai/` - AI アシスタント機能(OpenAI 統合)
-- `external-user-group/` - 外部ユーザーグループ管理
-- `page-bulk-export/` - ページ一括エクスポート
-- `growi-plugin/` - プラグインシステム
-- `search/` - 検索機能
-- `mermaid/` - Mermaid 図表レンダリング
-- `plantuml/` - PlantUML 図表レンダリング
-- `callout/` - コールアウト(注意書き)機能
-- `comment/` - コメント機能
-- `templates/` - テンプレート機能
-- `rate-limiter/` - レート制限
-- `opentelemetry/` - テレメトリ・監視
-
-### レガシー構造(段階的移行予定)
-
-#### ユニバーサル(サーバー・クライアント共通)
-- `components/` - React コンポーネント(ページレベル、レイアウト、共通)
-- `interfaces/` - TypeScript インターフェース
-- `models/` - データモデル定義
-- `services/` - ビジネスロジック(レンダラーなど)
-- `stores-universal/` - ユニバーサル状態管理(SWR コンテキスト等)
-
-#### サーバーサイド専用
-- `server/` - サーバーサイドコード
-  - `models/` - Mongoose モデル
-  - `routes/` - Express ルート(API v3含む)
-  - `service/` - サーバーサイドサービス
-  - `middlewares/` - Express ミドルウェア
-  - `util/` - サーバーサイドユーティリティ
-  - `events/` - イベントエミッター
-  - `crowi/` - アプリケーション初期化
-
-#### クライアントサイド専用
-- `client/` - クライアントサイドコード
-  - `components/` - React コンポーネント
-  - `services/` - クライアントサイドサービス
-  - `util/` - クライアントサイドユーティリティ
-  - `interfaces/` - クライアント固有の型定義
-  - `models/` - クライアントサイドモデル
-
-#### Next.js Pages Router
-- `pages/` - Next.js ページルート
-  - `admin/` - 管理画面ページ
-  - `me/` - ユーザー設定ページ
-  - `[[...path]]/` - 動的ページルート(Catch-all)
-  - `share/` - 共有ページ
-  - `login/` - ログインページ
-
-#### 状態管理・UI
-- `states/` - Jotai 状態管理(ページ、UI、サーバー設定)
-- `stores/` - レガシー状態管理(段階的に states/ に移行)
-- `styles/` - SCSS スタイル
-
-#### その他
-- `utils/` - 汎用ユーティリティ
-- `migrations/` - データベースマイグレーション
-- `@types/` - TypeScript 型拡張
-
-## 開発指針
-
-### 新機能開発
-新しい機能は `features/` ディレクトリにフィーチャーベースで実装し、以下を含める:
-1. インターフェース定義
-2. サーバーサイド実装(必要に応じて)
-3. クライアントサイド実装(必要に応じて)
-4. 共通ユーティリティ
-
-### 既存機能の改修
-既存のレガシー構造は段階的に features/ に移行することが推奨される。
-
-### 重要な技術スタック
-- **フレームワーク**: Next.js (Pages Router)
-- **状態管理**: Jotai (新), SWR (データフェッチング)
-- **スタイル**: SCSS, CSS Modules
-- **サーバー**: Express.js
-- **データベース**: MongoDB (Mongoose)
-- **型システム**: TypeScript
-- **監視**: OpenTelemetry
-
-## 特記事項
-- AI 統合機能(OpenAI)は最も複雑なフィーチャーの一つ
-- プラグインシステムにより機能拡張可能
-- 多言語対応(i18next)
-- 複数の認証方式サポート
-- レート制限・セキュリティ機能内蔵

+ 0 - 162
.serena/memories/apps-app-development-patterns.md

@@ -1,162 +0,0 @@
-# apps/app 開発ワークフロー・パターン集
-
-## よくある開発パターン
-
-### 新しいページ作成
-1. `pages/` にページファイル作成(`.page.tsx`)
-2. 必要に応じてレイアウト定義
-3. サーバーサイドプロパティ設定 (`getServerSideProps`)
-4. 状態管理セットアップ
-5. スタイル追加
-
-### 新しい API エンドポイント
-1. `server/routes/apiv3/` にルートファイル作成
-2. バリデーション定義
-3. サービス層実装
-4. レスポンス形式定義
-5. OpenAPI 仕様更新
-
-### 新しいフィーチャー実装
-1. `features/新機能名/` ディレクトリ作成
-2. `interfaces/` で型定義
-3. `server/` でバックエンド実装
-4. `client/` でフロントエンド実装
-5. `utils/` で共通ロジック
-
-### コンポーネント作成
-1. 適切なディレクトリに配置
-2. TypeScript プロパティ定義
-3. CSS Modules でスタイル
-4. JSDoc コメント追加
-5. テストファイル作成
-
-## 重要な設計パターン
-
-### SWR データフェッチング
-```typescript
-const { data, error, mutate } = useSWR('/api/v3/pages', fetcher);
-```
-
-### Jotai 状態管理
-```typescript
-const pageAtom = atom(initialPageState);
-const [page, setPage] = useAtom(pageAtom);
-```
-
-### CSS Modules スタイリング
-```scss
-.componentName {
-  @extend %some-placeholder;
-  @include some-mixin;
-}
-```
-
-### API ルート実装
-```typescript
-export const getPageHandler = async(req: NextApiRequest, res: NextApiResponse) => {
-  // バリデーション
-  // ビジネスロジック
-  // レスポンス
-};
-```
-
-## ファイル構成のベストプラクティス
-
-### フィーチャーディレクトリ例
-```
-features/my-feature/
-├── interfaces/
-│   └── my-feature.ts
-├── server/
-│   ├── models/
-│   ├── routes/
-│   └── services/
-├── client/
-│   ├── components/
-│   ├── stores/
-│   └── services/
-└── utils/
-    └── common-logic.ts
-```
-
-### コンポーネントディレクトリ例
-```
-components/MyComponent/
-├── MyComponent.tsx
-├── MyComponent.module.scss
-├── MyComponent.spec.tsx
-├── index.ts
-└── sub-components/
-```
-
-## 開発時のチェックリスト
-
-### コード品質
-- [ ] TypeScript エラーなし
-- [ ] テストケース作成
-- [ ] 型安全性確保
-- [ ] パフォーマンス影響確認
-
-### 機能要件
-- [ ] 国際化対応(i18n)
-- [ ] セキュリティチェック
-- [ ] アクセシビリティ対応
-- [ ] レスポンシブデザイン
-- [ ] エラーハンドリング
-
-### API 設計
-- [ ] RESTful 設計原則
-- [ ] 適切な HTTP ステータスコード
-- [ ] バリデーション実装
-- [ ] レート制限対応
-- [ ] ドキュメント更新
-
-## デバッグ・トラブルシューティング
-
-### よくある問題
-1. **型エラー**: tsconfig.json 設定確認
-2. **スタイル適用されない**: CSS Modules インポート確認
-3. **API エラー**: ミドルウェア順序確認
-4. **状態同期問題**: SWR キー重複確認
-5. **ビルドエラー**: 依存関係バージョン確認
-
-### デバッグツール
-- Next.js Dev Tools
-- React Developer Tools
-- Network タブ(API 監視)
-- Console ログ
-- Lighthouse(パフォーマンス)
-
-## パフォーマンス最適化
-
-### フロントエンド
-- コンポーネント lazy loading
-- 画像最適化
-- Bundle サイズ監視
-- メモ化(useMemo, useCallback)
-
-### バックエンド
-- データベースクエリ最適化
-- キャッシュ戦略
-- 非同期処理
-- リソース使用量監視
-
-## セキュリティ考慮事項
-
-### 実装時の注意
-- 入力サニタイゼーション
-- CSRF 対策
-- XSS 防止
-- 認証・認可チェック
-- 機密情報の適切な取り扱い
-
-## デプロイ・運用
-
-### 環境設定
-- 環境変数管理
-- データベース接続
-- 外部サービス連携
-- ログ設定
-- 監視設定
-
-このガイドは apps/app の開発を効率的に進めるための包括的な情報源として活用してください。

+ 0 - 37
.serena/memories/apps-app-google-workspace-oauth2-mail.md

@@ -1,37 +0,0 @@
-# Google Workspace OAuth 2.0 メール送信機能実装計画
-
-## 概要
-
-Google Workspace (Gmail) の OAuth 2.0 (XOAUTH2) 認証を使ったメール送信機能を実装する。2025年5月1日以降、Gmail SMTP ではユーザー名とパスワード認証がサポートされなくなったため、OAuth 2.0 への移行が必要。
-
-## 背景
-
-- **問題**: Gmail SMTP でのユーザー名・パスワード認証が2025年5月1日にサポート終了
-- **解決策**: OAuth 2.0 (XOAUTH2) 認証方式の実装
-- **参考**: https://support.google.com/a/answer/2956491?hl=ja
-- **ライブラリ**: nodemailer v6.9.15 は OAuth 2.0 をサポート済み(バージョンアップ不要)
-
-## 技術仕様
-
-### 必須設定パラメータ
-
-| パラメータ | 説明 | セキュリティ |
-|-----------|------|------------|
-| `mail:oauth2ClientId` | Google Cloud Console で取得する OAuth 2.0 クライアント ID | 通常 |
-| `mail:oauth2ClientSecret` | OAuth 2.0 クライアントシークレット | `isSecret: true` |
-| `mail:oauth2RefreshToken` | OAuth 2.0 リフレッシュトークン | `isSecret: true` |
-| `mail:oauth2User` | 送信者のGmailアドレス | 通常 |
-
-### nodemailer 設定例
-
-```typescript
-const transportOptions = {
-  service: 'gmail',
-  auth: {
-    type: 'OAuth2',
-    user: 'user@example.com',
-    clientId: 'CLIENT_ID',
-    clientSecret: 'CLIENT_SECRET',
-    refreshToken: 'REFRESH_TOKEN',
-  },
-};

+ 0 - 35
.serena/memories/apps-app-technical-specs.md

@@ -1,35 +0,0 @@
-# apps/app 技術仕様
-
-## ファイル構造・命名
-- Next.js: `*.page.tsx`
-- テスト: `*.spec.ts`, `*.integ.ts`
-- コンポーネント: `ComponentName.tsx`
-
-## API構造
-- **API v3**: `server/routes/apiv3/` (RESTful + OpenAPI準拠)
-- **Features API**: `features/*/server/routes/`
-
-## 状態管理
-- **Jotai** (推奨): `states/` - アトミック分離
-- **SWR**: `stores/` - データフェッチ・キャッシュ
-
-## データベース
-- **Mongoose**: `server/models/` (スキーマ定義)
-- **Serializers**: `serializers/` (レスポンス変換)
-
-## セキュリティ・i18n
-- **認証**: 複数プロバイダー + アクセストークン
-- **XSS対策**: `services/general-xss-filter/`
-- **i18n**: next-i18next (サーバー・クライアント両対応)
-
-## システム機能
-- **検索**: Elasticsearch統合
-- **監視**: OpenTelemetry (`features/opentelemetry/`)
-- **プラグイン**: 動的読み込み (`features/growi-plugin/`)
-
-## 開発ガイドライン
-1. 新機能は `features/` 実装
-2. TypeScript strict準拠
-3. Jotai状態管理優先
-4. API v3形式
-5. セキュリティ・i18n・テスト必須

+ 0 - 56
.serena/memories/coding_conventions.md

@@ -1,56 +0,0 @@
-# コーディング規約とスタイルガイド
-
-## Linter・フォーマッター設定
-
-### Biome設定(統一予定)
-- **適用範囲**: 
-  - dist/, node_modules/, coverage/ などは除外
-  - .next/, bin/, config/ などのビルド成果物は除外
-  - package.json などの設定ファイルは除外
-- **推奨**: 新規開発では Biome を使用
-
-## TypeScript設定
-- **ターゲット**: ESNext
-- **モジュール**: ESNext  
-- **厳格モード**: 有効(strict: true)
-- **モジュール解決**: Bundler
-- **その他**:
-  - allowJs: true(JSファイルも許可)
-  - skipLibCheck: true(型チェックの最適化)
-  - isolatedModules: true(単独モジュールとしてコンパイル)
-
-## Stylelint設定
-- SCSS/CSSファイルに対して適用
-- recess-order設定を使用(プロパティの順序規定)
-- recommended-scss設定を適用
-
-## ファイル命名規則
-- TypeScript/JavaScriptファイル: キャメルケースまたはケバブケース
-- コンポーネントファイル: PascalCase(Reactコンポーネント)
-- 設定ファイル: ドット記法(.biome.json など)
-
-## テストファイル命名規則(Vitest)
-vitest.workspace.mts の設定に基づく:
-
-### 単体テスト(Unit Test)
-- **ファイル名**: `*.spec.{ts,js}`
-- **環境**: Node.js
-- **例**: `utils.spec.ts`, `helper.spec.js`
-
-### 統合テスト(Integration Test)
-- **ファイル名**: `*.integ.ts`
-- **環境**: Node.js(MongoDB設定あり)
-- **例**: `api.integ.ts`, `service.integ.ts`
-
-### コンポーネントテスト(Component Test)
-- **ファイル名**: `*.spec.{tsx,jsx}`
-- **環境**: happy-dom
-- **例**: `Button.spec.tsx`, `Modal.spec.jsx`
-
-## ディレクトリ構造の規則
-- `src/`: ソースコード
-- `test/`: Vitest用のファイル
-- `playwright/`: Playwright を用いた E2E テストファイル
-- `config/`: 設定ファイル
-- `public/`: 静的ファイル
-- `dist/`: ビルド出力

+ 0 - 26
.serena/memories/project_overview.md

@@ -1,26 +0,0 @@
-# GROWIプロジェクト概要
-
-## 目的
-GROWIは、マークダウンを使用したチームコラボレーションソフトウェアです。Wikiとドキュメント作成ツールの機能を持ち、チーム間の情報共有とコラボレーションを促進します。
-
-## プロジェクトの詳細
-- **プロジェクト名**: GROWI
-- **バージョン**: 7.3.0-RC.0
-- **ライセンス**: MIT
-- **作者**: Yuki Takei <yuki@weseek.co.jp>
-- **リポジトリ**: https://github.com/growilabs/growi.git
-- **公式サイト**: https://growi.org
-
-## 主な特徴
-- Markdownベースのドキュメント作成
-- チームコラボレーション機能
-- Wikiのような情報共有プラットフォーム
-- ドキュメント管理とバージョン管理
-
-## アーキテクチャ
-- **モノレポ構成**: pnpm workspace + Turbo.js を使用
-- **主要アプリケーション**: apps/app (メインアプリケーション)
-- **追加アプリケーション**: 
-  - apps/pdf-converter (PDF変換サービス)
-  - apps/slackbot-proxy (Slackボットプロキシ)
-- **パッケージ**: packages/ 配下に複数の共有ライブラリ

+ 0 - 83
.serena/memories/project_structure.md

@@ -1,83 +0,0 @@
-# プロジェクト構造
-
-## ルートディレクトリ構造
-```
-growi/
-├── apps/                    # アプリケーション群
-│   ├── app/                # メインのGROWIアプリケーション
-│   ├── pdf-converter/      # PDF変換サービス
-│   └── slackbot-proxy/     # Slackボットプロキシ
-├── packages/               # 共有パッケージ群
-│   ├── core/              # コアライブラリ
-│   ├── core-styles/       # 共通スタイル
-│   ├── editor/            # エディターコンポーネント
-│   ├── pluginkit/         # プラグインキット
-│   ├── ui/                # UIコンポーネント
-│   ├── presentation/      # プレゼンテーション層
-│   ├── preset-templates/  # テンプレート
-│   ├── preset-themes/     # テーマ
-│   └── remark-*/          # remarkプラグイン群
-├── bin/                   # ユーティリティスクリプト
-└── 設定ファイル群
-```
-
-## メインアプリケーション (apps/app/)
-```
-apps/app/
-├── src/                   # ソースコード
-├── test/                  # Vitest用ファイル
-├── playwright/            # E2Eテスト(Playwright)
-├── config/                # 設定ファイル
-├── public/                # 静的ファイル
-├── docker/                # Docker関連
-├── bin/                   # スクリプト
-└── 設定ファイル群
-```
-
-## テストディレクトリの詳細
-
-### test/
-- Vitest用のファイル
-- 新規テスト用のユーティリティはここに作成
-- セットアップファイル: `setup/mongo.ts` (MongoDB用)
-
-### playwright/
-- Playwright による E2E テスト用ディレクトリ
-- ブラウザ操作を含むテスト
-
-## テストファイルの配置ルール
-
-### Vitestテストファイル
-以下のパターンでソースコードと同じディレクトリに配置:
-
-- **単体テスト**: `*.spec.{ts,js}`
-- **統合テスト**: `*.integ.ts` 
-- **コンポーネントテスト**: `*.spec.{tsx,jsx}`
-
-例:
-```
-src/
-├── utils/
-│   ├── helper.ts
-│   └── helper.spec.ts       # 単体テスト
-├── components/
-│   ├── Button.tsx
-│   └── Button.spec.tsx      # コンポーネントテスト
-└── services/
-    ├── api.ts
-    └── api.integ.ts         # 統合テスト
-```
-
-## パッケージ(packages/)
-各パッケージは独立したnpmパッケージとして管理され、以下の構造を持つ:
-- `src/`: ソースコード
-- `dist/`: ビルド出力
-- `package.json`: パッケージ設定
-- `tsconfig.json`: TypeScript設定
-
-## 重要な設定ファイル
-- **pnpm-workspace.yaml**: ワークスペース設定
-- **turbo.json**: Turbo.jsビルド設定
-- **tsconfig.base.json**: TypeScript基本設定
-- **biome.json**: Biome linter/formatter設定
-- **vitest.workspace.mts**: Vitestワークスペース設定

+ 0 - 89
.serena/memories/task_completion_checklist.md

@@ -1,89 +0,0 @@
-# タスク完了時のチェックリスト
-
-## コードを書いた後に必ず実行すべきコマンド
-
-### 1. Lint・フォーマットの実行
-```bash
-# 【推奨】Biome実行(新規開発)
-pnpm run lint:biome
-
-# 【過渡期】全てのLint実行(既存コード)
-pnpm run lint
-
-# 個別実行(必要に応じて)
-pnpm run lint:styles      # Stylelint
-pnpm run lint:typecheck   # TypeScript型チェック
-```
-
-### 2. テストの実行
-```bash
-# 【推奨】Vitestテスト実行(新規開発)
-pnpm run test:vitest
-
-# 【過渡期】全てのテスト実行(既存コード)
-pnpm run test
-
-# 個別実行
-pnpm run test:jest        # Jest(廃止予定)
-pnpm run test:vitest {target-file-name}     # Vitest
-```
-
-### 3. E2Eテストの実行(重要な機能変更時)
-```bash
-cd apps/app
-npx playwright test
-```
-
-### 4. ビルドの確認
-```bash
-# メインアプリケーションのビルド
-pnpm run app:build
-
-# 関連パッケージのビルド
-turbo run build
-```
-
-### 5. 動作確認
-```bash
-# 開発サーバーでの動作確認
-cd apps/app && pnpm run dev
-
-# または本番ビルドでの確認
-pnpm start
-```
-
-## 特別な確認事項
-
-### OpenAPI仕様の確認(API変更時)
-```bash
-cd apps/app
-pnpm run openapi:generate-spec:apiv3
-pnpm run lint:openapi:apiv3
-```
-
-### データベーススキーマ変更時
-```bash
-cd apps/app
-pnpm run dev:migrate:status  # 現在の状態確認
-pnpm run dev:migrate         # マイグレーション実行
-```
-
-## テストファイル作成時の注意
-
-### 新規テストファイル
-- **単体テスト**: `*.spec.{ts,js}` (Node.js環境)
-- **統合テスト**: `*.integ.ts` (Node.js + MongoDB環境)  
-- **コンポーネントテスト**: `*.spec.{tsx,jsx}` (happy-dom環境)
-- 対象ファイルと同じディレクトリに配置
-
-## コミット前の最終チェック
-1. Biome エラーが解消されているか
-2. Vitestテストがパスしているか
-4. ビルドが成功するか
-5. 変更による既存機能への影響がないか
-6. 適切なコミットメッセージを作成したか
-
-## 移行期間中の注意事項
-- 新規開発: Biome + Vitest を使用
-- 既存コード修正: 可能な限り Biome + Vitest に移行
-- レガシーツールは段階的に廃止予定

+ 0 - 40
.serena/memories/tech_stack.md

@@ -1,40 +0,0 @@
-# 技術スタック & 開発環境
-
-## コア技術
-- **TypeScript** ~5.0.0 + **Next.js** (React)
-- **Node.js** ^20||^22 + **MongoDB** + **Mongoose** ^6.13.6
-- **pnpm** 10.4.1 + **Turbo** ^2.1.3 (モノレポ)
-
-## 状態管理・データ
-- **Jotai**: アトミック状態管理(推奨)
-- **SWR** ^2.3.2: データフェッチ・キャッシュ
-
-## 開発ツール
-- **Biome**: フォーマッター、リンター
-- **Vitest**: テストフレームワーク
-- **Playwright**: e2eテストフレームワーク
-
-## 主要コマンド
-```bash
-# 開発
-cd apps/app && pnpm run dev
-
-# 品質チェック
-pnpm run lint:biome        # 新規推奨
-pnpm run lint:typecheck    # 型チェック正式コマンド
-pnpm run test:vitest       # 新規推奨
-
-# ビルド
-pnpm run app:build
-turbo run build           # 並列ビルド
-```
-
-## ファイル命名規則
-- Next.js: `*.page.tsx`
-- テスト: `*.spec.ts` (Vitest), `*.integ.ts`
-- コンポーネント: `ComponentName.tsx`
-
-## API・アーキテクチャ
-- **API v3**: `server/routes/apiv3/` (RESTful + OpenAPI)
-- **Features**: `features/*/` (機能別分離)
-- **SCSS**: CSS Modules使用

+ 0 - 77
.serena/memories/vitest-testing-tips-and-best-practices.md

@@ -1,77 +0,0 @@
-# Vitest + TypeScript Testing Guide
-
-## 核心技術要素
-
-### tsconfig.json最適設定
-```json
-{
-  "compilerOptions": {
-    "types": ["vitest/globals"]  // グローバルAPI: describe, it, expect等をインポート不要化
-  }
-}
-```
-
-### vitest-mock-extended: 型安全モッキング
-```typescript
-import { mockDeep, type DeepMockProxy } from 'vitest-mock-extended';
-
-// 完全型安全なNext.js Routerモック
-const mockRouter: DeepMockProxy<NextRouter> = mockDeep<NextRouter>();
-mockRouter.asPath = '/test-path';  // TypeScript補完・型チェック有効
-
-// 複雑なUnion型も完全サポート
-interface ComplexProps {
-  currentPageId?: string | null;
-  currentPathname?: string | null;
-}
-const mockProps: DeepMockProxy<ComplexProps> = mockDeep<ComplexProps>();
-```
-
-### React Testing Library + Jotai統合
-```typescript
-const renderWithProvider = (ui: React.ReactElement, scope?: Scope) => {
-  const Wrapper = ({ children }: { children: React.ReactNode }) => (
-    <Provider scope={scope}>{children}</Provider>
-  );
-  return render(ui, { wrapper: Wrapper });
-};
-```
-
-## 実践パターン
-
-### 非同期テスト
-```typescript
-import { waitFor, act } from '@testing-library/react';
-
-await act(async () => {
-  result.current.triggerAsyncAction();
-});
-
-await waitFor(() => {
-  expect(result.current.isLoading).toBe(false);
-});
-```
-
-### 詳細アサーション
-```typescript
-expect(mockFunction).toHaveBeenCalledWith(
-  expect.objectContaining({
-    pathname: '/expected-path',
-    data: expect.any(Object)
-  })
-);
-```
-
-## 実行コマンド
-
-### 基本テスト実行
-```bash
-# Vitest単体
-pnpm run test:vitest
-
-# Vitest単体(coverageあり)
-pnpm run test:vitest:coverage
-
-# 特定ファイルのみ実行(coverageあり)
-pnpm run test:vitest src/path/to/test.spec.tsx
-```