Repository navigation
Description
Problem
Team creation during squad init is expensive and inconsistent:
- High token cost — The LLM improvises all role definitions from scratch every time (charter content, expertise, boundaries, voice)
- Slow setup — Multiple LLM round-trips to generate boilerplate charters that end up thin and generic
- Inconsistent quality — Charter depth varies wildly depending on the LLM's creativity in that moment
- No institutional knowledge — There's no curated baseline for what makes a good "Backend Developer" charter vs a "Frontend Developer" charter
- Limited scope — Squad is used for all kinds of teams (marketing, sales, game dev, etc.), but the current
personalityForRole()incast.tsonly knows ~9 engineering-flavored patterns
Proposed Solution
Add 20 built-in base roles that serve as starting points during team casting. Each base role includes deep, curated charter content (expertise, boundaries, voice, ownership, routing patterns) that provides ~90% of the charter out of the box. A lightweight LLM refinement pass adapts each base role to the specific project context (stack, frameworks, domain) — adding the remaining 10% at ~1/5th the current token cost.
The 20 Base Roles
12 Software Development roles (primary use case):
lead, frontend, backend, fullstack, reviewer, tester, devops, security, data, docs, ai, designer
8 Category Generalist roles (covering broader team types):
marketing, sales, product, project-mgmt, support, game-dev, media, compliance
Init Flow: Start from Base, Refine for Context
- User describes their project
- Deterministic keyword matching picks 4-5 base roles from catalog (no LLM needed)
- Present matches with one-liner descriptions; user confirms/swaps/adds
- Lightweight LLM pass refines each base role for project context (e.g., base
backend→ "Node.js/Express Backend Dev with Stripe knowledge") - Character name casting uses existing universe system
- Fallback to full LLM generation if no base role fits
Deliverables
packages/squad-sdk/src/roles/— types, catalog (20 role objects), public APIuseRole('backend', { name: 'kane' })— SDK builder forsquad.config.tssquad roles— CLI command to list/search base roles- Updated
cast.ts—generateCharter()andpersonalityForRole()use catalog - Updated
coordinator.ts— Init mode uses catalog-based matching + refinement - Updated Init Mode prompts in
squad.agent.mdtemplates
Attribution
Base role content is inspired by and adapted from msitarzewski/agency-agents (MIT License) by AgentLand Contributors. Proper attribution will be included in source comments, generated charter headers, and documentation.
Activity
feat: add 20 built-in base roles for faster team casting (github#368)
feat: integrate base role catalog into Init Mode (github#368)
github-actions commentedon Mar 13, 2026
🏗️ Squad Triage — Flight (Lead)
Issue: #368 — Built-in base roles for faster team casting
Assigned to: FIDO (Quality Owner)
Reason: Issue relates to testing/quality work
@copilot evaluation: 🔴 Not suitable — issue involves work outside the coding agent's capability profile.
Team roster:
squad:flightsquad:proceduressquad:eecomsquad:fidosquad:paosquad:capcomsquad:controlsquad:surgeonsquad:boostersquad:gncsquad:networksquad:retrosquad:incosquad:guidosquad:telemetrysquad:voxsquad:dskysquad:simssquad:handbooksquad:ralphsquad:copilotgithub-actions commentedon Mar 13, 2026
squad:fenster. Check.squad/team.md(or.ai-team/team.md) for valid member names.github-actions commentedon Mar 13, 2026
squad:verbal. Check.squad/team.md(or.ai-team/team.md) for valid member names.feat: add 20 built-in base roles for faster team casting (github#368)
7 remaining items
test: human journey E2E tests - 7 real user scenarios, 39 assertions (g…
Product Love: First 10 seconds that make you want the next 10 minutes (…
test: speed gate tests for the impatient user journey (github#412)
Visual polish: separators, help, status, agents, thinking indicator (g…
feat: a11y fixes and test coverage (github#382)
fix: correct ThinkingIndicator test assertion (github#415)
Fix github#422: Add context to thinking spinner (github#435)
Fix github#422: Add context to thinking spinner (github#436)
Fix github#420/github#425: Add SDK connection feedback (github#437)
Fix github#432: Show retry warnings earlier (github#441)
Fix github#421: Lead with default behavior in --help (github#438)
Fix github#423/github#399: Make welcome non-blocking (github#439)
Fix github#428/github#401: Verify input buffering covers all paths (g…
Fix github#430: Wire coordinator streaming deltas (github#442)
fix: update test assertions to match new UX copy (github#443)