← ClaudeAtlas

team-protocollisted

Use whenever one role needs something from another role — a blocker, a spec question, a cross-platform divergence, a handoff, or an escalation. Defines the durable team message ledger, who may talk to whom, the anti-ping-pong guard, and when to escalate to the user instead. Triggers from every agent that would otherwise say "I need X from Y" and stop.
vmobifystudio/app-dev-team · ★ 4 · AI & Automation · score 75
Install: claude install-skill vmobifystudio/app-dev-team
# Team protocol A team is not a set of roles. It is a set of roles plus an agreed way to talk. Without one, this happens: an IC hits an ambiguity, writes `BLOCKED: needs tech-lead`, and exits. The orchestrator reads it, spawns `tech-lead` with a paraphrase, gets an answer, paraphrases it back, and re-spawns the IC from cold. Three context rebuilds, two lossy translations, and the original question is now a summary of a summary. ## The channel: `docs/team/messages.jsonl` One append-only event log for the whole team, schema `studio-event-schema/v1`. It works on a vanilla install, survives an agent dying mid-run, and gives a restarted agent its history back. `docs/team/messages.md` is the **generated human view** of that log — the same relationship `docs/31-board.md` has to `docs/31-board-events.jsonl`. **Never hand-edit it.** A hand edit is overwritten by the next render and is invisible to every rule. ```json {"id":"MSG-0421","v":1,"ts":"2026-07-29T10:12Z","project":"tipjar","thread":"THR-APP-004", "ticket":"APP-004","kind":"question","from":"android-developer","to":["tech-lead"], "priority":"material","blocking":false,"requires_response":true,"expires_after_round":6, "requirements":["REQ-031"],"summary":"Which error type for a failed toggle?", "body":"Spec names TodoError but the repo throws IOException. Which wins?","status":"open"} ``` **Kinds:** `question` · `answer` · `handoff` · `blocker` · `fyi` · `escalation` · `decision` **`answer` and `decision` each clos