duoduo-channel-admin について
duoduo-channel-admin は、Duoduo のホストモードでチャンネルプラグインを管理するスキルです。インストール、設定、診断、リセットを種類別に案内し、記述子やセッション、プラグインのライフサイクルも扱います。
主な機能
- 01チャンネルのインストールとライフサイクル管理
- 02Feishu と ACP の個別手順
- 03種類別・インスタンス別の設定
- 04チャンネル診断とセッションリセット
活用シーン
- 01チャンネルプラグインのインストールや再起動
- 02プロンプトや実行環境の設定変更
- 03Feishu チャンネルのエラー診断
- 04古いチャンネルセッションのアーカイブ
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ openduo/ duoduo --skill duoduo-channel-adminインストール後、Claude Code で/duoduo-channel-adminを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/acp.mdchannel-config-model.mdchannel-lifecycle.mddiagnose-feishu.mdfeishu.mdreset-feishu-session.mdscripts/patch_markdown_frontmatter.pyreset-feishu-session.sh詳細
Duoduo チャネル管理
ホストモードでのチャネルのライフサイクルと、チャネルに関する設定です。種類(Feishu / ACP)とタスク(インストール/設定/診断/リセット)に応じて参照先を選びます。
まず状態を確認する
変更を加える前に、最小限の読み取り専用プローブを実行します。
duoduo daemon status # confirm host mode, daemon alive
duoduo daemon config # resolve kernel_dir, runtime_dir, defaults
duoduo channel list # see installed plugins + running state
特定のチャネルインスタンスを編集する際は、必ず最初に現在のディスクリプターを確認します。
cat <runtime_dir>/var/channels/<channel_id>/descriptor.md
種類に応じて参照する
チャネルの種類ごとに専用のリファレンスがあります。無関係な詳細でコンテキストを埋めないよう、依頼に該当するものだけを読み込みます。
- Feishu(飞书)→ references/feishu.mdを読みます。
インストール、認証情報、v0.5 の
/setupルーティングマトリックス、メインセッションの契約(オーナーとの DM で自動起動)、FEISHU_BOT_OWNERのセキュリティ対策、200340 のトリアージ、リセット手順、古いカードへの対策、v0.5 で許容される制限を扱います。 - ACP(编辑器)→ references/acp.mdを読みます。 インストールとエディター統合の動作を扱います。
種類をまたぐ共通規則(インストーラーパッケージの仕様、インストールがディスクへの書き込みのみである理由(明示的に stop && start するまで、実行中のプラグインは古いコードを提供し続けます)、およびライフサイクルの動詞)については、references/channel-lifecycle.mdを参照してください。
「動作がおかしい Feishu チャネルを診断する」という依頼で症状が明らかでない場合は、references/diagnose-feishu.mdを読みます。カードのエラー、/setup による拒否、古い履歴、見知らぬ人からのアクセス、所有者の不整合について、適切な対処法にたどり着けるよう判断ツリーで案内します。
チャネルの動作を設定する
ディスクリプターモデル:種類レベルは同じ種類のすべてのチャネルに適用するデフォルト値、インスタンスレベルは特定のチャネルに適用する値です。
- 種類のディスクリプター:
<kernel_dir>/config/<kind>.md - インスタンスのディスクリプター:
<runtime_dir>/var/channels/<channel_id>/descriptor.md
手動で編集できるキー:
new_session_workspaceprompt_mode(claude、grok、pi で使用可能。runtime: codexが明示されたジョブでは拒否されます)time_gap_minutesruntime(claude|codex|grok|pi— pi セッションにはモデルポインターも必要です。duoduo-runtime-admin の pi-runtime リファレンスを参照してください)。実行中のセッションはランタイムに紐付けられています。このキーを変更する前に/clearしてください。そうしないと、次のターンが拒否されます。duoduo が認識しない値は、その値が選択されるターンごとに拒否され、別のランタイムに置き換えられることはありません。voidは、セッションでモデルを実行しない tether などのプラグイン向けです。通常のチャットチャネルには設定しないでください。モデルが実行されず、プラグインが返信の代わりに受信メッセージを送り返す場合があります。streamallowedTools(権限の自動承認 — ツールの利用範囲は拡張されません)disallowedTools(MCP ツールのみ)additionalDirectoriesclaude.tools(固定の許可リストコアに追加の組み込みツールを統合します。組み込みツールの利用範囲は許可リスト方式です)
インスタンスに紐付ける次の2つのキーは、通常 channel.spawn が書き込みます(手動編集しません):bound_by、bound_at。全キーの一覧と new_session_workspace の優先順位については、references/channel-config-model.mdを参照してください。
Markdown の本文とコメントを保持する必要があるフロントマターの編集には、scripts/patch_markdown_frontmatter.pyを使用します。
紐付けられたチャネルをリセットする
チャネルのディスクリプター、セッション、またはメッセージ履歴が古くなり、ユーザーが状態を一新したい場合:
bash scripts/reset-feishu-session.sh --channel-id feishu-<chat_id>
duoduo channel feishu stop && duoduo channel feishu start
このスクリプトは、チャネルを参照するすべてのセッションに対して duoduo session archive <session_key> を呼び出します。この RPC は、セッションディレクトリ、ingress、outbox のレコード、チャネルのディスクリプターを var/<kind>-archive/ に移動します(タイムスタンプ付きで、mv による復元が可能です)。プラグインの再起動は必須です。プラグインはサブスクリプションの状態をメモリにキャッシュするためです。
スクリプトが削除するものと、各項目が重要な理由については、references/reset-feishu-session.mdを参照してください。ユーザーから「リセットした後もボットが古いメッセージを引用する」と報告された場合、それこそがこのスクリプトが存在する理由です。
プロンプトの編集
kernel/config/<kind>.mdの Markdown 本文が、kind プロンプトです。descriptor.mdの Markdown 本文が、インスタンスプロンプトです。- インスタンスの frontmatter とプロンプトは、kind のデフォルト設定より優先されます。
- 可能な場合は、ブートストラップによってシードされたガイダンスコメントを保持してください。
運用ルール
- 変更範囲はできるだけ小さくしてください。デフォルト設定には kind レベルを、単一のルームまたはセッションのサーフェスにはインスタンスレベルを使用します。
~/.config/duoduo/.envのチャンネル認証情報を編集した後は、デーモンだけでなく、該当するチャンネルのプロセスも再起動してください。- 新しいプラグインをインストールした後は、
duoduo channel listとduoduo channel <type> statusで確認してください。 - 認証情報、インストール状態、ランタイム設定がすべて正しいように見えるのにチャンネルが動作しない場合は、製品またはプラグインの問題である可能性が高いと判断してください。詳しくは ../duoduo-admin/references/issue-reporting.md をご覧ください。
- リクエストの内容がテレメトリ、実行間隔、デバッグログ、または Codex に関するものであれば、
duoduo-runtime-adminに引き継いでください。