コンテンツにスキップ

エキスパートパック

1つのzipにAIチームまるごと——エージェント、スキル、SOP、組織配置。インポートするものを一切信用しないセキュリティパイプラインを通してインストールされます。


エキスパートパックは、チームを持ち運べるバンドルにしたものです:reports_to階層を持つ1つ以上のエージェントに加えて、そのチームを初日から役立たせるスキル、共有wikiのSOPページ、推奨プロンプト、チャネルのヒントが含まれます。ネイティブフォーマットは、expert.tomlマニフェストを持つディレクトリ(または.zip、またはhttps://…zip URL)です:

<slug>/
├── expert.toml # manifest: roster, category, prompts, requires
├── agents/<name>/soul.md # persona (becomes SOUL.md)
├── agents/<name>/agent.partial.toml # settings fragment, deep-merged onto the scaffold
├── skills/<name>/SKILL.md # Agent Skills spec, verbatim
└── wiki/<ns>/*.md # shared-wiki SOP / policy pages

各ロスターエントリはnamerolereports_to(パック内の上司)、departmentrank、トリガーキーワード、スキルリストを持ちます。duduclaw expert packはzip化の前に厳格に検証します(slugの形式、名前の重複、トポロジカルソートによるreports_toの循環検出、soul.mdの欠落、SKILL.mdのfrontmatterのnameがディレクトリ名と一致すること)。installは寛容で、修正を推測する代わりに問題を報告します。[expert.requires]はdoctor形式でenv変数とバイナリを列挙します——不足していれば警告しますが、決してブロックはしません。

2つの外部フォーマットも同じコマンドでインストールできます:Claude Codeプラグイン(.claude-plugin/plugin.json)と単体のAgent Skill(SKILL.md)。フォーマット検出はフェイルクローズです——認識できないレイアウトは、見つかったものの一覧とともに拒否され、中途半端にインポートされることは決してありません。

ワンクリックのダッシュボードインストールやLLM生成ドラフトを含め、すべてのインストールは同じシーケンスを実行します:

  1. アーカイブをフェンスする。 Zip展開はzip-slip対策で保護され、50 MB上限付き。URLダウンロードも同じ上限を共有します。
  2. 配置を最初に検証する。 --attach-under <agent>(パックのルートエージェントを既存の上司、たとえばあなたのCEOの下にぶら下げる)は、何かが書き込まれる前にチェックされます——タイプミスは何もインストールされないまま中断します。
  3. すべての外来物をスキャンする。 インポートされる各SOUL/SKILLテキストはDATAに降格され、プロンプトインジェクション入力ガードとスキルセキュリティスキャナーの両方を通されます。ブロックレベルの検出があればそのアセットの着地は止まり、レポートが理由を示します。
  4. 親から順にスキャフォールドする。 エージェントはトポロジカル順にインストールされるため、reports_toは常に実在するものを指します。名前の衝突は、--rename-importedサフィックスにオプトインしない限り、コンフリクトとして報告されます。未知のroleストリングはworkerにフォールバックします(不正なroleはレジストリロード時にエージェントを壊すため)。Claude以外のモデルidはそのまま保持されますが、レビュー用にフラグが立ちます——プラットフォームが黙って単一モデルへ強制変換することは決してありません。
  5. 置き換えではなくマージする。 agent.partial.tomlはスキャフォールドされたagent.tomlにディープマージされます。パックが宣言するMCPサーバーはエージェントの.mcp.jsonにマージされますが、配線済みのduduclawサーバーエントリが上書きされることはありません——敵対的なパックはツールサーフェスを乗っ取れません。
  6. フックを隔離する。 下記参照。

--dry-runは1バイトも書き込まずに完全なプランを表示します。すべての項目は正直なレポート(imported / skipped / conflict / warning)に載ります——何も黙って落とされません。expert remove <slug>は、インストール記録が「パックが作成した」と言うものだけを削除します。既存のアセットは残ります。

departmentを持つロスターメンバーは、それがagent.toml[agent] departmentに書き込まれ、インストーラーが対応する共有wikiの部門スペースを作成します——新入りは即座に組織図と部門ページに現れます。ランク(executive / manager / staff)は表示用メタデータです:マニフェストが省略した場合はroleから導出されます(ceo → executive、main / front_desk / team_leader / product_manager → manager、それ以外はstaff)。ランクは導出されるものであり、決して権威を持ちません——階層の唯一の情報源はreports_toツリーのままです。

ダッシュボードカタログは、22のプレミアム産業チームプレイブック(クリニック、薬局、会計、法律事務所、eコマース…)をワンクリックでインストール可能なパックとして表示します。冪等なexpert convert-teamsパイプラインが、オンデマンドでバージョン付きキャッシュへ変換します。単体のエキスパートパックもチームと並んで一覧されます。エントリは6つのカテゴリセクション——health、professional、retail、lifestyle、education、other——にグループ化され、各カードはそのロスターがどの部門に着地するかを表示するため、22+のパックはフラットなグリッドではなく組織メニューとして読めます。

あなたのビジネス向けのパックがない?説明してください。ガイド付きフローは、業種のヒント、自由記述の説明(最大2,000文字)、チームサイズ(1–8)、推奨チャネルを受け取ります。モデルは厳格なJSONデザインを出力します——モデルは決してファイルを書きません。ゲートウェイがデザインをドラフトパックとして実体化し、マニフェストバリデーターのミラーで検証し、プレビューを表示します。ドラフトごとに最大5回の生成/修正ラウンド。ドラフトは24時間で期限切れになります。

2つのハードルールが自己オーサリングを安全に保ちます:生成されたパックは決してフックを含んではならない(プロンプトでブロックされ、生成後にも検証、フェイルクローズ)。そしてドラフトのインストールは、上記のCLIセキュリティパイプライン全体を通過します——LLMの出力は、見知らぬ人のzipと同じ外部コンテンツとして扱われます。

フック:人間が承認するまで隔離

Section titled “フック:人間が承認するまで隔離”

インポートされたフックは、エージェントランタイムに配線される任意のコマンドです——サプライチェーンリスクです。そのため無効化された状態で隔離ディレクトリにコピーされ、暗黙に配線されることは決してありません。有効化には明示的な許可が必要です:インストール時の--trust-hooks、または後からダッシュボードの承認センターで決定されるApprovalBrokerリクエストをduduclaw expert hooks <slug>で適用する方法です。許可なし、拒否、TTL期限切れの承認は、いずれもフックを無効のままにします(フェイルクローズ)。状態機械(disabled → pending_approval → enabled | disabled)はパックごとに永続化され、CLIとダッシュボードで共有されます。

duduclaw expert export <slug> --format claude-pluginは、インストール済みパックをClaude Codeプラグインへ戻します:.claude-plugin/plugin.json(DuDuClaw固有フィールドはx-duduclawキーの下に置かれ、Claude Codeはこれを無視します)、エージェントごとにfrontmatterとSOUL本文を持つagents/<id>.md、そしてエージェントの非duduclaw MCPサーバーをプラグインレベルで集約したもの。ここで作ったチームがここにロックインされることはありません。

項目 制限
アーカイブサイズ(zip / ダウンロード) 50 MB
生成チームサイズ 1–8エージェント
ドラフトごとの生成ラウンド 5
ドラフトの寿命 24 h
生成パック内のフック なし(フェイルクローズ)
エクスポートフォーマット claude-plugin(P0)