nickwinder/synthteam/ask-team

Claude Code and agent skill by nickwinder/synthteam

Trust tier 2
  • community
LLM review pending
Source check pending

Checking that the SKILL.md file is still in the repository.

Convene a simulated panel of colleague personas to deliberate a question together — each persona becomes its own research agent, they react to each other's positions over multiple rounds, and the panel converges on a synthesized conclusion. Use when the user wants more than one perspective on a decision, a cross-functional gut-check, a debate between viewpoints, or a comprehensive answer that surfaces where teammates would agree and disagree. Invoke when the user says "ask the team", "/ask-team ...", "what would the team think", "get a panel on this", "run this past everyone", "convene the personas", or asks for multiple colleagues' takes at once. For a single colleague's take, use ask-colleague instead.

Install

npx vskill@latest install nickwinder/synthteam/ask-team

SKILL.md

Ask the Team

Convene a panel of distilled colleague personas, let each one research and form a position, have them react to each other across rounds, and synthesize a neutral conclusion. The value is not any single answer — it's the deliberation: where the personas converge, where they genuinely split, and what nobody can resolve without the real people.

Each persona is the same kind of substance-focused simulation as ask-colleague: it captures what they know, what they believe, and how they decide — not how they sound. No voice mimicry.

How "communication between agents" actually works

Subagents are isolated — they cannot message each other directly. You, the session running this skill, are the orchestrator and the only channel between them. Communication happens as rounds: every persona answers, you compile everyone's answers into a digest, then you re-spawn each persona with that digest so they can react. Iterate until positions stabilize.

Phase 0 — Announce

Say: "Convening a simulated panel — <names>. These are substance-focused simulations grounded in each person's Slack history, deliberating in rounds. Not the real people."

Phase 1 — Assemble the panel and the briefing packet

Find the personas. Persona docs live in the shared data dir at ~/.synthteam/personas/ (if SYNTHTEAM_HOME is set, use that directory instead of ~/.synthteam). Every <slug>.md file in that directory is a panelist. The whole roster sits on every panel — do not pre-filter by topic.

If the directory is empty or missing, stop and point the user at the distill-slack-persona skill, which dumps Slack history and builds the persona docs.

Build the briefing packet. This is the single shared input every persona receives, so assemble it once, carefully:

  • The user's question, stated precisely.
  • Every source the user supplied — pasted text, file contents, links, and relevant context from the current conversation. Personas can research further, but they should not have to reconstruct what the user already provided.
  • Any constraints the user named (deadline, audience, what's already decided).

Keep the packet self-contained: a subagent sees only what you pass it.

Phase 2 — Round 1: independent positions

Spawn one general-purpose subagent per persona, all in the same turn so they run in parallel. Each subagent prompt contains:

  • The absolute path to that persona's doc (~/.synthteam/personas/<slug>.md, expanded to an absolute path), with instruction to read it in full and internalize the decision-making patterns section especially.
  • The briefing packet.
  • Latitude to research: "You may use web search and other tools to investigate before answering. The persona's existing knowledge is your anchor, but you are not limited to it."
  • The persona contract (below).
  • The Round 1 response format (below).
Persona contract (every round, every persona)
  • Reason in first-person as that persona would reason — first-person is for perspective-taking, not voice. No imitation of phrasing, no catchphrases.
  • Ground every claim in the persona doc — observed positions or decision-making patterns. When extrapolating beyond what the doc covers, say so in-frame: "the doc doesn't show me on this directly, but how I treat <related thing> suggests...".
  • Push back where the persona's patterns indicate they would. The point of a panel is friction — do not soften a real objection to seem agreeable.
  • If the question is genuinely outside the persona's engagement and the decision patterns give no clean extrapolation, say so plainly rather than inventing a position.
Round 1 response format
## Position
One or two sentences — the take, stated first.
## Reasoning
Why, tied to specific decision-making patterns. Cite the channel/date pointers from the persona doc where they back a claim.
## Open questions
- [for: <persona-slug> | anyone] A question whose answer would change or sharpen my position.
## Confidence & gaps
How load-bearing the persona doc is here, and where I'm extrapolating.

Phase 3 — React rounds: iterate to convergence

After collecting a round, compile the panel digest: for each persona, their current Position, condensed Reasoning, and Open questions. Route each open question to its addressee.

Then run a react round — re-spawn every persona in parallel, each prompt containing:

  • The persona doc path and the persona contract again.
  • Their own prior-round response.
  • The panel digest (everyone else's positions and questions).
  • The questions routed to them.
  • The react-round response format (below).
React-round response format
## Stance change
held | sharpened | updated | conceded | hardened — and one line on what moved and why.
## Reaction
Direct engagement with the other personas — name them. Where you agree, say so. Where you disagree, make the objection concrete. A persona conceding a good point is a real outcome, not a failure.
## Answers to questions routed to me
- [from <persona-slug>] The answer, or "still open — would need the real person."
## Position (current)
Restated, post-reaction.
## New open questions
- [for: <persona-slug> | anyone] Only genuinely new ones.
Convergence check

After each react round, decide whether to run another. Stop when both hold:

  • No persona's Stance change was updated, conceded, or hardened — i.e. positions are stable.
  • No open question remains that another panelist could actually answer (questions that need the real person don't count — those are findings, not blockers).

Hard cap: 4 rounds total (Round 1 + up to 3 react rounds). If still diverging at the cap, stop anyway — a persistent split is itself a result worth reporting. Run at least one react round even if Round 1 looks aligned; surface agreement is worth one stress-test.

State the round count and why you stopped before synthesizing.

Phase 4 — Neutral synthesis

You synthesize — impartially. No persona's view wins by default; the CEO persona does not get a tiebreaker. Your job is to map the deliberation honestly, not to manufacture consensus.

  • Consensus — what the panel actually agreed on, and how solid it is.
  • Disagreements — each unresolved split: who holds what, the reasoning on each side, and why it didn't resolve (different priorities? missing information? genuine values difference?). Do not paper over a real split.
  • Open questions for the real humans — what the simulation cannot settle and needs the actual people to answer.
  • Recommended move — the action the deliberation best supports. If the panel split and you can't honestly call it, say so and give the user the decision criteria instead of a false verdict.

Phase 5 — Output

ALWAYS use this structure:

# Panel: <question, short>
## Conclusion
### Consensus
### Disagreements
### Open questions for the real humans
### Recommended move
## Deliberation transcript (condensed)
For each round, for each persona: 2–4 lines — their position and what moved. Condensed, not verbatim — enough that the user can audit how the conclusion was reached and who dissented.

Then close with the disclaimer:

_— Simulated panel, distilled from Slack history. These are substance-focused simulations of decision patterns, not the real teammates. Treat the conclusion as a structured prompt for your own judgment — verify anything load-bearing with the real people before acting._

Notes on cost and scope

All personas join every panel and rounds iterate to convergence, so a call is genuinely expensive — roughly 8–12 subagent runs. The convergence check and the 4-round cap exist to keep that bounded; don't run extra rounds once positions are stable. If the user wants just one person's view, that's ask-colleague, not this.

Security

  • Security scanPassed, 100 of 100Pattern checks on the skill's files.
  • Model reviewNot runA model review is scheduled for the next rescan.

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

Repository stars
101
Repository forks
10
7-day trend score
23

Stars and forks are for the whole GitHub repository, not this skill alone. Refreshed 24 Jun 2026, 4 months ago.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/nickwinder/synthteam/ask-team/badge)](https://verified-skill.com/skills/nickwinder/synthteam/ask-team)

Something wrong with this skill or its page? Tell us.