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:
Shunsuke Hayashi 2026-01-26 06:38:05 +09:00
parent 7a39a76663
commit ed225fd9cf
4 changed files with 490 additions and 0 deletions

131
docs/bot-id-analysis.md Normal file
View 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で設定修正を試みます

View 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. 🌊 自動化(ながれるん)

View 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: テスト・検証

View 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
**ステータス**: 🟡 レビュー待ち