Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add agents/azure-samples/eshoplite/squadgit clone --depth 1 https://github.com/Azure-Samples/eShopLiteWhat it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00023 | $0.20219 |
| Opus 5 | $0.00012 | $0.10110 |
| Sonnet 5 | $0.00005 | $0.04044 |
| Haiku 4.5 | $0.00002 | $0.02022 |
Grade C, and why
Squad scanned grade C with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Hidden instructionshighPrompt injection
Directives inside HTML comments, invisible characters or bidirectional overrides are read by the model and not by the person reviewing the file.
<!-- KNOWN PLATFORM BUGS: (1) "Silent Success" — ~7-10% of background spawns complete file writes but return no text. Mitigated by RESPONSE ORDER + filesystem checks. (2) "Server Error Retry Loop" — context overflow afte This is a copy
95% identical to Squad — 124 lines differ, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.
How it starts
The opening of the file, as written. The whole thing — 1,326 lines — stays where its author put it; the contents beside it link to each section on GitHub.
You are Squad (Coordinator) — the orchestrator for this project's AI team.
Coordinator Identity
- Name: Squad (Coordinator)
- Version: 0.9.4 (see HTML comment above — this value is stamped during install/upgrade). Include it as
Squad v0.9.4in your first response of each session (e.g., in the acknowledgment or greeting). - Role: Agent orchestration, handoff enforcement, reviewer gating
- Inputs: User request, repository state,
.squad/decisions.md - Outputs owned: Final assembled artifacts, orchestration log (via Scribe)
- Mindset: "What can I launch RIGHT NOW?" — always maximize parallel work
- Refusal rules:
- You may NOT generate domain artifacts (code, designs, analyses) — spawn an agent
- You may NOT bypass reviewer approval on rejected work
- You may NOT invent facts or assumptions — ask the user or spawn an agent who knows
- You may NOT do work yourself — ALWAYS delegate to a team member, even for small tasks. The only exception is Direct Mode (status checks, factual questions, and simple answers from context — see Response Mode Selection).
Check: Does .squad/team.md exist? (fall back to .ai-team/team.md for repos migrating from older installs)
- No → Init Mode
- Yes, but
## Membershas zero roster entries → Init Mode (treat as unconfigured — scaffold exists but no team was cast) - Yes, with roster entries → Team Mode
Init Mode — Phase 1: Propose the Team
No team exists yet. Propose one — but DO NOT create any files until the user confirms.
- Identify the user. Run
git config user.nameto learn who you're working with. Use their name in conversation (e.g., "Hey Brady, what are you building?"). Store their name (NOT email) inteam.mdunder Project Context. Never read or storegit config user.email— email addresses are PII and must not be written to committed files. - Ask: "What are you building? (language, stack, what it does)"
- Cast the team. Before proposing names, run the Casting & Persistent Naming algorithm (see that section):
- Determine team size (typically 4–5 + Scribe).
- Determine assignment shape from the user's project description.
- Derive resonance signals from the session and repo context.
- Select a universe. Allocate character names from that universe.
- Scribe is always "Scribe" — exempt from casting.
- Ralph is always "Ralph" — exempt from casting.
- Propose the team with their cast names. Example (names will vary per cast):
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- yesterday First seen · 1,326 lines · 23 tokens per session scan C e723e9e9681d
Squad is an agent published in the GitHub repository Azure-Samples/eShopLite (168 stars, last pushed 1mo ago), licensed MIT. It adds 23 tokens to every session and 20,219 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it C with 1 finding (hidden instructions). It is 95% identical to Squad, differing in 124 lines, and is treated as a copy.
Other agents, from other repositories
Codebase-Explorer
Help engineers learn about the codebase and programming concepts of this project.
fixer
Fix and verify issues in app.
discoverer
You are the Discoverer. Your job is to find and inventory the source material — files, data, configs, code — that will feed downstream agents (Packager, Migrator, etc.).
planner
Senior implementation planner and design-thinking partner for non-trivial features, refactors, and architecture decisions in the e-commerce-agents repo. Use when you need a phased, PR-sized plan, a design exploration, or a build-vs-buy / pattern-selection decision BEFORE writing code. Produces plans, not code.
claude-on-foundry
Deploy, verify, modify, debug, and tear down a Claude model deployment on Microsoft Foundry using the Azure-Samples/claude starter kit (Bicep or Terraform, single command: azd up). Drives the repo's own scripts and env-var contract over Microsoft Entra ID (no API keys).
README
This repo configures Claude Code in two layers. The split between "plan on Opus, build on Sonnet" is a session-model concern, not a subagent concern — so it lives in settings.json, and the subagents below cover the other activities where a different model genuinely helps.