From 261c3949e5fac983c9129da25f046248c8355116 Mon Sep 17 00:00:00 2001 From: yuu111 Date: Sat, 31 Jan 2026 11:20:02 +0900 Subject: [PATCH] =?UTF-8?q?AGENTS.md=E3=82=92=E8=BF=BD=E5=8A=A0=E3=81=97?= =?UTF-8?q?=E3=80=81CLAUDE.md=E3=82=92=E3=82=B7=E3=83=B3=E3=83=9C=E3=83=AA?= =?UTF-8?q?=E3=83=83=E3=82=AF=E3=83=AA=E3=83=B3=E3=82=AF=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit AI用ドキュメントを汎用的なAGENTS.mdに移行。 CLAUDE.mdはAGENTS.mdへのシンボリックリンクとして維持。 --- .gitignore | 5 +++- AGENTS.md | 82 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ CLAUDE.md | 1 + 3 files changed, 87 insertions(+), 1 deletion(-) create mode 100644 AGENTS.md create mode 120000 CLAUDE.md diff --git a/.gitignore b/.gitignore index 7595ee1..30293c8 100644 --- a/.gitignore +++ b/.gitignore @@ -157,4 +157,7 @@ $RECYCLE.BIN/ # コンパイル関係 core/bin/* -selfhost/bin/* \ No newline at end of file +selfhost/bin/* + +# Claude Code +nul \ No newline at end of file diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..79b2465 --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,82 @@ +# CLAUDE.md + +This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. + +## プロジェクト概要 + +I-TTS (Integration TTS) はDiscord用の読み上げBOT。VOICEVOX、COEIROINK、SHAREVOX、VoiceTextなどの音声合成APIに対応。 + +## ビルドコマンド + +```bash +# ビルド (テストとCheckstyle含む) +./gradlew build + +# テストのみ +./gradlew test + +# 特定モジュールのテスト +./gradlew :core:test +./gradlew :selfhost:test + +# 単一テストクラス実行 +./gradlew :core:test --tests "dev.felnull.itts.core.savedata.repository.BotStateDataTest" + +# Checkstyleのみ +./gradlew checkstyleMain + +# Shadow JAR作成 (実行可能JAR) +./gradlew :selfhost:shadowJar +``` + +成果物は `selfhost/build/libs/itts-selfhost-{version}.jar` に生成される。 + +## アーキテクチャ + +### モジュール構成 + +- **core**: BOTのコアロジック。JDAやLavaPlayerを使用したDiscord連携、音声合成、データ永続化 +- **selfhost**: セルフホスト用エントリポイント。設定ファイル読み込みとランタイムコンテキスト提供 + +### マネージャーパターン + +`ITTSRuntime`がシングルトンとして各マネージャーを保持: +- `ConfigManager`: 設定管理 +- `VoiceManager`: 音声タイプ管理 +- `TTSManager`: テキスト読み上げ処理 +- `DictionaryManager`: 辞書管理 +- `CacheManager`: 音声キャッシュ +- `SaveDataManager`: データ永続化 + +### 音声合成 (voice パッケージ) + +抽象化レイヤー: +- `VoiceType`: 音声合成エンジン種別 (VOICEVOX, COEIROINK等) +- `VoiceCategory`: エンジン内のキャラクター +- `Voice`: 具体的な声スタイル + +各エンジン実装は `voice.voicevox`, `voice.coeiroink`, `voice.voicetext` サブパッケージに配置。 + +### データ永続化 (savedata パッケージ) + +- **dao**: データアクセスオブジェクト。SQLite/MySQL対応 +- **repository**: ビジネスロジック向けリポジトリ層 +- **legacy**: 旧バージョンデータ移行 + +スキーマ定義は [docs/schema-sqlite.md](docs/schema-sqlite.md) を参照。 + +### Discordコマンド (discord.command パッケージ) + +`BaseCommand`を継承してスラッシュコマンドを実装。主要コマンド: +- `JoinCommand`, `LeaveCommand`: VC参加/退出 +- `VoiceCommand`: 音声タイプ変更 +- `DictCommand`: 辞書管理 +- `ConfigCommand`: サーバー設定 + +## コードスタイル + +Checkstyle (`config/checkstyle/checkstyle.xml`) で強制: +- `var` 禁止 (明示的な型宣言必須) +- 全publicメソッド/フィールドにJavadoc必須 +- 行長170文字以内 +- タブ文字禁止 diff --git a/CLAUDE.md b/CLAUDE.md new file mode 120000 index 0000000..47dc3e3 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1 @@ +AGENTS.md \ No newline at end of file