jpskill.com
🛠️ 開発・MCP コミュニティ 🔴 エンジニア向け 👤 エンジニア・AI開発者

🛠️ Devチーム

dev_team

複数のAIエージェントで構成される開発

⏱ コードレビュー 1時間 → 10分

📺 まず動画で見る(YouTube)

▶ 【衝撃】最強のAIエージェント「Claude Code」の最新機能・使い方・プログラミングをAIで効率化する超実践術を解説! ↗

※ jpskill.com 編集部が参考用に選んだ動画です。動画の内容と Skill の挙動は厳密には一致しないことがあります。

📜 元の英語説明(参考)

Orchestrate a multi-agent dev/agency team with shared memory, handoffs, and OpenClaw sessions. Use when (1) First-time onboarding — follow references/OPENCLAW_TEAM_SETUP_GUIDE.md (guided variables + master prompt) and references/SKILL-SETUP.md, (2) Running specialized agents (PM, dev, QA, security) on customer or Shopware tasks, (3) Setting up shared team folders and SOUL.md identities, (4) sessions_spawn/sessions_send or control channels (e.g. Telegram), (5) Solo-founder multi-agent pattern from awesome-openclaw-usecases.

🇯🇵 日本人クリエイター向け解説

一言でいうと

複数のAIエージェントで構成される開発

※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。

⚡ おすすめ: コマンド1行でインストール(60秒)

下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。

🍎 Mac / 🐧 Linux
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o dev-team.zip https://jpskill.com/download/4726.zip && unzip -o dev-team.zip && rm dev-team.zip
🪟 Windows (PowerShell)
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/4726.zip -OutFile "$d\dev-team.zip"; Expand-Archive "$d\dev-team.zip" -DestinationPath $d -Force; ri "$d\dev-team.zip"

完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。

💾 手動でダウンロードしたい(コマンドが難しい人向け)
  1. 1. 下の青いボタンを押して dev-team.zip をダウンロード
  2. 2. ZIPファイルをダブルクリックで解凍 → dev-team フォルダができる
  3. 3. そのフォルダを C:\Users\あなたの名前\.claude\skills\(Win)または ~/.claude/skills/(Mac)へ移動
  4. 4. Claude Code を再起動

⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。

🎯 このSkillでできること

下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。

📦 インストール方法 (3ステップ)

  1. 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
  2. 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
  3. 3. 展開してできたフォルダを、ホームフォルダの .claude/skills/ に置く
    • · macOS / Linux: ~/.claude/skills/
    • · Windows: %USERPROFILE%\.claude\skills\

Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。

詳しい使い方ガイドを見る →
最終更新
2026-05-17
取得日時
2026-05-18
同梱ファイル
10

💬 こう話しかけるだけ — サンプルプロンプト

  • Dev Team を使って、最小構成のサンプルコードを示して
  • Dev Team の主な使い方と注意点を教えて
  • Dev Team を既存プロジェクトに組み込む方法を教えて

これをClaude Code に貼るだけで、このSkillが自動発動します。

📖 Skill本文(日本語訳)

※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。

[Skill 名] dev_team

開発チーム (OpenClaw)

はじめに

このスキルとは

dev_team は、OpenClaw スキルガイド (プレーンテキスト: Markdown と JSON スキーマの注釈) です。これは、専門的な AI エージェントからなる多役割の開発または代理店「チーム」を運営するのに役立ちます。すべてを1つの一般的なチャットに混ぜるのではなく、明確な役割、ディスク上の共有プロジェクトメモリ、およびエージェント間の追跡可能な引き継ぎが得られます。

このスキルはバイナリをインストールせずシークレットを作成しません。これはフォルダレイアウトワークフロー、およびプロンプトスニペットを記述します。ファイルはあなたまたは OpenClaw が作成します ( OPENCLAW_TEAM_SETUP_GUIDE.md を参照してください)。

これでできること

  • 役割の分離 (例: リード、PM、開発者、QA、セキュリティ): 各 OpenClaw エージェントが独自のワークスペース、ペルソナ、スコープを持ちます。
  • 顧客/クライアントのクリーンな管理: TEAM_ROOT/team/customers/<customer>/CONTEXT.md (リポジトリ、Shopware ステージング、ルール)。
  • 作業をタスクにまとめる: …/tasks/<task_id>/ の下に、例えば SPEC.mdHANDOFF.mdQA_NOTES.md — 次のエージェントはどこから続ければよいかを知っています。
  • 多くの顧客を可視化: ポートフォリオインデックス board.json + 短い人間向けインデックス PROJECT_STATUS.md (詳細はタスクフォルダに保持されます)。
  • ルーティングの記録 — どのチャネルで誰がどの役割を果たすか — を TEAM_ROOT/team/AGENTS.md に記録します — 特定のメッセンジャー (Telegram、Discord など) を義務付けることなく
  • OpenClaw によるオンボーディングの自動化: セットアップガイドのマスタープロンプトと変数リストをコピー&ペーストします。

この SKILL.md の構成

パート 内容
このはじめに 概要、機能、図
元のユースケース (参照) コミュニティから — 例となるストーリーであり、「このように構築しなければならない」というものではありません
開発チームの拡張 具体的なルール: TEAM_ROOT、引き継ぎ、Shopware のメモ、board.json
references/ 詳細: セットアップ、レイアウト、ロールテンプレート、ボードスキーマ — ここからリンクされています

より大きな構造マップ (ASCII ボックス + Mermaid): ORG_CHART_EXAMPLE.md

データフロー: あなた、エージェント、共有 team/

図では: コントロールOpenClaw (複数のワークスペース) ↔ 1つの共有ディレクトリ TEAM_ROOT/team/顧客タスク

flowchart TB
  subgraph control [Control]
    U[Human_or_channel]
  end

  subgraph oc [OpenClaw]
    G[Gateway]
    W1[Workspace_role_A]
    W2[Workspace_role_B]
    Wn[Workspace_other_roles]
  end

  subgraph teamroot [Shared_team_memory]
    TR["TEAM_ROOT / team /"]
    IDX[Index_goals_decisions_status]
    B[board_json]
    RT[AGENTS_md_routing]
    CU[customers]
  end

  subgraph customerLayer [Per_customer]
    CX[CONTEXT_md]
    TK[tasks]
  end

  subgraph task [Per_task]
    SP[SPEC_md]
    HO[HANDOFF_md]
    QN[QA_NOTES_md]
  end

  U --> G
  G --> W1
  G --> W2
  G --> Wn
  W1 <--> TR
  W2 <--> TR
  Wn <--> TR
  TR --> IDX
  TR --> B
  TR --> RT
  TR --> CU
  CU --> CX
  CU --> TK
  TK --> SP
  TK --> HO
  TK --> QN

覚えておいてください: 各エージェントは独自の OpenClaw ワークスペース ( SOUL.mdAGENTS.md を含む) を持っています。チームで共有されるすべてTEAM_ROOT/team/の下に存在します。引き継ぎでは、そこへの絶対パスを優先してください。

クイックスタート

  1. OPENCLAW_TEAM_SETUP_GUIDE.md — マスタープロンプト、モード A/B (1つのエージェント vs 複数のエージェント)、変数。
  2. SKILL-SETUP.mdteam/ 下の正確なフォルダツリー。
  3. ROLE_TEMPLATES.md — 役割ごとのボイラープレート。

以下の参照ブロックawesome-openclaw-usecases — multi-agent-team.md からのものです。そこにある Telegram/VPS は、このスキルにとってのであり、要件ではありません — LICENSE.md を参照してください。


元のユースケース (参照)

コミュニティからの例のスタック — dev_team の必須の青写真ではありません。

マルチエージェント専門チーム (ソロファウンダー向けセットアップ)

ソロファウンダーは、戦略、開発、マーケティング、営業、運用など、あらゆる役割を担います。これらの役割間のコンテキスト切り替えは、深い作業を妨げます。採用は費用がかかり、時間がかかります。もし、それぞれが明確な役割と個性を持つ、専門的な AI エージェントの小さなチームを立ち上げ、すべてを単一のチャットインターフェースから制御できるとしたらどうでしょうか?

このユースケースでは、複数の OpenClaw エージェントを連携するチームとして設定します。各エージェントは特定のドメインに特化し、共有メモリを通じて通信し、あなたが選択する制御インターフェースを通じてアクセスできます (過去の記述ではTelegramが使用されました。他の人は Discord、WhatsApp、または sessions_spawn / sessions_send を使用する IDE/ゲートウェイのみを使用します)。

課題

  • 1つのエージェントではすべてをうまくこなせない: 戦略、コード、マーケティング調査、ビジネス分析を同時にこなそうとすると、単一のエージェントのコンテキストウィンドウはすぐにいっぱいになります。
  • 専門性の欠如: 一般的なプロンプトは一般的な出力を生成します。コーディングエージェントがマーケティングコピーを作成すべきではありません。
  • ソロファウンダーの燃え尽き症候群: 管理すべき別のツールではなく、チームが必要です。エージェントはバックグラウンドで作業し、結果を表面化すべきであり、絶え間ない監視を必要とすべきではありません。
  • 知識のサイロ化: マーケティング調査からの洞察が、手動で橋渡ししない限り、開発の優先順位に自動的に反映されることはありません。

何ができるか

  • 専門エージェント: 各エージェントは、独自の役割、個性、およびそのドメインに最適化されたモデルを持っています。
  • 共有メモリ: プロジェクトドキュメント、目標、主要な決定はすべてのエージェントがアクセスできます。何も失われることはありません。
  • プライベートコンテキスト: 各エージェントは、独自の会話履歴とドメイン固有のメモも保持します。
  • 単一の制御プレーン (1つのパターン、オプション): 元のストーリーでは、@-タグ付きのグループチャットがすべてのエージェントに到達しました。代わりに、1つの OpenClaw エージェント / 1つのスレッド (モード A)、エージェントごとの個別のチャネル、またはメッセンジャーをまったく使用しないことも可能です — OPENCLAW_TEAM_SETUP_GUIDE.md を参照してください。
  • スケジュールされた日次タスク: エージェント

(原文がここで切り詰められています)

📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開

Dev team (OpenClaw)

Introduction

What this skill is

dev_team is an OpenClaw skill guide (plain text: Markdown plus JSON schema notes). It helps you run a multi-role dev or agency “team” of specialized AI agents: instead of mixing everything in one generic chat, you get clear roles, shared project memory on disk, and traceable handoffs between agents.

The skill does not install binaries and does not create secrets. It describes folder layout, workflow, and prompt snippets — you or OpenClaw create the files (see OPENCLAW_TEAM_SETUP_GUIDE.md).

What you can do with it

  • Separate roles (e.g. Lead, PM, Dev, QA, Security): each OpenClaw agent with its own workspace, persona, and scope.
  • Manage customers / clients cleanly: TEAM_ROOT/team/customers/<customer>/CONTEXT.md (repos, Shopware staging, rules).
  • Bundle work into tasks: under …/tasks/<task_id>/ e.g. SPEC.mdHANDOFF.mdQA_NOTES.md — the next agent knows where to continue.
  • Keep many customers visible: portfolio index board.json + short human index PROJECT_STATUS.md (details stay in task folders).
  • Record routing — who plays which role on which channel — in TEAM_ROOT/team/AGENTS.mdwithout mandating a specific messenger (Telegram, Discord, …).
  • Automate onboarding with OpenClaw: copy-paste master prompt and variable list in the setup guide.

How this SKILL.md is structured

Part Content
This introduction Overview, capabilities, diagram
Original use case (reference) From the community — example story, not “you must build it this way”
Dev-team extensions Concrete rules: TEAM_ROOT, handoffs, Shopware notes, board.json
references/ Deep dives: setup, layout, role templates, board schema — linked from here

A larger structure map (ASCII boxes + more Mermaid): ORG_CHART_EXAMPLE.md.

Data flow: you, agents, shared team/

In the diagram: controlOpenClaw (multiple workspaces) ↔ one shared directory TEAM_ROOT/team/customerstasks.

flowchart TB
  subgraph control [Control]
    U[Human_or_channel]
  end

  subgraph oc [OpenClaw]
    G[Gateway]
    W1[Workspace_role_A]
    W2[Workspace_role_B]
    Wn[Workspace_other_roles]
  end

  subgraph teamroot [Shared_team_memory]
    TR["TEAM_ROOT / team /"]
    IDX[Index_goals_decisions_status]
    B[board_json]
    RT[AGENTS_md_routing]
    CU[customers]
  end

  subgraph customerLayer [Per_customer]
    CX[CONTEXT_md]
    TK[tasks]
  end

  subgraph task [Per_task]
    SP[SPEC_md]
    HO[HANDOFF_md]
    QN[QA_NOTES_md]
  end

  U --> G
  G --> W1
  G --> W2
  G --> Wn
  W1 <--> TR
  W2 <--> TR
  Wn <--> TR
  TR --> IDX
  TR --> B
  TR --> RT
  TR --> CU
  CU --> CX
  CU --> TK
  TK --> SP
  TK --> HO
  TK --> QN

Remember: each agent has its own OpenClaw workspace (incl. SOUL.md, AGENTS.md). Everything shared for the team lives under TEAM_ROOT/team/ — in handoffs, prefer absolute paths there.

Quick start

  1. OPENCLAW_TEAM_SETUP_GUIDE.md — master prompt, Mode A/B (one vs. multiple agents), variables.
  2. SKILL-SETUP.md — exact folder tree under team/.
  3. ROLE_TEMPLATES.md — boilerplate per role.

The reference block below comes from awesome-openclaw-usecases — multi-agent-team.md: Telegram/VPS there are examples, not requirements for this skill — see LICENSE.md.


Original use case (reference)

Example stack from the community — not a mandatory blueprint for dev_team.

Multi-Agent Specialized Team (Solo Founder Setup)

Solo founders wear every hat — strategy, development, marketing, sales, operations. Context-switching between these roles destroys deep work. Hiring is expensive and slow. What if you could spin up a small, specialized team of AI agents, each with a distinct role and personality, all controllable from a single chat interface?

This use case sets up multiple OpenClaw agents as a coordinated team, each specialized in a domain, communicating through shared memory and reachable through a control surface you choose (the historic write-up used Telegram; others use Discord, WhatsApp, or only the IDE/gateway with sessions_spawn / sessions_send).

Pain Point

  • One agent can't do everything well: A single agent's context window fills up fast when juggling strategy, code, marketing research, and business analysis
  • No specialization: Generic prompts produce generic outputs — a coding agent shouldn't also be crafting marketing copy
  • Solo founder burnout: You need a team, not another tool to manage. The agents should work in the background and surface results, not require constant babysitting
  • Knowledge silos: Insights from marketing research don't automatically inform dev priorities unless you manually bridge them

What It Does

  • Specialized agents: Each agent has a distinct role, personality, and model optimized for its domain
  • Shared memory: Project docs, goals, and key decisions are accessible to all agents — nothing gets lost
  • Private context: Each agent also maintains its own conversation history and domain-specific notes
  • Single control plane (one pattern, optional): In the original story, one group chat with @-tags reached every agent; you might instead use one OpenClaw agent / one thread (Mode A), separate channels per agent, or no messenger at all — see OPENCLAW_TEAM_SETUP_GUIDE.md
  • Scheduled daily tasks: Agents proactively work without being asked — content prompts, competitor monitoring, metric tracking
  • Parallel execution: Multiple agents can work on independent tasks simultaneously

Example Team Configuration

Channel lines in the snippets (Channel: Telegram …) copy the original demo. Substitute your real channel(s) and @-handles in TEAM_ROOT/team/AGENTS.md — do not read them as “you must install Telegram.”

Agent 1: Milo (Strategy Lead)

## SOUL.md — Milo

You are Milo, the team lead. Confident, big-picture, charismatic.

Responsibilities:
- Strategic planning and prioritization
- Coordinating the other agents
- Weekly goal setting and OKR tracking
- Synthesizing insights from all agents into actionable decisions

Model: Claude Opus
Channel: Telegram (responds to @milo)

Daily tasks:
- 8:00 AM: Review overnight agent activity, post morning standup summary
- 6:00 PM: End-of-day recap with progress toward weekly goals

Agent 2: Josh (Business & Growth)

## SOUL.md — Josh

You are Josh, the business analyst. Pragmatic, straight to the point, numbers-driven.

Responsibilities:
- Pricing strategy and competitive analysis
- Growth metrics and KPI tracking
- Revenue modeling and unit economics
- Customer feedback analysis

Model: Claude Sonnet (fast, analytical)
Channel: Telegram (responds to @josh)

Daily tasks:
- 9:00 AM: Pull and summarize key metrics
- Track competitor pricing changes weekly

Agent 3: Marketing Agent

## SOUL.md — Marketing Agent

You are the marketing researcher. Creative, curious, trend-aware.

Responsibilities:
- Content ideation and drafting
- Competitor social media monitoring
- Reddit/HN/X trend tracking for relevant topics
- SEO keyword research

Model: Gemini (strong at web research and long-context analysis)
Channel: Telegram (responds to @marketing)

Daily tasks:
- 10:00 AM: Surface 3 content ideas based on trending topics
- Monitor competitor Reddit/X mentions daily
- Weekly content calendar draft

Agent 4: Dev Agent

## SOUL.md — Dev Agent

You are the dev agent. Precise, thorough, security-conscious.

Responsibilities:
- Coding and architecture decisions
- Code review and quality checks
- Bug investigation and fixing
- Technical documentation

Model: Claude Opus / Codex (for implementation)
Channel: Telegram (responds to @dev)

Daily tasks:
- Check CI/CD pipeline health
- Review open PRs
- Flag technical debt items

Typical building blocks (all optional — pick what matches your host)

Nothing here is mandatory for adopting the TEAM_ROOT/team/ layout in Dev-team extensions. The list below is “things people often combine,” not a checklist you must complete.

  • Control / chat (optional): A channel skill (e.g. Telegram/Discord/WhatsApp) if you want group/mobile routing or rely on OpenClaw/IDE only without a messenger.
  • Multi-agent coordination (when you run multiple agents): e.g. sessions_spawn / sessions_sendif your setup uses them; single-agent workflows do not need this.
  • Team memory for this skill: A shared directory (TEAM_ROOT/team/), not a specific third-party notes app.
  • API keys / models: Only whatever your gateway already uses; mixed providers may mean multiple keys — that is a host concern, not prescribed here.
  • Always-on hardware: A VPS is one way to keep a gateway reachable 24/7; many setups use a desktop/laptop, hosted OpenClaw, or no dedicated VPS — whatever you already run.

How to Set It Up

1. Shared Memory Structure

team/
├── GOALS.md           # Current OKRs and priorities (all agents read)
├── DECISIONS.md       # Key decisions log (append-only)
├── PROJECT_STATUS.md  # Current project state (updated by all)
├── agents/
│   ├── milo/          # Milo's private context and notes
│   ├── josh/          # Josh's private context
│   ├── marketing/     # Marketing agent's research
│   └── dev/           # Dev agent's technical notes

2. Routing example (Telegram — illustrative only)

The upstream example used one Telegram group and @-tags. Your routing belongs in TEAM_ROOT/team/AGENTS.md for whatever channel(s) you actually use. The block below shows the same idea (tag → agent) transposed to Telegram:

## AGENTS.md — Telegram Routing

Telegram group: "Team"

Routing:
- @milo → Strategy agent (spawns/resumes milo session)
- @josh → Business agent (spawns/resumes josh session)
- @marketing → Marketing agent (spawns/resumes marketing session)
- @dev → Dev agent (spawns/resumes dev session)
- @all → Broadcast to all agents
- No tag → Milo (team lead) handles by default

Each agent:
1. Reads shared GOALS.md and PROJECT_STATUS.md for context
2. Reads its own private notes
3. Processes the message
4. Responds in Telegram
5. Updates shared files if the response involves a decision or status change

3. Scheduled Tasks

## HEARTBEAT.md — Team Schedule

Daily:
- 8:00 AM: Milo posts morning standup (aggregates overnight agent activity)
- 9:00 AM: Josh pulls key metrics
- 10:00 AM: Marketing surfaces content ideas from trending topics
- 6:00 PM: Milo posts end-of-day recap

Ongoing:
- Dev: Monitor CI/CD health, review PRs as they come in
- Marketing: Reddit/X keyword monitoring (every 2 hours)
- Josh: Competitor pricing checks (weekly)

Weekly:
- Monday: Milo drafts weekly priorities (input from all agents)
- Friday: Josh compiles weekly metrics report

Key Insights

  • Personality matters more than you'd think: Giving agents distinct names and communication styles makes it natural to "talk to your team" rather than wrestle with a generic AI
  • Shared memory + private context: The combination is critical — agents need common ground (goals, decisions) but also their own space to accumulate domain expertise
  • Right model for the right job: Don't use an expensive reasoning model for keyword monitoring. Match model capability to task complexity
  • Scheduled tasks are the flywheel: The real value emerges when agents proactively surface insights, not just when you ask
  • Start with 2, not 4: Begin with a lead + one specialist, then add agents as you identify bottlenecks

Inspired By

This pattern was described by Trebuh on X, a solo founder who set up 4 OpenClaw agents — Milo (strategy lead), Josh (business), a marketing agent, and a dev agent — all controlled through a single Telegram chat on a VPS. Each agent has its own personality, model, and scheduled tasks, while sharing project memory. He described it as "a real small team available 24/7."

The pattern was also confirmed on the OpenClaw Showcase, where @jdrhyne reported running "15+ agents, 3 machines, 1 Discord server — IT built most of this, just by chatting," and @nateliason described a multi-model pipeline (prototype → summarize → optimize → implement → repeat) using different models at each stage. Another user, @danpeguine, runs two different OpenClaw instances collaborating in the same WhatsApp group.

Related Links


Dev-team extensions

Agency, Shopware, and customer tasks: Use this section together with the reference use case above (example, no mandatory tools). OpenClaw skill format: Creating Skills.

OpenClaw workspace mapping

This team pattern must work on any OpenClaw deployment (laptop, bare-metal server, VM, Docker/Kubernetes). Official docs often show ~/.openclaw/ as a default; your host may set OPENCLAW_STATE_DIR, per-agent workspaces under /srv/..., or volume mounts. Resolve actual directories from your openclaw.json and environment.

Official path map (OpenClaw docs)

Purpose Typical default Config / override
Gateway config <stateDir>/openclaw.json e.g. OPENCLAW_CONFIG_PATH (see docs)
State root ~/.openclaw OPENCLAW_STATE_DIR
Agent workspace (default CWD for file tools) ~/.openclaw/workspace agents.list[].workspace; profile: OPENCLAW_PROFILE
Per-agent auth / state <stateDir>/agents/<agentId>/agent agents.list[].agentDir
Sessions / transcripts <stateDir>/agents/<agentId>/sessions/
Workspace-only skills <thatWorkspace>/skills/ Highest precedence for that agent
Shared (managed) skills <stateDir>/skills/ All agents using this state dir
Extra skill dirs skills.load.extraDirs
Workspace bootstrap files AGENTS.md, SOUL.md, USER.md, memory/, … Agent workspace — file map

<stateDir> is the effective OpenClaw state directory for this gateway: use OPENCLAW_STATE_DIR if set, otherwise ~/.openclaw.

Multi-agent implication: each OpenClaw agentId has its own workspace tree, sessions, and agentDir credentials — they do not automatically share one project folder. Shared chat history lives under <stateDir>/agents/<agentId>/sessions/. Shared project memory for this skill is the team/ tree under TEAM_ROOT (below).

TEAM_ROOT (canonical shared tree)

The extended team/ layout (Extended shared directory layout) is not a built-in OpenClaw path. This skill defines a single root directory per installation:

  1. stateDir: OPENCLAW_STATE_DIR if set, else ~/.openclaw.
  2. TEAM_ROOT: If environment variable DEV_TEAM_ROOT is set, use it as TEAM_ROOT. Otherwise TEAM_ROOT = <stateDir>/dev-team.
  3. On disk, shared agency data lives under TEAM_ROOT/team/ (e.g. TEAM_ROOT/team/customers/<customer_id>/, task artefacts under …/customers/<customer_id>/tasks/<task_id>/). There is no top-level team/tasks/. All agents that participate in handoffs must use the same resolved absolute TEAM_ROOT.
  4. Docker / container sandbox: if agents run in isolated containers, mount TEAM_ROOT at the same host path inside each sandbox that needs handoffs. See Sandboxing.
  5. Git: git init under TEAM_ROOT is optional (recommended for history/backup); OpenClaw does not do this for you.

Do not rely on relative team/... paths across different agent workspaces unless each workspace’s CWD is intentionally shared — prefer absolute TEAM_ROOT/team/... in instructions and handoffs.

Bootstrap: “Set up the dev_team skeleton”

When the user asks to set up / initialize this layout (e.g. “Set up the dev_team skeleton / file layout”):

Human-facing playbook: references/OPENCLAW_TEAM_SETUP_GUIDE.md (guided team setup + master prompt for OpenClaw). Folder details: references/SKILL-SETUP.md — section “File scaffold: create exactly like this” for the canonical tree.

  1. Resolve stateDir and then TEAM_ROOT using the rules above.
  2. Create TEAM_ROOT/team/ and the directories from Extended shared directory layout: customers/, shared/reviews/, shared/security/, agents/pm|dev|qa|security|lead/ (adjust role folder names to match your team). Do not create a top-level team/tasks/. Per-customer customers/<customer_id>/tasks/ appears lazily when the first task for that customer is opened (see Customer context).
  3. Add minimal stub files: TEAM_ROOT/team/GOALS.md, DECISIONS.md, PROJECT_STATUS.md (index-only stub — see Portfolio index), TEAM_ROOT/team/board.json (empty customers: [] per references/BOARD_SCHEMA.md), and a starter TEAM_ROOT/team/AGENTS.md for routing notes (each can start with one line, e.g. purpose of the file).
  4. In every OpenClaw agent workspace that participates, append to AGENTS.md (same absolute TEAM_ROOT for all): where shared project memory lives and that handoffs use TEAM_ROOT/team/. Use references/ROLE_TEMPLATES.md for role-specific SOUL/AGENTS paragraphs. Optionally one line in SOUL.md: shared project memory under TEAM_ROOT/team.
  5. Mention DEV_TEAM_ROOT in AGENTS.md if admins override the default path.
  6. Optionally run git init in TEAM_ROOT and add a .gitignore (e.g. .env, *.pem, **/secrets*) if secrets could appear under team/ — still: never commit credentials. Example in references/SKILL-SETUP.md.

Full copy-paste snippets: references/OPENCLAW_LAYOUT.md.

Skill install dir vs TEAM_ROOT

In Creating Skills, {baseDir} is the directory that contains this skill’s SKILL.md after installation. That is orthogonal to TEAM_ROOT: {baseDir} is where the skill package lives; TEAM_ROOT is where agency team/ data lives. Install dev_team as a managed skill under <stateDir>/skills/ or per-workspace <workspace>/skills/ when appropriate — see Skills — per-agent vs shared.

Coordination and tooling

  • Agent-to-agent tools are off by default; enable and allowlist if you use them: Multi-agent routing.
  • Per-agent sandbox (e.g. QA read-only, dev write/exec) is configured in openclaw.json, not in this skill: Multi-agent sandbox & tools.

Customer context (required before coding)

  1. Identify customer id (slug) and open or create TEAM_ROOT/team/customers/<customer_id>/CONTEXT.md (see template in references/CUSTOMER_CONTEXT.template.md). If you use relative paths from a single workspace, ensure that workspace’s CWD is correct; cross-agent handoffs should use the absolute TEAM_ROOT/team/... form.
  2. For each new work item, create TEAM_ROOT/team/customers/<customer_id>/tasks/<task_id>/ (slug task_id, e.g. shopware-top-bar-v1). Store SPEC.md, HANDOFF.md, and QA_NOTES.md there — not under a global team/tasks/.
  3. Before changing code or infrastructure: read that customer’s CONTEXT.md first. For a portfolio snapshot across customers, read TEAM_ROOT/team/PROJECT_STATUS.md (short index) and TEAM_ROOT/team/board.json. All specification, handoff narrative, and QA detail live under team/customers/<customer_id>/tasks/<task_id>/ — not in global files.
  4. Never paste production passwords, API keys, or shop admin credentials into chat or committed markdown. Reference a secret manager entry name or “ask the human”.

Shopware: Default to staging URLs and non-production sales channels for verification. Production changes only with explicit human approval.

Portfolio index (PROJECT_STATUS and board.json)

Problem: With many customers, cramming everything into a few shared .md files causes overlap and confusion.

Rules:

  • TEAM_ROOT/team/PROJECT_STATUS.mdHuman-readable index only. Keep:
    • a short team-wide blurb (2–5 bullets: themes, risks, this week); and
    • per customer that has active work, at most 1–3 lines: one-line status + relative path to the task folder (under team/, e.g. customers/acme-shop/tasks/top-bar-v1).
    • Do not duplicate full specs, long handoffs, or QA checklists here — those stay in the task directory’s SPEC.md, HANDOFF.md, QA_NOTES.md.
  • TEAM_ROOT/team/board.jsonRecommended structured portfolio index: active task per customer, phase, paths — format in references/BOARD_SCHEMA.md. Keeps many customers tractable for agents and humans scanning JSON.
  • Lead (or delegate) keeps board.json and the PROJECT_STATUS.md index aligned after meaningful phase changes; other roles should nudge updates when they hand off (see Handoff protocol).

Role mapping (replace Milo/Josh/Marketing/Dev)

Use one primary role per agent. Map to your OpenClaw profiles or SOUL files:

Role Purpose Typical model tier
PM / Product owner Clarify task, acceptance criteria, customer docs, external research; asks blocking questions High reasoning
Developer Implements in the right repo(s); branch/PR hygiene; staging deploy mindset Strong coding
QA / Tester Test plan, staging validation (e.g. Shopware flows), regression notes Strong analysis
Security Secret handling, authz, dependency/surface review, safe defaults checklist High reasoning
Lead / Orchestrator Routes tags/messages; keeps TEAM_ROOT/team/board.json and the PROJECT_STATUS.md index aligned with reality; enforces handoffs High reasoning

You can keep Marketing from the original example only if your agency needs it; otherwise rename folders under TEAM_ROOT/team/agents/ to pm, dev, qa, security, lead.

Handoff protocol (between agents)

When passing work, the sender writes into shared memory (e.g. TEAM_ROOT/team/customers/<customer_id>/tasks/<task_id>/HANDOFF.md or a dated entry in TEAM_ROOT/team/DECISIONS.md) with:

  1. What was done — short summary
  2. Where artifacts are — paths, branches, PR URLs
  3. How to verify — commands, staging URLs, acceptance criteria
  4. Known issues / risks
  5. Next — exact next role and action

Poor handoff: “Done, check repo.”
Good handoff: “PR #12 against develop. Staging: https://staging.example.com. Verify checkout with rule X. Open: edge case for guests.”

Portfolio sync: When phase or active task changes for a customer, update TEAM_ROOT/team/board.json (see BOARD_SCHEMA.md) and, if needed, one line in PROJECT_STATUS.md — do not move long prose into those files.

Multi-customer work: If one change concerns more than one customer, use separate tasks/ folders under each customers/<customer_id>/, or a single TEAM_ROOT/team/DECISIONS.md entry that links both absolute task paths — avoid one task folder implying two customers without an explicit decision.

Extended shared directory layout

Canonical on-disk path: TEAM_ROOT/team/ (see OpenClaw workspace mapping for TEAM_ROOT). Extend the original team/ tree:

team/
├── GOALS.md
├── DECISIONS.md
├── PROJECT_STATUS.md   # short human index only — details in task folders + board.json
├── board.json          # structured portfolio index (recommended) — see references/BOARD_SCHEMA.md
├── customers/
│   └── <customer_id>/
│       ├── CONTEXT.md           # Repos, docs, Shopware staging, contacts
│       └── tasks/
│           └── <task_id>/
│               ├── SPEC.md      # PM output: goal, AC, questions answered
│               ├── HANDOFF.md   # Latest structured handoff
│               └── QA_NOTES.md  # Tester results
├── shared/
│   ├── reviews/                 # Review feedback
│   └── security/               # Security review notes / checklist results
└── agents/
    ├── pm/
    ├── dev/
    ├── qa/
    ├── security/
    └── lead/

Routing (Telegram optional)

The reference block above often uses Telegram and @-tags as one story; the same routing idea applies to OpenClaw workspaces with sessions_spawn / sessions_send, other channels, or IDE-only flows — see Typical building blocks and TEAM_ROOT/team/AGENTS.md (match names to your SOUL files).

Synergy: task lifecycle and review gates

For stricter Inbox → spec → build → review → done behavior and anti-patterns, load the companion skill agent-team-orchestration in the same workspace if available: agent-team-orchestration-1.0.0/SKILL.md.

ClawHub (Registry)

Publishing follows ClawHub skill format: this folder is dev-team, so the default registry slug from the CLI is dev-team. Registry license: uploads are released under MIT-0 (per ClawHub terms). The section Original use case (reference) remains credited to awesome-openclaw-usecases (MIT); see LICENSE.md.

One-off publish (from the parent of this folder or with an absolute path):

clawhub login
# From the parent of this skill folder (e.g. repo root):
clawhub publish ./dev-team --version 1.0.1 --changelog "Documentation: all skill text in English; no behavior change" --tags latest

The CLI uses the folder basename as slug and displayName unless you override, e.g. --slug dev-team --name "Dev team". Bump semver for later releases.

Sync (batch upload changed skills): clawhub sync --root /path/to/parent — ensure this skill folder is named dev-team so the slug stays stable.

Optional local mirror: _meta.json (slug, version); registry ownership is tied to your clawhub login account, not to ownerId in this file.

同梱ファイル

※ ZIPに含まれるファイル一覧。`SKILL.md` 本体に加え、参考資料・サンプル・スクリプトが入っている場合があります。