brewcode/skills/teams/SKILL.md
Creates and manages dynamic teams of domain agents. Triggers: create team, agent team, team status, cleanup team.
npx skillsauth add kochetkov-ma/claude-brewcode brewcode:teamsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Manage dynamic teams of domain-specific agents with tracking framework.
Arguments: $ARGUMENTS
EXECUTE using Bash tool:
bash "${CLAUDE_SKILL_DIR}/scripts/detect-mode.sh" "$ARGUMENTS" && echo "OK" || echo "FAILED"
Output: MODE:, TEAM_NAME:, PROMPT: (optional). Store all three.
Output: Mode: {MODE}, Team: {TEAM_NAME}
Load environment:
| Action | Command / Path |
|--------|----------------|
| Read agent template | ${CLAUDE_SKILL_DIR}/references/agent-template.md |
| Read framework templates | ${CLAUDE_SKILL_DIR}/references/framework-files.md |
| Check team dir | .claude/teams/{TEAM_NAME}/ -- exists? |
| Check existing agents | .claude/agents/ -- list all |
| If team.md exists | Read, show current roster |
| If trace.jsonl exists | Show entry counts via trace-ops.sh read |
If team exists, verify:
bash "${CLAUDE_SKILL_DIR}/scripts/verify-team.sh" "TEAM_NAME_HERE" && echo "PASS" || echo "FAIL"
Formulate action plan for current mode.
ASK using AskUserQuestion: "Here's my plan: {plan}. Continue?" Options: "Yes, continue" | "No, I want changes" | "Cancel"
Spawn 3-5 Explore agents in ONE message via Task tool:
| # | Focus |
|---|-------|
| 1 | Code structure: modules, packages, domains, architectural layers |
| 2 | Existing agents (.claude/agents/, brewcode/agents/, ~/.claude/agents/) + Claude Code infrastructure |
| 3 | Tech stack: build files, frameworks, dependencies, languages |
| 4 | CI/CD, testing, deploy, infrastructure |
| 5 (optional) | Domain boundaries: business logic, API, data layer, UI |
All via Task(subagent_type="Explore"). Consolidate into single analysis document.
Based on analysis + PROMPT (if provided), propose 3 variants via AskUserQuestion:
Minimal (5 agents):
| Agent | Domain | Mission |
Balanced (10-12 agents) -- Recommended:
| Agent | Domain | Mission |
Maximum (15-20 agents):
| Agent | Domain | Mission |
Options: "Minimal (5)" | "Balanced (recommended)" | "Maximum (15-20)" | "Custom -- I'll specify"
If "Custom" -- second AskUserQuestion for free input. Final confirmation of agent list before proceeding.
"Default model for domain agents: Opus (most reliable)."
| Model | Best for | Cost | |-------|----------|------| | opus | Complex domains, architecture, critical logic | High | | sonnet | Standard domains, CRUD, testing, utilities | Medium | | haiku | Simple utility agents, formatting, validation | Low |
Options: "Opus (recommended)" | "Sonnet" | "Haiku" | "Mixed -- I'll choose per agent"
If "Mixed" -- ask model per agent in C3. Store as DEFAULT_MODEL (default: opus).
${CLAUDE_SKILL_DIR}/references/agent-template.mdTask(subagent_type="brewcode:agent-creator") with: placement=.claude/agents/, model=DEFAULT_MODEL (or per-agent), context=template + mission + domain + project analysis + colleague list. Agent description <= 100 chars (optimal ~80), single line, role + 2-3 triggers, no <example> blocks.Skill(skill="brewtools:text-optimize", args="-l .claude/agents/{agent-name}.md")
Create team directory:
mkdir -p ".claude/teams/TEAM_NAME_HERE" && echo "OK" || echo "FAILED"
Write from ${CLAUDE_SKILL_DIR}/references/framework-files.md templates: team.md (fill with real agent data), touch trace.jsonl
Verify:
bash "${CLAUDE_SKILL_DIR}/scripts/verify-team.sh" "TEAM_NAME_HERE" && echo "PASS" || echo "FAIL"
STOP if FAIL -- fix missing files before continuing.
AskUserQuestion: final report + suggest /brewcode:teams status {TEAM_NAME}
Spawn 3 reviewer agents in ONE message via Task tool:
| # | Focus | |---|-------| | 1 | Instruction quality: clarity, imperative form, completeness, word budget | | 2 | Domain accuracy: correct scope, tool selection, model fit, description triggers | | 3 | Architecture: consistency across agents, no domain overlaps, proper Task Acceptance Protocol |
Each reads ALL agent files in .claude/agents/ and outputs:
FILE: .claude/agents/{name}.md
SEVERITY: critical/important/minor
ISSUE: description
FIX: suggested fix
Quorum threshold: 2/3 agreement = confirmed. Match criteria: same file + same area (+/- 5 lines or same section) + same category (instruction/domain/architecture/trigger).
| Outcome | Action | |---------|--------| | 2/3+ confirm | Mark confirmed, keep severity from highest reporter | | 1/3 only | Log as unconfirmed, skip | | Minor severity (all reporters) | Log but skip fix |
Task(subagent_type="brewcode:reviewer", prompt="
Verify these findings against actual agent files. For each:
1. Read the agent file
2. Check if the issue actually exists
3. Mark: VERIFIED or FALSE_POSITIVE
{confirmed_findings}
")
Filter out false positives. Final list = verified critical + important issues.
For each verified critical/important issue:
Task(subagent_type="brewcode:agent-creator", prompt="
Fix this issue in {agent_file}:
ISSUE: {description}
FIX: {suggested_fix}
SEVERITY: {severity}
Read the file, apply the fix, validate.
")
Batch: up to 3 parallel per message. Minor issues skipped.
Task(subagent_type="brewcode:reviewer", prompt="
Re-verify these fixes. For each:
1. Read the fixed agent file
2. Check original issue is resolved
3. Check no regression introduced
Mark: FIXED or REGRESSION
{fixes_applied}
")
| Outcome | Action | |---------|--------| | All FIXED | Pipeline complete, proceed to Epilogue | | REGRESSION found | Return to C8 for that file (max 2 cycles) | | Still failing after 2 cycles | Log as unresolved, proceed to Epilogue |
To skip review pipeline: add
--skip-reviewto create arguments. To run review on existing team:/brewcode:teams update {TEAM_NAME} --review
No modifications. Read + report only.
.claude/teams/{TEAM_NAME}/team.mdbash "${CLAUDE_SKILL_DIR}/scripts/trace-ops.sh" read ".claude/teams/{TEAM_NAME}" && echo "OK" || echo "FAILED"
Parse JSONL: group by src (agent) and k (kind). Compute per-agent stats from k=track (took/refused/completed/failed counts), issues from k=issue, insights from k=insight.Output:
# Team Status: {TEAM_NAME}
## Summary
| Metric | Value |
|--------|-------|
| Agents | {N} |
| Tasks tracked | {N} |
| Success rate | {%} |
| Open issues | {N} (high: {N}, critical: {N}) |
| Insights | {N} |
| Last activity | {date} |
## Per Agent
| Agent | Tasks | Success | Refused | Issues | Insights | Health |
|-------|-------|---------|---------|--------|----------|--------|
## Recommendations
Health:
| Label | Criteria | |-------|----------| | Healthy | >70% success, active | | Needs tuning | 30-70% success or many refusals | | Underperforming/Inactive | <30% success or inactive |
Recommendations: underperformers -> suggest /brewcode:teams update; >200 trace rows -> suggest cleanup; 0 activity -> suggest review.
No AskUserQuestion -- purely informational.
CURSOR=$(bash "${CLAUDE_SKILL_DIR}/scripts/trace-ops.sh" cursor ".claude/teams/{TEAM_NAME}")
bash "${CLAUDE_SKILL_DIR}/scripts/trace-ops.sh" read ".claude/teams/{TEAM_NAME}" --since "$CURSOR" && echo "OK" || echo "FAILED"
If cursor empty: all entries returned. If team not found -> STOP. If cursor exists and <10 post-cursor entries: expand to last 30 days.
Filter post-cursor trace: k=track for task stats, k=issue for problems, k=insight for patterns.
| Status | Criteria | Action | |--------|----------|--------| | Healthy | >70% success, active | No changes | | Needs tuning | 30-70% success or many refusals | Update instructions | | Underperforming | <30% success | AskUser: update or delete+create new | | Inactive | 0 records | AskUser: delete or keep |
ASK using AskUserQuestion with analysis table and proposed actions (Update/Delete/No changes per agent). Options: "Apply all" | "Let me choose" | "Show detailed analysis"
If "Let me choose" -> AskUserQuestion per agent. If "Show detailed" -> output full stats, then re-ask.
| Agent Status | Action |
|--------------|--------|
| Needs tuning | Task(subagent_type="brewcode:agent-creator") update mode with tracking/issues/insights data |
| Underperforming (update) | Same as tuning |
| Underperforming (replace) | Delete agent file + create new via agent-creator |
| Inactive (delete) | Remove .claude/agents/{name}.md + update team.md status to removed |
Immutable traits (Name, Base Role) -> delete + create new. Mutable traits (Character, Instructions) -> update during tuning.
Update team.md with current state and Last update date.
Set cursor:
bash "${CLAUDE_SKILL_DIR}/scripts/trace-ops.sh" cursor ".claude/teams/{TEAM_NAME}" set "$(date -u +%Y-%m-%dT%H:%M:%SZ)" && echo "✅" || echo "❌ FAILED"
Read ${CLAUDE_SKILL_DIR}/references/cleanup-flow.md and execute step by step:
Archive: entries appended to .claude/teams/{TEAM_NAME}/trace-archive.jsonl. Cursor reset after cleanup.
Only for modes that change team composition (CREATE, UPDATE with removals, CLEANUP with agent removal):
ASK using AskUserQuestion: "Update team info in CLAUDE.md?" Options: "Yes, in project CLAUDE.md" | "Yes, in .claude/CLAUDE.local.md" | "No, skip"
Format to write:
## Teams
Team: {TEAM_NAME} | Agents: {N} | Status: active
| Agent | Domain | Mission |
|-------|--------|---------|
Protocol: agents self-select tasks, trace in `.claude/teams/{TEAM_NAME}/trace.jsonl`.
Manage: `/brewcode:teams [status|update|cleanup]`
Always run STATUS mode logic after all changes: read team.md + trace.jsonl, compute stats, output Team Status table.
# teams [{MODE}]
## Detection
| Field | Value |
|-------|-------|
| Arguments | `{raw args}` |
| Mode | `{MODE}` |
| Team | `{TEAM_NAME}` |
| Prompt | `{PROMPT or none}` |
## Results
{Mode-specific output}
## Next Steps
- {recommendations}
| Condition | Action |
|-----------|--------|
| Team not found (STATUS/UPDATE/CLEANUP) | "Team '{TEAM_NAME}' not found. Run /brewcode:teams create {TEAM_NAME}." STOP |
| Team already exists (CREATE) | Show roster, AskUserQuestion: "Team exists. Update instead?" |
| verify-team.sh FAIL | Show missing items, attempt fix, re-verify |
| No agents created (C3 failure) | Retry failed agents once, then report |
| 0 trace entries (UPDATE) | Classify all agents as Inactive |
development
Publish HTML, markdown, text, any file, or a multi-file site to brewpage.app — free hosting with no sign-up. Paste text, share a file, upload a site, or host a temporary page and get an instant public URL to share a link. Asks namespace and password, returns the public URL. Triggers: publish, publish HTML, share link, share a link, share a file, upload to brewpage, host page, host a temporary page, host a website, free hosting, paste text, instant public URL, no sign-up, brewpage, publish site, upload site, upload directory, deploy site, сделай публичную ссылку, опубликуй.
tools
Toggles terse-output mode to cut preamble and filler. Triggers: think-short, be terse, think shorter.
devops
Publish content to brewpage.app — text, markdown, JSON, file, or multi-file site. Asks namespace and password, returns public URL. Triggers: publish, share link, upload to brewpage, host page, brewpage, publish site, upload site, upload directory, deploy site, сделай публичную ссылку, опубликуй.
data-ai
Generate AI images via OpenRouter, Z.ai, Imagen 4, DALL-E 3, anti-slop. Triggers: generate image, AI image, og image.