Skip to content

Skill-based orchestration — decompose squad.agent.md into pluggable skills #255

Closed

Description

@bradygaster

Summary

Decompose the monolithic squad.agent.md (1000+ lines) into a skill-based orchestration model where the coordinator dynamically loads capabilities from .squad/skills/ instead of inlining everything.

Origin: Discussion #169 by @swnger — https://github.com/bradygaster/squad/discussions/169

Why This Matters

  • Context pressure: squad.agent.md is growing. Every new feature adds instructions the coordinator must hold in context, even when irrelevant to the current task.
  • Modularity: Skills already exist at .squad/skills/ — this extends the pattern to coordinator capabilities themselves (init, migrations, state management, ceremonies).
  • SDK alignment: Skills become typed, testable modules in SDK mode (defineSkill() in squad.config.ts).
  • Community extensibility: Third-party skills can be shared via marketplaces without modifying the core agent file.

Proposed Architecture

Current (monolithic)

squad.agent.md (1000+ lines)
├── Init Mode instructions
├── Team Mode instructions
├── Ceremony instructions
├── GitHub Issues Mode
├── PRD Mode
├── Ralph instructions
└── ... everything inline

Proposed (skill-based)

squad.agent.md (~200 lines — core orchestration only)
├── Identity, routing, model selection
├── Skill discovery and loading
└── Response mode selection

.squad/skills/
├── init-mode/SKILL.md          — team creation flow
├── github-issues/SKILL.md      — issue lifecycle
├── ceremonies/SKILL.md          — ceremony execution
├── prd-intake/SKILL.md          — PRD decomposition
├── ralph-monitor/SKILL.md       — work queue management
├── casting/SKILL.md             — name allocation
└── sdk-mode/SKILL.md            — SDK detection and build

Key Design Questions

  1. Loading strategy: Lazy (load skill when needed) vs eager (load all at spawn)?
  2. Skill interface: What's the contract? Current SKILL.md format or something richer?
  3. Versioning: How do skill versions interact with squad.agent.md versions?
  4. Priority vs additive: Can skills override coordinator behavior, or only extend it?

Relationship to Other Work

Acceptance Criteria

  • squad.agent.md reduced to <300 lines (core orchestration + skill loading)
  • At least 3 coordinator capabilities extracted into skills
  • Skill loading is lazy (only loaded when routing matches)
  • Existing behavior unchanged (no regressions)
  • SDK mode: defineSkill() generates SKILL.md files

Activity

  1. github-actions commented on Mar 7, 2026

    @github-actions
    Contributor

    📋 Assigned to Keaton (Lead)

    Issue: #255 — Skill-based orchestration — decompose squad.agent.md into pluggable skills

    Keaton will pick this up in the next Copilot session.

    For Copilot coding agent: If enabled, this issue will be worked automatically.
    Otherwise, start a Copilot session and say:
    Keaton, work on issue #255

  2. bradygaster commented on Mar 7, 2026

    @bradygaster
    CollaboratorAuthor

    ✅ Implemented in commit 412ce58 on dev.

    What shipped:

    • \defineSkill()\ builder added to \packages/squad-sdk/src/builders/\ — 9th builder with SkillDefinition type (name, description, domain, confidence, source, content, tools)
    • 4 skills extracted from squad.agent.md into .squad/skills/:
      • \init-mode\ (~100 lines) — Phase 1+2 team initialization
      • \model-selection\ (~90 lines) — 4-layer hierarchy, fallback chains
      • \client-compatibility\ (~60 lines) — Platform detection, VS Code adaptations

      • eviewer-protocol\ (~30 lines) — Rejection workflow, strict lockout
    • squad.agent.md compacted from ~840 → ~711 lines (15% reduction) via lazy-loading references
    • Build command generates .squad/skills/{name}/SKILL.md\ from \config.skills\ in squad.config.ts

    Files changed:

    • \packages/squad-sdk/src/builders/index.ts\ — defineSkill()
    • \packages/squad-sdk/src/builders/types.ts\ — SkillDefinition type
    • \packages/squad-cli/src/cli/commands/build.ts\ — skill generation
    • .github/agents/squad.agent.md\ — compacted with skill references

    Tests: 10 new defineSkill tests in \ est/builders.test.ts. All 3768 tests passing.

    — Verbal 🧠

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions