docs: add Discord server and CodeX review documentation
Add documentation for: - Bot ID analysis and Discord server structure - Development server channel organization - Server optimization plan - CodeX review summary for config reload fix Security: Bot token redacted from bot-id-analysis.md Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
7a39a76663
commit
ed225fd9cf
131
docs/bot-id-analysis.md
Normal file
131
docs/bot-id-analysis.md
Normal file
@ -0,0 +1,131 @@
|
||||
# Clawdbot Bot ID 分析レポート
|
||||
|
||||
## 現状分析
|
||||
|
||||
### 現在のBot設定
|
||||
- **Bot名**: PPAL Bot
|
||||
- **Client ID**: 1459727543400665275
|
||||
- **Token**: [REDACTED] - セキュリティのため削除
|
||||
|
||||
### 参加サーバー
|
||||
1. **シュンスケ式Workflow** (1260121338811514880) - 開発用
|
||||
2. **PPAL ~Pro Prompt Agent Lab~** (1459626872660033607) - 本番用
|
||||
|
||||
---
|
||||
|
||||
## 問題点
|
||||
|
||||
### 1. エージェント定義の競合
|
||||
```
|
||||
同一のBot設定で、異なるエージェントセットを使用しようとしている:
|
||||
|
||||
PPALサーバー用: まなぶん、つくるん、ひろめるん、ささえるん、かぞえるん
|
||||
開発サーバー用: カエデ、サクラ、ツバキ、ボタン、ながれるん
|
||||
```
|
||||
|
||||
### 2. 設定の共有
|
||||
- 同じ `~/.clawdbot/clawdbot.json` を使用
|
||||
- agents.list にPPALエージェントのみ定義済み
|
||||
- Miyabi Coreエージェントが未定義
|
||||
|
||||
### 3. Bot Tokenの状態
|
||||
- APIリクエストがエラー → Tokenが無効の可能性
|
||||
|
||||
---
|
||||
|
||||
## 推奨: 新しいBot IDを作成
|
||||
|
||||
### ✅ メリット
|
||||
|
||||
| 項目 | 説明 |
|
||||
|------|------|
|
||||
| **完全分離** | PPAL用と開発用で設定ファイルを分離可能 |
|
||||
| **エージェント競合解消** | それぞれのサーバー専用エージェント定義 |
|
||||
| **安全性向上** | 開発用の実験が本番環境に影響しない |
|
||||
| **管理容易** | 問題発生時に影響範囲が限定される |
|
||||
|
||||
### 📋 設定構成
|
||||
|
||||
#### PPAL Bot (本番用)
|
||||
```json
|
||||
{
|
||||
"name": "PPAL Bot",
|
||||
"config": "~/.clawdbot/clawdbot.json",
|
||||
"agents": ["shikirun", "manabun", "tsukurun", "hiromerun", "sasaerun", "kazoerun"],
|
||||
"servers": ["PPAL ~Pro Prompt Agent Lab~"]
|
||||
}
|
||||
```
|
||||
|
||||
#### Miyabi Dev Bot (開発用)
|
||||
```json
|
||||
{
|
||||
"name": "Miyabi Dev Bot",
|
||||
"config": "~/.clawdbot-dev/clawdbot.json",
|
||||
"agents": ["main", "kaede", "sakura", "tsubaki", "botan", "nagarerun"],
|
||||
"servers": ["シュンスケ式Workflow"]
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 新規Bot作成手順
|
||||
|
||||
### Step 1: Discord Developer Portal
|
||||
1. https://discord.com/developers/applications にアクセス
|
||||
2. "New Application" → "Miyabi Dev Bot" を作成
|
||||
3. Client ID をメモ
|
||||
|
||||
### Step 2: Bot作成
|
||||
1. "Bot" タブ → "Add Bot"
|
||||
2. Bot Token をコピーして安全に保存
|
||||
|
||||
### Step 3: 権限設定
|
||||
必要な権限:
|
||||
- Manage Channels (チャンネル管理)
|
||||
- Manage Webhooks (Webhook管理)
|
||||
- Send Messages (メッセージ送信)
|
||||
- Manage Messages (メッセージ管理)
|
||||
- Read Message History (メッセージ履歴)
|
||||
|
||||
招待URL生成:
|
||||
```
|
||||
https://discord.com/oauth2/authorize?client_id={NEW_CLIENT_ID}&permissions=268445712&scope=bot%20applications.commands
|
||||
```
|
||||
|
||||
### Step 4: 開発用設定ファイル作成
|
||||
```bash
|
||||
# 新しい設定ディレクトリ
|
||||
mkdir -p ~/.clawdbot-dev
|
||||
|
||||
# 設定ファイル作成(Miyabi Coreエージェント定義済み)
|
||||
```
|
||||
|
||||
### Step 5: Clawdbot起動
|
||||
```bash
|
||||
# PPAL Bot (既存)
|
||||
CLAWDBOT_CONFIG=~/.clawdbot/clawdbot.json pnpm clawdbot start
|
||||
|
||||
# Miyabi Dev Bot (新規)
|
||||
CLAWDBOT_CONFIG=~/.clawdbot-dev/clawdbot.json pnpm clawdbot start
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 結論
|
||||
|
||||
**新しいBot IDを作成することを強く推奨します。**
|
||||
|
||||
理由:
|
||||
1. 現在のTokenが無効の可能性
|
||||
2. エージェント定義の競合問題を解消
|
||||
3. 本番環境と開発環境の完全分離
|
||||
4. 将来の拡張性(複数の開発環境)
|
||||
|
||||
---
|
||||
|
||||
## 次のアクション
|
||||
|
||||
新しいBot IDを作成しますか?
|
||||
|
||||
1. ✅ **はい** - 新しいBot作成をサポートします
|
||||
2. ❌ **いいえ** - 既存Botで設定修正を試みます
|
||||
126
docs/dev-server-structure.md
Normal file
126
docs/dev-server-structure.md
Normal file
@ -0,0 +1,126 @@
|
||||
# ClawdBot 開発用サーバー構造
|
||||
|
||||
## サーバー情報
|
||||
- **用途**: Shunsuke 開発作業専用
|
||||
- **Guild ID**: 1260121338035568711
|
||||
- **Bot**: PPAL Bot (開発モード)
|
||||
|
||||
## Miyabi Agent Society エージェント
|
||||
|
||||
### コアエージェント(開発担当)
|
||||
| Agent | 役割 | Emoji |
|
||||
|-------|------|-------|
|
||||
| **しきるん** | Conductor / Orchestrator | 🎭 |
|
||||
| **カエデ** | CodeGen / Developer | 🍁 |
|
||||
| **サクラ** | Review / QA | 🌸 |
|
||||
| **ツバキ** | PR / Integration | 🌺 |
|
||||
| **ボタン** | Deploy / Release | 🌼 |
|
||||
| **ながれるん** | n8n Workflow | 🌊 |
|
||||
|
||||
## 推奨カテゴリ・チャンネル構造
|
||||
|
||||
### 🏠 Headquarters
|
||||
- `#general` - 全体調整
|
||||
- `#announcements` - お知らせ
|
||||
- `#status` - システム状態
|
||||
|
||||
### 🎭 Conductor(しきるん)- タスク管理
|
||||
- `#task-queue` - タスクキュー
|
||||
- `#task-assignment` - タスク割り当て
|
||||
- `#coordination` - エージェント連携
|
||||
- `#escalation` - エスカレーション
|
||||
|
||||
### 🍁 Development(カエデ)- 開発
|
||||
- `#coding` - コーディング作業
|
||||
- `#implementation` - 実装進捗
|
||||
- `#code-review-request` - レビュー依頼
|
||||
- `#bug-fixes` - バグ修正
|
||||
- `#refactoring` - リファクタリング
|
||||
|
||||
### 🌸 Review(サクラ)- レビュー
|
||||
- `#code-review` - コードレビュー
|
||||
- `#quality-check` - 品質チェック
|
||||
- `#security-audit` - セキュリティ監査
|
||||
- `#feedback` - フィードバック
|
||||
|
||||
### 🌺 Integration(ツバキ)- 統合
|
||||
- `#pull-requests` - PR管理
|
||||
- `#merge-requests` - マージ依頼
|
||||
- `#conflict-resolution` - コンフリクト解決
|
||||
- `#changelog` - 変更履歴
|
||||
|
||||
### 🌼 Deployment(ボタン)- デプロイ
|
||||
- `#deployment` - デプロイ作業
|
||||
- `#release-notes` - リリースノート
|
||||
- `#versioning` - バージョン管理
|
||||
- `#rollback` - ロールバック
|
||||
|
||||
### 🌊 Automation(ながれるん)- 自動化
|
||||
- `#workflows` - ワークフロー
|
||||
- `#n8n-integration` - n8n連携
|
||||
- `#automated-tasks` - 自動タスク
|
||||
- `#monitoring` - 監視
|
||||
|
||||
### 🛠️ Operations
|
||||
- `#github` - GitHub操作
|
||||
- `#git-operations` - Git操作
|
||||
- `#ci-cd` - CI/CD
|
||||
- `#infrastructure` - インフラ
|
||||
|
||||
### 📊 Analytics
|
||||
- `#metrics` - メトリクス
|
||||
- `#reports` - レポート
|
||||
- `#performance` - パフォーマンス
|
||||
- `#logs` - ログ
|
||||
|
||||
## Discordコマンド
|
||||
|
||||
### 基本コマンド
|
||||
```
|
||||
/status - システム状態確認
|
||||
/agent {agent_name} - エージェント切り替え
|
||||
/task {agent} {description} - タスク割り当て
|
||||
```
|
||||
|
||||
### GitHub連携
|
||||
```
|
||||
/gh issue {action} - Issue操作
|
||||
/gh pr {action} - PR操作
|
||||
/gh repo {action} - リポジトリ操作
|
||||
```
|
||||
|
||||
### 開発操作
|
||||
```
|
||||
/dev {project} - 開発サーバー起動
|
||||
/build {project} - ビルド実行
|
||||
/test {project} - テスト実行
|
||||
/clean {project} - クリーンアップ
|
||||
```
|
||||
|
||||
## セットアップ手順
|
||||
|
||||
1. Discordでカテゴリ・チャンネルを作成
|
||||
2. チャンネルIDを取得(開発者モード)
|
||||
3. ClawdBot設定にバインディング追加
|
||||
4. Botを再起動
|
||||
|
||||
## バインディング例
|
||||
|
||||
```json
|
||||
{
|
||||
"agentId": "kaede",
|
||||
"match": {
|
||||
"channel": "discord",
|
||||
"accountId": "ppal",
|
||||
"peer": { "kind": "channel", "id": "CHANNEL_ID" }
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## 優先順位
|
||||
|
||||
1. ✅ 基本チャンネル(#general, #status)
|
||||
2. 🔥 高頻度エージェント(しきるん、カエデ)
|
||||
3. 📋 レビューフロー(サクラ、ツバキ)
|
||||
4. 🚀 デプロイ(ボタン)
|
||||
5. 🌊 自動化(ながれるん)
|
||||
98
docs/development-server-optimization.md
Normal file
98
docs/development-server-optimization.md
Normal file
@ -0,0 +1,98 @@
|
||||
# ClawdBot開発用サーバー最適化計画
|
||||
|
||||
## サーバー情報
|
||||
- **Guild ID**: 1459626872660033607
|
||||
- **Bot Account**: PPAL Bot
|
||||
- **設定ステータス**: 有効
|
||||
|
||||
## 現在のエージェント配分
|
||||
|
||||
| Agent | チャンネル数 | 担当 |
|
||||
|-------|------------|------|
|
||||
| main | 1 | デフォルト |
|
||||
| しきるん | 22 | コーディネーター |
|
||||
| まなぶん | 6 | カリキュラム |
|
||||
| ささえるん | 15 | サポート |
|
||||
| ひろめるん | 3 | マーケティング |
|
||||
| つくるん | 0 | コンテンツ生成 |
|
||||
| かぞえるん | 0 | 分析・レポート |
|
||||
|
||||
## 推奨カテゴリ構造
|
||||
|
||||
### 🎯 Conductor Category (しきるん)
|
||||
- `#general` - 全体調整
|
||||
- `#announcements` - お知らせ
|
||||
- `#task-assignments` - タスク割り当て
|
||||
- `#coordination` - 連携調整
|
||||
|
||||
### 📚 Curriculum Category (まなぶん)
|
||||
- `#curriculum-planning` - カリキュラム設計
|
||||
- `#lesson-review` - レッスンレビュー
|
||||
- `#learning-materials` - 学習教材
|
||||
- `#student-feedback` - 受講生フィードバック
|
||||
- `#course-updates` - コース更新
|
||||
- `#qa-curriculum` - カリキュラムQ&A
|
||||
|
||||
### 🛠️ Content Creation Category (つくるん) - **新規追加**
|
||||
- `#content-generation` - コンテンツ生成
|
||||
- `#slide-creation` - スライド作成
|
||||
- `#script-writing` - スクリプト作成
|
||||
- `#media-production` - メディア制作
|
||||
- `#content-review` - コンテンツレビュー
|
||||
- `#template-library` - テンプレートライブラリ
|
||||
|
||||
### 📢 Marketing Category (ひろめるん)
|
||||
- `#promotion-strategy` - プロモーション戦略
|
||||
- `#social-media` - ソーシャルメディア
|
||||
- `#content-distribution` - コンテンツ配信
|
||||
- `#campaign-tracking` - キャンペーン追跡
|
||||
|
||||
### 🛡️ Support Category (ささえるん)
|
||||
- `#student-support` - 受講生サポート
|
||||
- `#technical-help` - テクニカルヘルプ
|
||||
- `#faq-management` - FAQ管理
|
||||
- `#issue-tracking` - 課題追跡
|
||||
- `#troubleshooting` - トラブルシューティング
|
||||
- `#support-analytics` - サポート分析
|
||||
- `#knowledge-base` - ナレッジベース
|
||||
- `#training-resources` - トレーニングリソース
|
||||
|
||||
### 📊 Analytics Category (かぞえるん) - **新規追加**
|
||||
- `#performance-metrics` - パフォーマンス指標
|
||||
- `#engagement-data` - エンゲージメントデータ
|
||||
- `#sales-reports` - 売上レポート
|
||||
- `#kpi-dashboard` - KPIダッシュボード
|
||||
- `#trend-analysis` - トレンド分析
|
||||
- `#report-automation` - レポート自動化
|
||||
|
||||
## 新規チャンネル作成手順
|
||||
|
||||
1. Discordでカテゴリ・チャンネルを作成
|
||||
2. チャンネルIDを取得(開発者モード有効化)
|
||||
3. `~/.clawdbot/clawdbot.json` にバインディング追加
|
||||
4. ClawdBotを再起動
|
||||
|
||||
## バインディング追加例
|
||||
|
||||
```json
|
||||
{
|
||||
"agentId": "tsukurun",
|
||||
"match": {
|
||||
"channel": "discord",
|
||||
"accountId": "ppal",
|
||||
"peer": { "kind": "channel", "id": "NEW_CHANNEL_ID" }
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## 次のステップ
|
||||
|
||||
1. ✅ Phase 1: Discordサーバー構築(完了)
|
||||
2. ✅ Phase 2: ClawdBotインストール(完了)
|
||||
3. 🔄 Phase 3: チャンネル最適化(進行中)
|
||||
- [ ] つくるん用チャンネル追加
|
||||
- [ ] かぞえるん用チャンネル追加
|
||||
- [ ] バインディング設定更新
|
||||
- [ ] 動作テスト
|
||||
4. ⏳ Phase 4: 権限設定
|
||||
5. ⏳ Phase 5: テスト・検証
|
||||
135
docs/fixes/2026-01-25-codex-review-summary.md
Normal file
135
docs/fixes/2026-01-25-codex-review-summary.md
Normal file
@ -0,0 +1,135 @@
|
||||
# CodeXレビュー依頼: Clawdbot Config Reload Loop Fix
|
||||
|
||||
## 📋 レビュー依頼内容
|
||||
|
||||
**概要**: Clawdbotの並列実行時におけるサービス再起動ループの修正
|
||||
|
||||
**関連Issue**: #93 (Fix実装), #92 (調査レポート)
|
||||
|
||||
---
|
||||
|
||||
## 🔧 変更サマリー
|
||||
|
||||
### ファイル: `src/gateway/config-reload.ts`
|
||||
|
||||
#### 変更1: metaフィールド無視ルール追加 (line 67)
|
||||
|
||||
```diff
|
||||
const BASE_RELOAD_RULES_TAIL: ReloadRule[] = [
|
||||
{ prefix: "identity", kind: "none" },
|
||||
{ prefix: "wizard", kind: "none" },
|
||||
{ prefix: "logging", kind: "none" },
|
||||
+ { prefix: "meta", kind: "none" }, // FIX: meta.*フィールドの変更を無視
|
||||
{ prefix: "models", kind: "none" },
|
||||
```
|
||||
|
||||
**目的**: `meta.lastTouchedAt`, `meta.lastTouchedVersion` の変更による再起動ループを防止
|
||||
|
||||
#### 変更2: デバウンス時間延長 (line 43)
|
||||
|
||||
```diff
|
||||
const DEFAULT_RELOAD_SETTINGS: GatewayReloadSettings = {
|
||||
mode: "hybrid",
|
||||
- debounceMs: 300,
|
||||
+ debounceMs: 5000, // FIX: 300ms → 5000ms
|
||||
};
|
||||
```
|
||||
|
||||
**目的**: 並列実行時の複数Config更新を集約
|
||||
|
||||
---
|
||||
|
||||
## 🎯 レビュー観点
|
||||
|
||||
### 1. 正確性 (Accuracy)
|
||||
|
||||
**質問**: metaフィールドの変更が正しく無視されるか?
|
||||
|
||||
**確認事項**:
|
||||
- [ ] `meta.*` パスが `kind: "none"` でマッチされる
|
||||
- [ ] `diffConfigPaths()` でmetaフィールドが検出されても無視される
|
||||
- [ ] `buildGatewayReloadPlan()` でmetaが `noopPaths` に追加される
|
||||
|
||||
### 2. 完全性 (Completeness)
|
||||
|
||||
**質問**: 他のフィールドへの副作用はないか?
|
||||
|
||||
**確認事項**:
|
||||
- [ ] 既存のhot reloadアクションは正しく動作
|
||||
- [ ] その他の `"none"` ルールに影響なし
|
||||
- [ ] `"restart"` ルールの評価順序に問題なし
|
||||
|
||||
### 3. 安全性 (Safety)
|
||||
|
||||
**質問**: デバウンス延長による問題はないか?
|
||||
|
||||
**確認事項**:
|
||||
- [ ] 5000msの遅延がクリティカルな操作に影響しない
|
||||
- [ ] ユーザー設定 (`gateway.reload.debounceMs`) で上書き可能
|
||||
- [ ] 長時間のデバウンスでConfig変更が失われない
|
||||
|
||||
### 4. パフォーマンス (Performance)
|
||||
|
||||
**質問**: 5000msの遅延がUXに影響しないか?
|
||||
|
||||
**確認事項**:
|
||||
- [ ] 通常のConfig更新は5秒以内に反映される
|
||||
- [ ] 並列実行時の複数更新が正しく集約される
|
||||
- [ ] 再起動回数が大幅に削減される (30回 → <5回/時間)
|
||||
|
||||
---
|
||||
|
||||
## 🧪 テストケース
|
||||
|
||||
### 追加テスト推奨
|
||||
|
||||
```typescript
|
||||
describe("Config Reload - meta field ignore", () => {
|
||||
it("should ignore meta.lastTouchedAt changes", () => {
|
||||
const prev = { meta: { lastTouchedAt: "2026-01-25T10:00:00Z" } };
|
||||
const next = { meta: { lastTouchedAt: "2026-01-25T10:05:00Z" } };
|
||||
const plan = buildGatewayReloadPlan(diffConfigPaths(prev, next));
|
||||
expect(plan.restartGateway).toBe(false);
|
||||
expect(plan.noopPaths).toContain("meta.lastTouchedAt");
|
||||
});
|
||||
|
||||
it("should ignore meta.lastTouchedVersion changes", () => {
|
||||
const prev = { meta: { lastTouchedVersion: "2026.1.23-1" } };
|
||||
const next = { meta: { lastTouchedVersion: "2026.1.24-0" } };
|
||||
const plan = buildGatewayReloadPlan(diffConfigPaths(prev, next));
|
||||
expect(plan.restartGateway).toBe(false);
|
||||
expect(plan.noopPaths).toContain("meta.lastTouchedVersion");
|
||||
});
|
||||
});
|
||||
|
||||
describe("Config Reload - 5000ms debounce", () => {
|
||||
it("should debounce multiple changes within 5000ms", async () => {
|
||||
// テスト実装が必要
|
||||
});
|
||||
});
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📊 エッジケース
|
||||
|
||||
| ケース | 期待動作 | 確認方法 |
|
||||
|--------|----------|----------|
|
||||
| meta以外のフィールド変更 | 正常に再起動 | Unit Test |
|
||||
| 5秒以上の間隔で更新 | デバウンス効かず | Unit Test |
|
||||
| hot reloadアクション | 既存機能正しく動作 | Integration Test |
|
||||
|
||||
---
|
||||
|
||||
## 🔄 レビューフロー
|
||||
|
||||
1. **コードレビュー**: 本内容を確認
|
||||
2. **フィードバック**: 問題があれば修正
|
||||
3. **承認**: 問題なければ承認
|
||||
4. **次フェーズ**: Unit Tests実行
|
||||
|
||||
---
|
||||
|
||||
**作成者**: しきるん (Claude Code)
|
||||
**作成日**: 2026-01-25
|
||||
**ステータス**: 🟡 レビュー待ち
|
||||
Loading…
Reference in New Issue
Block a user