ワンクリックで
team-building
Design and create AI team packages — manifest format, member structure, directory layout
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Design and create AI team packages — manifest format, member structure, directory layout
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Feishu/Lark platform interaction via MCP - documents, tasks, calendar, Bitable, messaging
Use the Claude Code CLI for complex refactors, multi-file changes, and sustained codebase exploration
Use the OpenAI Codex CLI for quick fixes, targeted edits, and non-interactive automation
Use external coding tools (Claude Code, Codex, Cursor) via invoke_coding_tool and coding_tool_apply to implement, debug, and refactor code
Use the Cursor CLI agent mode for IDE-integrated coding with project rules and repo-aware edits
Learn from experience — capture insights, organize knowledge, share reusable practices as skills, and refine your role over time
| name | team-building |
| description | Design and create AI team packages — manifest format, member structure, directory layout |
This skill teaches you how to create Markus team packages — self-contained directory-based artifacts that define a group of specialized AI agents with shared norms and coordination structure.
Every agent in a team must be a specialist. Do NOT simply pick generic templates and give them names. Design each agent with a unique identity, expertise, and detailed role documentation. Safety constraints are defined in each agent's POLICIES.md, not through tool restrictions.
CRITICAL: Team artifacts MUST be saved under this exact path — the Builder page, install system, and deliverable detection all depend on it:
~/.markus/builder-artifacts/teams/{team-name}/
├── team.json # Manifest (auto-created from your JSON output)
├── README.md # Public-facing team overview for Hub/Builder (REQUIRED)
├── ANNOUNCEMENT.md # Team announcement (you write via file_write)
├── NORMS.md # Working norms (you write via file_write)
├── workflows/ # Workflow templates (optional)
│ └── {workflow-name}.yaml # YAML workflow DAG definition
└── members/
├── {manager-slug}/
│ ├── ROLE.md # Identity and system prompt (REQUIRED)
│ ├── HEARTBEAT.md # Periodic self-check checklist (RECOMMENDED)
│ ├── POLICIES.md # Constraints and guardrails (optional)
│ └── CONTEXT.md # Domain context and references (optional)
└── {worker-slug}/
├── ROLE.md # Identity and system prompt (REQUIRED)
├── HEARTBEAT.md # Periodic self-check checklist (RECOMMENDED)
├── POLICIES.md # Constraints and guardrails (optional)
└── CONTEXT.md # Domain context and references (optional)
Do NOT write artifacts to ~/.markus/shared/, your working directory, or any other location. Only ~/.markus/builder-artifacts/teams/ is recognized by the system.
| Package location | Deployed to | Purpose |
|---|---|---|
ANNOUNCEMENT.md | ~/.markus/teams/{teamId}/ANNOUNCEMENT.md | Injected into every member's context |
NORMS.md | ~/.markus/teams/{teamId}/NORMS.md | Injected into every member's context |
members/{name}/ROLE.md | ~/.markus/agents/{agentId}/role/ROLE.md | Agent's identity and system prompt |
members/{name}/HEARTBEAT.md | ~/.markus/agents/{agentId}/role/HEARTBEAT.md | Periodic self-check checklist (every ~30 min) |
members/{name}/POLICIES.md | ~/.markus/agents/{agentId}/role/POLICIES.md | Additional agent constraints |
members/{name}/CONTEXT.md | ~/.markus/agents/{agentId}/role/CONTEXT.md | Domain context and references |
workflows/*.yaml | ~/.markus/teams/{teamId}/workflows/*.yaml | Workflow templates (runnable as task DAGs) |
Output the team in up to three steps — manifest first, then content files, then optional workflow YAML. Never put file content inline in the JSON.
file_write for each content file.file_write to write the manifest JSON file directly (e.g., file_write("~/.markus/builder-artifacts/teams/{name}/team.json", ...)) → then use file_write for each content file. When submitting deliverables, set the reference to the artifact directory path.file_write.In chat mode: Output the team structure as a JSON code block. The system auto-saves it.
In task/A2A mode: Write the manifest JSON file directly via file_write.
This JSON contains ONLY metadata and structure — no file content.
{
"type": "team",
"name": "team-name-kebab-case",
"displayName": "Team Display Name",
"version": "1.0.0",
"description": "Team purpose and goals",
"author": "",
"category": "development | devops | management | productivity | general",
"tags": ["tag1", "tag2"],
"team": {
"members": [
{
"name": "Manager Name",
"role": "manager",
"count": 1,
"skills": ["skill-id-1"]
},
{
"name": "Worker Name",
"role": "worker",
"count": 1,
"skills": ["skill-id-1", "skill-id-2"]
}
],
"workflow": {
"phases": ["plan", "implement", "review", "validate"],
"parallelImplementation": true,
"worktreeIsolation": true,
"requireReviewBeforeComplete": true
},
"workflows": ["workflows/my-workflow.yaml"]
}
}
The system automatically saves this JSON and creates the directory. After that, you proceed to write files.
After the JSON is saved, write each file individually using file_write. The base path is ~/.markus/builder-artifacts/teams/{team-name}/ (use the name from your JSON).
Write files in this order:
README.md (REQUIRED) — The public-facing overview displayed on Markus Hub and the Builder detail page. This is what users see first when browsing the team. Write 2-4 paragraphs covering:
ANNOUNCEMENT.md — Team mission, member introduction, how the team works, key capabilities. At least 3 paragraphs.
NORMS.md — Phase-based workflow documentation aligned with team.workflow.phases. This is critical for team effectiveness. Structure it as:
agent_send_message, agent_broadcast_status)spawn_subagent, background_exec, shell_execute (git/gh), worktree isolation, deliverable_create, etc.Each member's ROLE.md — Write one at a time. Before writing, read the existing base role template via file_read to understand the expected depth and conventions. Each ROLE.md should be at least 5 paragraphs, covering:
spawn_subagent, background_exec, shell_execute, etc.spawn_subagent for analysisEach member's HEARTBEAT.md (RECOMMENDED) — Defines what the agent proactively checks every ~30 minutes. Without this file, the agent is purely reactive and will only respond to direct messages. Write a role-specific checklist covering:
POLICIES.md (optional) — For members that need specific constraints.
CONTEXT.md (optional) — Additional domain context, references, or knowledge specific to a member.
Example file_write calls:
file_write("~/.markus/builder-artifacts/teams/research-team/README.md", "# Research Team\n\nA collaborative AI research team that...\n\n## Team Composition\n- Research Director (manager)...\n- Senior Researcher (worker)...\n\n## Use Cases\n- Academic literature review and synthesis...")
file_write("~/.markus/builder-artifacts/teams/research-team/ANNOUNCEMENT.md", "# Research Team — Team Announcement\n\n...")
file_write("~/.markus/builder-artifacts/teams/research-team/NORMS.md", "# Research Team — Working Norms\n\n...")
file_write("~/.markus/builder-artifacts/teams/research-team/members/research-director/ROLE.md", "# Research Director\n\nYou are **Research Director** — ...\n\n...")
file_write("~/.markus/builder-artifacts/teams/research-team/members/research-director/HEARTBEAT.md", "# Heartbeat Checklist\n\n- [ ] Check mailbox ...\n- [ ] Review team task board ...\n- [ ] Unblock members ...")
file_write("~/.markus/builder-artifacts/teams/research-team/members/senior-researcher/ROLE.md", "# Senior Researcher\n\nYou are **Senior Researcher** — ...\n\n...")
file_write("~/.markus/builder-artifacts/teams/research-team/members/senior-researcher/HEARTBEAT.md", "# Heartbeat Checklist\n\n- [ ] Check mailbox ...\n- [ ] Review assigned tasks ...\n- [ ] Check build status ...")
IMPORTANT: The member directory slug is derived from the member's name field — lowercased, spaces to hyphens, non-alphanumeric removed.
If the team has repeatable multi-step processes that should run as automated DAGs, add workflow templates. Each workflow is a YAML file that defines a sequence of tasks with dependencies, role assignments, and optional scheduling.
When to include workflows:
Write each workflow YAML to workflows/:
file_write("~/.markus/builder-artifacts/teams/{team-name}/workflows/content-publishing.yaml", "<YAML content>")
Make sure team.workflows in your manifest references the file:
"workflows": ["workflows/content-publishing.yaml"]
Minimal workflow example:
name: content-publishing
displayName: Content Publishing
description: Plan, write, and review content
version: "1.0.0"
params:
- name: topic
type: string
required: true
steps:
- id: plan
name: Plan Content
type: agent_task
role: editor
prompt: "Create a content plan for: {{topic}}"
- id: write
name: Write Draft
type: agent_task
role: writer
depends_on: [plan]
inputs: [{ from: plan, as: content_plan }]
prompt: "Write content about {{topic}} following the plan."
- id: review
name: Review & Publish
type: agent_task
role: editor
depends_on: [write]
inputs: [{ from: write, as: draft }]
prompt: "Review the draft and finalize for publishing."
For the full YAML format reference, DAG patterns, scheduling, and more examples, activate the workflow-building skill.
type: Always "team"name: MUST be English kebab-case (e.g., frontend-squad, research-team). Even for Chinese teams, use English slug.displayName: Human-readable name, any language (e.g., "前端开发小队")version: Semver (default "1.0.0")description: Team purpose (any language)category: One of development, devops, management, productivity, generaltags: Descriptive tagsteam.members[] — Member Specifications (REQUIRED)name: Display name (the slug for file paths is derived from this)role: "manager" or "worker"count: Number of instances (default 1)skills: Skill IDs from the dynamic context. Actively assign skills — don't leave empty!Note: The roleName field is not needed for team members. Each member's identity is fully defined by their ROLE.md file under members/{slug}/. Do NOT include roleName unless you specifically want to inherit defaults from a built-in role template (rare).
team.workflow — Workflow Configuration (recommended)phases: Array of phase names defining the team's workflow (e.g., ["plan", "implement", "review", "validate"])parallelImplementation: true if multiple members work in parallel during implementationworktreeIsolation: true if developers should work in isolated git worktrees (recommended for coding teams)requireReviewBeforeComplete: true if tasks must pass review before completionteam.workflows — Workflow Template Files (optional)["workflows/content-publishing.yaml"]~/.markus/teams/{teamId}/workflows/ on install and become runnable via the Workflows UI or workflow_run toolworkflow-building skill for the full YAML formatCRITICAL: Creating an artifact is NOT the same as installing/deploying it. Creating writes files to
builder-artifacts/; installing deploys live agents that consume resources and join the org. NEVER auto-install. Only install when the user explicitly says "install", "deploy", or "hire". This applies to ALL modes (chat, task, A2A).
Once all files are written, tell the user:
package_install). Do NOT install unless asked.file_write for files.~/.markus/shared/ or your working directory. Always use ~/.markus/builder-artifacts/teams/{name}/.name field MUST be English kebab-case.author must be a plain string (e.g. "John") — NOT an object. tags must be an array of strings. version must be semver string. description must be a string. The system validates the manifest on write and will reject malformed files."role": "manager" and at least one "worker".