diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..982a9cc --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,98 @@ +# CLAUDE.md + +このファイルは、このリポジトリでコードを操作する際にClaude Code (claude.ai/code) にガイダンスを提供します。 + +## リポジトリ概要 + +これは複数の実験的なアプリケーションとツールを含むLLMの開発練習用リポジトリです。 + +## プロジェクト構造 + +このリポジトリには複数の独立したアプリケーションが含まれています: + +### ルートレベル +- ルートのpackage.jsonはBiomeによる共通フォーマット/リントを提供 +- 環境設定用のMakefile(.env → .envrc変換) +- タブインデントを使用(biome.jsonで設定) + +### サブアプリケーション + +1. **pomodoro-timer-by-copilot-claude4/** - SQLiteを使ったNext.jsポモドーロタイマー + - コマンド: `npm run dev`, `npm run build`, `npm run lint` + - セッション履歴保存にbetter-sqlite3を使用 + - TailwindCSSスタイリング、TypeScript + +2. **pomodoro-timer-by-jules/** - 代替ポモドーロ実装 + - 同様の構造だが実装アプローチが異なる + +3. **my-fastmcp-app/** - FastMCPアプリケーション + - コマンド: `npm start` (`npx fastmcp dev src/index.ts`を実行) + - Google GenAI統合を使用 + +4. **my-mastra-app/** - Mastraフレームワークアプリケーション + - コマンド: `npm run dev` (`mastra dev`を実行) + - @mastra/coreとGoogle AI SDKを使用 + +5. **claude-code-test/** - 基本的なJavaScriptテストファイル + +## 共通コマンド + +### ルートレベル +- `npm run format` - Biomeでコードをフォーマット +- `npm run lint` - Biomeでリント・自動修正 +- `npm run check` - Biomeの完全チェックを実行 +- `make setup-env` - direnv用に.envを.envrcに変換 +- `make clean` - 一時ファイルを削除 + +### Next.jsプロジェクト (pomodoro-timer-*) +- `npm run dev` - 開発サーバーを起動(ポート3000) +- `npm run build` - 本番用ビルド +- `npm run lint` - ESLintチェック + +### MCP/Mastraプロジェクト +- 各package.jsonで定義されたstart/devコマンドを使用 + +## コードスタイルガイドライン + +.cursor/rules/common-rules.mdcに基づく: +- 要求された内容を正確に実行 - 追加機能なし +- 創意的な拡張なしに指定された要件を正確に実装 +- すべての要件を満たす最もシンプルなソリューションを使用 +- タスクを完了しながらコード行数を最小化 + +## フォーマット設定 + +- フォーマットとリントにBiomeを使用 +- タブインデント(幅:2) +- JavaScriptにはダブルクォート +- 推奨リントルールを有効化 + +## Design Directory ルール + +### 概要 +llmlab 内でのアプリケーション開発・変更時は、必ず `./design` ディレクトリ配下の設計ドキュメントを参照すること。 + +### ディレクトリ構造 +``` +./design/ +├── pomodoro-timer-by-copilot-claude4.md +├── pomodoro-timer-by-jules.md +├── my-fastmcp-app.md +├── my-mastra-app.md +└── claude-code-test.md +``` + +### 運用ルール +1. **開発前の確認**: アプリケーションの開発・変更を行う前に、該当する design ドキュメントを必ず読む +2. **設計ドキュメントの更新**: アプリケーションに変更を加えた場合は、対応する design ドキュメントも同時に更新する +3. **新規アプリケーション**: 新しいアプリケーションを作成する場合は、`./design/{application_name}.md` 形式で設計ドキュメントを作成する +4. **アーキテクチャの一貫性**: design ドキュメントに記載されたアーキテクチャ・技術スタック・開発ガイドラインに従う + +### 設計ドキュメントの内容 +各設計ドキュメントには以下の情報を含める: +- 概要とアーキテクチャ +- 技術仕様(フレームワーク、言語、依存関係) +- 機能要件 +- 開発コマンド +- セットアップ手順 +- 開発ガイドライン \ No newline at end of file diff --git a/design/claude-code-test.md b/design/claude-code-test.md new file mode 100644 index 0000000..aeae5d6 --- /dev/null +++ b/design/claude-code-test.md @@ -0,0 +1,48 @@ +# Claude Code Test + +## 概要 +Claude Code の機能テスト用の基本的な JavaScript テストファイル群 + +## アーキテクチャ +- **言語**: JavaScript (ES5/ES6) +- **実行環境**: Node.js +- **テストフレームワーク**: 独自実装(シンプルなアサーション) + +## 技術仕様 +### ファイル構成 +- `test.js` - メインテストファイル + +### 実行コマンド +- `node claude-code-test/test.js` - テスト実行 + +## 機能要件 +### テスト対象関数 +- `add(a, b)` - 数値の加算 +- `multiply(a, b)` - 数値の乗算 + +### テスト関数 +- `testAdd()` - 加算関数のテスト (2 + 3 = 5) +- `testMultiply()` - 乗算関数のテスト (3 × 4 = 12) +- `runTests()` - 全テストの実行とレポート + +## 実装仕様 +### テスト結果表示 +- 成功時: `✓ [function] test passed` +- 失敗時: `✗ [function] test failed` +- 開始・終了メッセージの表示 + +### テストパターン +- 基本的な数値演算のテスト +- 期待値との厳密等価比較 +- コンソール出力によるフィードバック + +## 開発ガイドライン +- シンプルで理解しやすいテストコード +- Node.js 標準機能のみを使用 +- 外部依存関係なし +- 即座に実行可能な設計 + +## 使用目的 +- Claude Code の基本機能確認 +- JavaScript 実行環境のテスト +- 簡単なデバッグ・検証作業 \ No newline at end of file diff --git a/design/my-fastmcp-app.md b/design/my-fastmcp-app.md new file mode 100644 index 0000000..36eba25 --- /dev/null +++ b/design/my-fastmcp-app.md @@ -0,0 +1,47 @@ +# FastMCP Application + +## 概要 +FastMCP フレームワークを使用したテストアプリケーション + +## アーキテクチャ +- **フレームワーク**: FastMCP v1.21.0 +- **言語**: TypeScript +- **モジュールシステム**: ES Modules +- **AI統合**: Google GenAI v0.7.0 +- **バリデーション**: Zod v3.24.2 + +## 技術仕様 +### エントリーポイント +- **メインファイル**: `src/index.ts` +- **パッケージタイプ**: ES Module + +### 開発コマンド +- `npm start` - FastMCP 開発サーバー起動 (`npx fastmcp dev src/index.ts`) + +### 依存関係 +#### 本番依存関係 +- `fastmcp` (^1.21.0) - コアフレームワーク +- `zod` (^3.24.2) - スキーマバリデーション +- `@google/genai` (^0.7.0) - Google AI 統合 +- `@types/dotenv` (^8.2.3) - 環境変数型定義 +- `@types/node` (^22.14.0) - Node.js 型定義 + +## 機能要件 +- FastMCP プロトコルによる MCP サーバー実装 +- Google GenAI との統合 +- TypeScript による型安全な開発環境 + +## 開発ガイドライン +- ES Modules を使用 +- TypeScript による厳密な型チェック +- Zod によるランタイムバリデーション +- FastMCP のベストプラクティスに従う + +## セットアップ手順 +1. プロジェクトディレクトリに移動: `cd my-fastmcp-app` +2. 依存関係をインストール: `npm install` +3. 開発サーバーを起動: `npm start` + +## 設定 +- 環境変数は .env ファイルで管理 +- Google AI API キーの設定が必要 \ No newline at end of file diff --git a/design/my-mastra-app.md b/design/my-mastra-app.md new file mode 100644 index 0000000..9112604 --- /dev/null +++ b/design/my-mastra-app.md @@ -0,0 +1,60 @@ +# Mastra Framework Application + +## 概要 +Mastra フレームワークを使用したアプリケーション + +## アーキテクチャ +- **フレームワーク**: Mastra v0.4.4 +- **コアライブラリ**: @mastra/core v0.7.0 +- **言語**: TypeScript v5.8.3 +- **モジュールシステム**: ES Modules +- **AI統合**: Google AI SDK v1.2.8 +- **MCP統合**: @mastra/mcp v0.3.6 + +## 技術仕様 +### 開発環境 +- **ランタイム**: tsx v4.19.3 +- **型定義**: @types/node v22.14.0 +- **バリデーション**: Zod v3.24.2 + +### 開発コマンド +- `npm run dev` - Mastra 開発サーバー起動 (`mastra dev`) +- `npm test` - テスト実行 (未実装) + +### プロジェクト構造 +- **エントリーポイント**: `index.js` +- **設定ファイル**: `tsconfig.json` + +## 機能要件 +- Mastra フレームワークによるエージェント・ツール管理 +- Google AI SDK との統合 +- MCP (Model Context Protocol) サポート +- TypeScript による型安全な開発 + +## 依存関係 +### 本番依存関係 +- `@ai-sdk/google` (^1.2.8) - Google AI SDK +- `@mastra/core` (^0.7.0) - Mastra コアライブラリ +- `@mastra/mcp` (^0.3.6) - MCP 統合 +- `mastra` (^0.4.4) - Mastra CLI/フレームワーク +- `zod` (^3.24.2) - スキーマバリデーション + +### 開発依存関係 +- `@types/node` (^22.14.0) - Node.js 型定義 +- `tsx` (^4.19.3) - TypeScript 実行環境 +- `typescript` (^5.8.3) - TypeScript コンパイラ + +## 開発ガイドライン +- ES Modules を使用 +- TypeScript による厳密な型チェック +- Mastra のエージェント・ツールパターンに従う +- Google AI SDK の非同期パターンを活用 + +## セットアップ手順 +1. プロジェクトディレクトリに移動: `cd my-mastra-app` +2. 依存関係をインストール: `npm install` +3. 開発サーバーを起動: `npm run dev` + +## 設定 +- Google AI API キーの設定が必要 +- Mastra 設定ファイルによるエージェント・ツール定義 \ No newline at end of file diff --git a/design/pomodoro-timer-by-copilot-claude4.md b/design/pomodoro-timer-by-copilot-claude4.md new file mode 100644 index 0000000..52e0729 --- /dev/null +++ b/design/pomodoro-timer-by-copilot-claude4.md @@ -0,0 +1,46 @@ +# ポモドーロタイマーアプリ (Copilot Claude4版) + +## 概要 +**試験的なアプリケーション**として開発されたポモドーロタイマーアプリケーション + +## アーキテクチャ +- **フレームワーク**: Next.js (最新版) +- **言語**: TypeScript +- **スタイリング**: TailwindCSS +- **データベース**: SQLite (better-sqlite3) +- **UI ライブラリ**: React + +## 機能要件 +- ポモドーロタイマーの基本機能 +- フロントエンドのみで完結する実装 +- localhost での起動 +- SQLite を使用したセッション履歴の永続化 + +## UI/UX設計 +### メイン画面 +- 中央にタイマー表示 +- スタートボタンとストップボタン +- 一般的なタイマーアプリのUI + +### サイドバー +- ポモドーロタイマーの利用履歴を表示 +- セッション完了時に自動更新 + +## 技術仕様 +### 開発コマンド +- `npm run dev` - 開発サーバー起動 +- `npm run build` - 本番ビルド +- `npm run lint` - ESLint チェック + +### データベーススキーマ +- SQLite でセッション履歴を管理 +- better-sqlite3 ライブラリを使用 + +### デプロイメント +- localhost:3000 で起動 +- 開発環境のみを想定 + +## 開発ガイドライン +- Next.js の一般的なプラクティスに従う +- TailwindCSS は無料範囲内で利用 +- TypeScript による型安全性の確保 \ No newline at end of file diff --git a/design/pomodoro-timer-by-jules.md b/design/pomodoro-timer-by-jules.md new file mode 100644 index 0000000..ffdb3e3 --- /dev/null +++ b/design/pomodoro-timer-by-jules.md @@ -0,0 +1,47 @@ +# Pomodoro Timer by Jules + +## 概要 +Jules (AI アシスタント) によって作成された実験的なポモドーロタイマーアプリケーション + +## アーキテクチャ +- **フレームワーク**: Next.js (App Router, TypeScript) +- **言語**: TypeScript +- **スタイリング**: Tailwind CSS +- **データベース**: SQLite (ローカルデータストレージ) +- **UI ライブラリ**: React + +## 機能要件 +### ポモドーロタイマー +- 標準的な25分作業セッションと5分休憩セッション +- MM:SS 形式のタイマー表示 +- Start、Stop、Reset コントロール +- 作業と休憩セッション間の自動切り替え +- 現在のセッションタイプ(Work/Break)のテキスト通知 + +### セッション履歴 +- 完了したポモドーロセッション(作業・休憩両方)のローカル保存 +- サイドバーでの履歴表示 + - セッションタイプ(Work/Break) + - 開始時間 + - 継続時間 +- 新しいセッション完了時の履歴サイドバー自動更新 + +## 技術仕様 +### 開発コマンド +- `npm run dev` - 開発サーバー起動 (http://localhost:3000) +- `npm install` - 依存関係インストール + +### データベース +- SQLite データベースファイル (`pomodoro.db`) がプロジェクトルートに作成 +- 初回データベースアクセス時または履歴ページ読み込み時に自動作成 + +## セットアップ手順 +1. プロジェクトディレクトリに移動 +2. `npm install` で依存関係をインストール +3. `npm run dev` で開発サーバーを起動 +4. http://localhost:3000 でアプリケーションにアクセス + +## 開発ガイドライン +- Next.js App Router パターンを使用 +- TypeScript による型安全性の確保 +- Tailwind CSS によるレスポンシブデザイン \ No newline at end of file