Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
98 changes: 98 additions & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
@@ -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 ドキュメントに記載されたアーキテクチャ・技術スタック・開発ガイドラインに従う

### 設計ドキュメントの内容
各設計ドキュメントには以下の情報を含める:
- 概要とアーキテクチャ
- 技術仕様(フレームワーク、言語、依存関係)
- 機能要件
- 開発コマンド
- セットアップ手順
- 開発ガイドライン
48 changes: 48 additions & 0 deletions design/claude-code-test.md
Original file line number Diff line number Diff line change
@@ -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 実行環境のテスト
- 簡単なデバッグ・検証作業
47 changes: 47 additions & 0 deletions design/my-fastmcp-app.md
Original file line number Diff line number Diff line change
@@ -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 キーの設定が必要
60 changes: 60 additions & 0 deletions design/my-mastra-app.md
Original file line number Diff line number Diff line change
@@ -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 設定ファイルによるエージェント・ツール定義
46 changes: 46 additions & 0 deletions design/pomodoro-timer-by-copilot-claude4.md
Original file line number Diff line number Diff line change
@@ -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 による型安全性の確保
47 changes: 47 additions & 0 deletions design/pomodoro-timer-by-jules.md
Original file line number Diff line number Diff line change
@@ -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 によるレスポンシブデザイン