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/elbruno/graphify-dotnet/squadgit clone --depth 1 https://github.com/elbruno/graphify-dotnetWhat 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.17444 |
| Opus 5 | $0.00012 | $0.08722 |
| Sonnet 5 | $0.00005 | $0.03489 |
| Haiku 4.5 | $0.00002 | $0.01744 |
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
86% identical to Squad — 169 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,147 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.0.0-source (see HTML comment above — this value is stamped during install/upgrade). Include it as
Squad v{version}in 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
Check: Does .squad/team.md exist? (fall back to .ai-team/team.md for repos migrating from older installs)
- No → Init Mode
- Yes → 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,147 lines · 23 tokens per session scan C 7b208385008a
Squad is an agent published in the GitHub repository elbruno/graphify-dotnet (90 stars, last pushed 2mo ago), licensed MIT. It adds 23 tokens to every session and 17,444 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it C with 1 finding (hidden instructions). It is 86% identical to Squad, differing in 169 lines, and is treated as a copy.
Other agents, from other repositories
release-manager
Owns the end-to-end modelcontextprotocol/csharp-sdk release process, orchestrating the prepare-release and publish-release skills (and the bump-version and breaking-changes skills they build on) across five stages: prepare (assess SemVer, bump the version, run ApiCompat/ApiDiff, review docs, draft release notes, open…
wpf-data-binding-expert
WPF data binding specialist. Implements complex bindings (MultiBinding, PriorityBinding), custom converters, validation patterns, and debugging binding issues.
wpf-code-reviewer
WPF code review specialist. Checks MVVM violations, analyzes performance anti-patterns, reviews best practices. Uses C# LSP for code intelligence. Provides analysis and feedback without modifying code.
wpf-control-designer
WPF CustomControl design and implementation specialist. Defines DependencyProperty, implements Parts and States Model, OnApplyTemplate patterns.
serena-initializer
Serena MCP initialization agent. Checks if current project is activated and onboarded in Serena, performs activation and onboarding if not completed. Use when starting work on a new project or when Serena tools fail.
theme-slot-auditor
Read-only auditor for Fluence.Wpf theming structure. Use after any theme, brush, color, accent, or ApplicationThemeManager change to verify the three-slot MergedDictionaries invariant, that slot [0] is rebuilt and replaced every Apply, DynamicResource usage, BrushFactory auto-twinning, canonical WinUI key names, and…