Back to Skills

evolve-team

pjt222
Updated 2 days ago
7 views
17
2
17
View on GitHub
Metaaiautomationdesigndata

About

The `evolve-team` skill updates an existing team composition by modifying its member roster, coordination pattern, or structure, and handles versioning and reference synchronization. It is used when a team's agents are outdated, its workflow needs refinement, or a specialized variant is required. Key actions include assessing the current team, applying in-place changes or creating variants, and updating all related configuration files.

Quick Install

Claude Code

Recommended
Primary
npx skills add pjt222/agent-almanac -a claude-code
Plugin CommandAlternative
/plugin add https://github.com/pjt222/agent-almanac
Git CloneAlternative
git clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/evolve-team

Copy and paste this command in Claude Code to install this skill

Documentation

Evolve an Existing Team

Improve, restructure, or create specialized variant of team originally made w/ create-team. Covers maintenance: assess gaps vs template + coordination patterns, apply targeted improvements to composition + workflow, bump versions, sync registry + cross-refs.

Use When

  • Roster outdated after agents added/removed/evolved
  • Feedback → workflow bottlenecks, unclear handoffs, missing perspectives
  • Coordination pattern no longer fits workflow (hub-and-spoke should be parallel)
  • Specialized variant needed alongside original (e.g., r-package-review + r-package-review-security-focused)
  • Member responsibilities overlap → need sharper boundaries
  • CONFIG block out of sync w/ prose or members
  • Team needs split into 2 smaller or 2 teams need merge

In

  • Required: Path to existing team file (e.g., teams/r-package-review.md)
  • Required: Evolution trigger (feedback, new agents, coordination mismatch, scope overlap, perf issues, agent evolution)
  • Optional: Version bump magnitude (patch, minor, major)
  • Optional: Create specialized variant instead refine (default: refine in-place)

Do

Step 1: Assess Current

Read existing + eval each section vs template (teams/_template.md):

SectionCheckCommon Issues
FrontmatterRequired fields (name, description, lead, version, author, coordination, members[])Missing tags, stale version, wrong coordination
PurposeClear multi-agent justification (≥2 specialties)Could be 1 agent
Team CompositionTable matches frontmatter, no overlapStale table, duplicated focus
Coordination PatternMatches workflow, ASCII diagram presentWrong pattern
Task DecompositionPhased breakdown + concrete per-memberVague, missing phases
CONFIG BlockValid YAML between markers, matches frontmatter + proseOut of sync, missing blocked_by, invalid YAML
Usage Scenarios2-3 realistic activation promptsPlaceholder
Limitations3-5 honestMissing/generic
See AlsoValid links to agents, teams, guidesStale
# Read the team file
cat teams/<team-name>.md

# Verify all member agents still exist
grep "id:" teams/<team-name>.md | while read line; do
  agent=$(echo "$line" | grep -oP '(?<=id: )[\w-]+')
  grep "id: $agent" agents/_registry.yml || echo "MISSING: $agent"
done

# Check if the team is referenced by any guide
grep -r "<team-name>" guides/*.md

→ List specific gaps by section.

If err: no file or no frontmatter → skill N/A, use create-team.

Step 2: Gather Reqs

Identify + categorize trigger:

TriggerExampleScope
User feedback"Reviews too long, agents duplicate"Sharpen responsibilities or pattern
New agentapi-security-analyst createdAdd member
Agent evolvedcode-reviewer new skillsUpdate member responsibilities
Agent removeddeprecated-agent retiredRemove + reassign tasks
Coordination mismatchSequential team has indep subtasksChange to parallel
Scope expansionCover deployment not just reviewAdd member or variant
Team too large6+ members coordination overheadSplit into 2
Team too smallSingle member does mostMerge w/ another or add

Document changes + sections:

- Frontmatter: add new member `api-security-analyst` with role "API Security Reviewer"
- Team Composition: add row to composition table
- Task Decomposition: add API security review tasks to execution phase
- CONFIG block: add member and tasks entries
- See Also: add link to new agent file

→ Concrete list mapped to sections.

If err: unclear → consult user. Vague → vague.

Step 3: Choose Scope

Decision matrix:

CriteriaRefinement (in-place)Specialized Variant (new)
Team IDUnchanged<team>-<specialty>
File pathSame .mdNew file teams/
Version bumpPatch/minorStarts 1.0.0
CoordinationMay changeMay differ
RegistryUpdate existingNew entry
OriginalModified directlyLeft intact, gains See Also

Refinement: Adjust members, sharpen responsibilities, fix CONFIG, change coordination. Keeps identity.

Variant: Diff use case, diff coordination, diff audience. Original stays for existing use.

Additional:

SituationAction
6+ members, slowSplit into 2 focused
2 teams of 2 adjacent domainsMerge into 1 of 3-4
Wrong coordinationRefinement — change in-place
Different leadRefinement if lead exists; create agent first if not

→ Clear decision — refine, variant, split, merge — rationale.

If err: unsure → default refinement. Split/merge higher blast radius → confirm w/ user.

Step 4: Apply Changes

Refinements

Edit directly. Consistency across all sections referencing composition:

  1. Frontmatter members[]: Add/remove/update (each id, role, responsibilities)
  2. Team Composition table: Match frontmatter exactly
  3. Coordination Pattern: Update prose + ASCII if changes
  4. Task Decomposition: Revise phases + per-member
  5. CONFIG block: Update members + tasks (Step 5)
  6. Usage Scenarios: Revise if triggers changed
  7. Limitations: Update new constraints, remove resolved
  8. See Also: Update agent links, new refs

Rules:

  • Preserve all sections — add not remove
  • Adding member → add ALL: frontmatter, composition table, task decomposition, CONFIG
  • Removing → remove ALL + reassign tasks
  • Verify each: grep "id: agent-name" agents/_registry.yml
  • Lead stays in members — lead always a member

Variants

# Copy the original as a starting point
cp teams/<team-name>.md teams/<team-name>-<specialty>.md

# Edit the variant:
# - Change `name` to `<team-name>-<specialty>`
# - Update `description` to reflect the specialized scope
# - Adjust `coordination` pattern if needed
# - Reset `version` to "1.0.0"
# - Modify members, tasks, and CONFIG block for the specialized use case
# - Reference the original in See Also as a general-purpose alternative

→ File (refined/variant) passes Step 1, all sections internally consistent.

If err: edit breaks consistency (CONFIG lists member not in frontmatter) → compare frontmatter members[] vs Composition + Decomposition + CONFIG → find mismatch.

Step 4.5: Sync Translated Variants

Required when translations exist. Human authors + AI agents. No skip — stale source_commitnpm run validate:translations false staleness.

Check + update:

# Check for existing translations
ls i18n/*/teams/<team-name>.md 2>/dev/null

If translations exist

  1. Current commit:
SOURCE_COMMIT=$(git rev-parse HEAD)
  1. Update each:
for locale_file in i18n/*/teams/<team-name>.md; do
  sed -i "s/^source_commit: .*/source_commit: $SOURCE_COMMIT/" "$locale_file"
done
  1. Flag → commit msg:
evolve(<team-name>): <description of changes>

Translations flagged for re-sync: de, zh-CN, ja, es
Changed sections: <list sections that changed>
  1. Regenerate:
npm run translation:status

If no translations exist

No action. Step 5.

Variants

Defer until stabilize (1-2 versions). Add after ≥1 refinement.

→ All translated source_commit updated. npm run translation:status exits 0.

If err: sed fails → open manually, verify source_commit in YAML. Missing → re-scaffold npm run translate:scaffold -- teams <team-name> <locale>.

Step 5: CONFIG Block

CONFIG between <!-- CONFIG:START --> + <!-- CONFIG:END --> must sync w/ prose. After member/task change:

  1. Every agent in CONFIG members matches frontmatter member
  2. Every assignee in CONFIG tasks matches member id
  3. Update blocked_by if ordering changed
  4. Synthesis/final task references all prereq
team:
  name: <team-name>
  lead: <lead-agent>
  coordination: <pattern>
  members:
    - agent: <agent-id>
      role: <role-title>
      subagent_type: <agent-id>
  tasks:
    - name: <task-name>
      assignee: <agent-id>
      description: <one-line>
    - name: synthesize-results
      assignee: <lead-agent>
      description: Collect and synthesize all member outputs
      blocked_by: [<prior-task-names>]

→ CONFIG valid YAML, agents + tasks consistent, blocked_by valid DAG.

If err: parse CONFIG YAML separately → syntax errs. Cross-check every assignee vs members.

Step 6: Version + Metadata

Bump version semver:

ChangeBumpExample
Wording fix, See Also updatePatch: 1.0.0 → 1.0.1Fixed stale agent link
New member, tasks revisedMinor: 1.0.0 → 1.1.0Added security-analyst
Coordination changed, restructuredMajor: 1.0.0 → 2.0.0hub-and-spoke → parallel

Also update:

  • updated date = today
  • tags if coverage changed
  • description if purpose materially diff
  • coordination if pattern changed

version + updated reflect magnitude + date. Variants start "1.0.0".

If err: forget bump → no track. Always before commit.

Step 7: Registry + Cross-Refs

Refinements

Update existing in teams/_registry.yml → match frontmatter:

# Find the team's registry entry
grep -A 10 "id: <team-name>" teams/_registry.yml

Update description, lead, members, coordination → match file. No count change.

Variants

Add new to registry:

- id: <team-name>-<specialty>
  path: <team-name>-<specialty>.md
  lead: <lead-agent>
  members: [agent-1, agent-2, agent-3]
  coordination: <pattern>
  description: One-line description of the specialized variant

Then:

  1. Increment total_teams top
  2. Add See Also in original → variant
  3. Add See Also in variant → original

README automation:

npm run update-readmes

→ Registry matches frontmatter. npm run update-readmes exits 0. Variants: total_teams matches actual.

If err: count wrong → grep -c "^ - id:" teams/_registry.yml + correct. README automation fails → verify package.json + js-yaml installed.

Step 8: Validate

Full checklist:

  • File exists expected path
  • YAML frontmatter parses
  • version bumped (refinement) or "1.0.0" (variant)
  • updated today
  • All sections: Purpose, Team Composition, Coordination, Task Decomposition, Configuration, Usage Scenarios, Limitations, See Also
  • Frontmatter members[] matches Composition table
  • CONFIG members match frontmatter
  • CONFIG tasks valid assignees + blocked_by refs
  • All member IDs in agents/_registry.yml
  • Lead in members list
  • No 2 members share same primary responsibility
  • Registry matches frontmatter
  • Variants: total_teams matches disk
  • Cross-refs bidirectional (original ↔ variant)
  • git diff no accidental deletions
# Verify frontmatter
head -25 teams/<team-name>.md

# Verify all member agents exist
for agent in agent-a agent-b agent-c; do
  grep "id: $agent" agents/_registry.yml
done

# Count teams on disk vs registry
ls teams/*.md | grep -v template | wc -l
grep total_teams teams/_registry.yml

# Review all changes
git diff

→ All pass. Ready commit.

If err: address each. Most common: CONFIG block drift (members or tasks not matching prose) + forgotten updated.

Check

  • File exists + valid YAML
  • version reflects changes
  • updated current
  • All sections consistent
  • Frontmatter members[], Composition, CONFIG in sync
  • All member IDs in registry
  • Lead in members
  • CONFIG YAML valid + parseable
  • Registry matches file
  • Variants: new entry correct path
  • Variants: total_teams updated
  • Cross-refs valid (no broken See Also)
  • Refinements w/ translations: source_commit updated all locales
  • git diff no accidental removal

Traps

  • CONFIG block drift: CONFIG + frontmatter + prose must agree on members + tasks. Update 1 w/o others = most common team evolution err. After every change → cross-check all 3.
  • Forget version bump: No track. Always version + updated before commit.
  • Stale translations: Every evolution → up to 4 locale stale. Check ls i18n/*/teams/<team-name>.md + update source_commit or flag.
  • Orphaned member refs: Remove member → tasks in Decomposition + CONFIG must reassign/remove. Orphan assignees → activation failures.
  • Wrong coordination post-evolution: Adding parallel-capable to sequential, or hub-and-spoke where agents need each other's output. Re-evaluate pattern decision create-team Step 4 after structural change.
  • Team too large after add: >5 members hard coordinate. Past 5 → split into 2 focused.
  • Stale See Also after variant: Original + variant reference each other. One-directional → incomplete.

  • create-team — foundation new teams; evolve-team assumes this followed
  • evolve-skill — parallel for SKILL.md
  • evolve-agent — parallel for agents
  • commit-changes — commit evolved team w/ descriptive msg

GitHub Repository

pjt222/agent-almanac
Path: i18n/caveman-ultra/skills/evolve-team
0
agentsagentskillsai-assisted-developmentclaude-codeskillsteams

Related Skills

content-collections

Meta

This skill provides a production-tested setup for Content Collections, a TypeScript-first tool that transforms Markdown/MDX files into type-safe data collections with Zod validation. Use it when building blogs, documentation sites, or content-heavy Vite + React applications to ensure type safety and automatic content validation. It covers everything from Vite plugin configuration and MDX compilation to deployment optimization and schema validation.

View skill

polymarket

Meta

This skill enables developers to build applications with the Polymarket prediction markets platform, including API integration for trading and market data. It also provides real-time data streaming via WebSocket to monitor live trades and market activity. Use it for implementing trading strategies or creating tools that process live market updates.

View skill

creating-opencode-plugins

Meta

This skill helps developers create OpenCode plugins that hook into 25+ event types like commands, files, and LSP operations. It provides the plugin structure, event API specifications, and implementation patterns for JavaScript/TypeScript modules. Use it when you need to intercept, monitor, or extend the OpenCode AI assistant's lifecycle with custom event-driven logic.

View skill

sglang

Meta

SGLang is a high-performance LLM serving framework that specializes in fast, structured generation for JSON, regex, and agentic workflows using its RadixAttention prefix caching. It delivers significantly faster inference, especially for tasks with repeated prefixes, making it ideal for complex, structured outputs and multi-turn conversations. Choose SGLang over alternatives like vLLM when you need constrained decoding or are building applications with extensive prefix sharing.

View skill