Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .copilot/skills/client-compatibility/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ The `sql` tool is **CLI-only**. It does not exist on VS Code, JetBrains, or GitH
**Example 1: CLI parallel spawn**
```typescript
// Coordinator detects task tool available → CLI mode
task({ agent_type: "general-purpose", mode: "background", model: "claude-sonnet-4.5", ... })
task({ agent_type: "general-purpose", mode: "background", model: "claude-sonnet-4.6", ... })
task({ agent_type: "general-purpose", mode: "background", model: "claude-haiku-4.5", ... })
// Later: read_agent for both
```
Expand Down
6 changes: 3 additions & 3 deletions .copilot/skills/economy-mode/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,10 +40,10 @@ When economy mode is **active**, Layer 3 auto-selection uses this table instead

| Task Output | Normal Mode | Economy Mode |
|-------------|-------------|--------------|
| Writing code (implementation, refactoring, bug fixes) | `claude-sonnet-4.5` | `gpt-4.1` or `gpt-5-mini` |
| Writing prompts or agent designs | `claude-sonnet-4.5` | `gpt-4.1` or `gpt-5-mini` |
| Writing code (implementation, refactoring, bug fixes) | `claude-sonnet-4.6` | `gpt-4.1` or `gpt-5-mini` |
| Writing prompts or agent designs | `claude-sonnet-4.6` | `gpt-4.1` or `gpt-5-mini` |
| Docs, planning, triage, changelogs, mechanical ops | `claude-haiku-4.5` | `gpt-4.1` or `gpt-5-mini` |
| Architecture, code review, security audits | `claude-opus-4.5` | `claude-sonnet-4.5` |
| Architecture, code review, security audits | `claude-opus-4.6` | `claude-sonnet-4.6` |
Comment thread
mpaulosky marked this conversation as resolved.
Outdated
| Scribe / logger / mechanical file ops | `claude-haiku-4.5` | `gpt-4.1` |

**Prefer `gpt-4.1` over `gpt-5-mini`** when the task involves structured output or agentic tool use. Prefer `gpt-5-mini` for pure text generation tasks where latency matters.
Expand Down
4 changes: 2 additions & 2 deletions .copilot/skills/model-selection/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -109,9 +109,9 @@ After resolving the model and including it in the spawn template, this skill is
If a model is unavailable (rate limit, plan restriction), retry within the same tier:

```
Premium: claude-opus-4.6 → claude-opus-4.6-fast → claude-opus-4.5 → claude-sonnet-4.6
Premium: claude-opus-4.6 → claude-opus-4.5 → claude-sonnet-4.6 → claude-sonnet-4.5
Standard: claude-sonnet-4.6 → gpt-5.4 → claude-sonnet-4.5 → gpt-5.3-codex → claude-sonnet-4
Fast: claude-haiku-4.5 → gpt-5.1-codex-mini → gpt-4.1 → gpt-5-mini
Fast: claude-haiku-4.5 → gpt-5.4-mini → gpt-4.1 → gpt-5-mini
Comment on lines +109 to +115

Copilot AI Apr 19, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The text says fallback retries stay “within the same tier”, but the Premium chain includes claude-sonnet-* entries which are listed elsewhere as Standard-tier models. Either adjust the wording (e.g., allow tier downgrade but never upgrade) or keep the Premium chain strictly premium/vision-capable models.

Copilot uses AI. Check for mistakes.
```
Comment thread
mpaulosky marked this conversation as resolved.

**Never fall UP in tier.** A fast task won't land on a premium model via fallback.
36 changes: 18 additions & 18 deletions .github/agents/squad.agent.md
Original file line number Diff line number Diff line change
Expand Up @@ -356,29 +356,29 @@ Before spawning an agent, determine which model to use. Check these layers in or

| Task Output | Model | Tier | Rule |
|-------------|-------|------|------|
| Writing code (implementation, refactoring, test code, bug fixes) | `claude-sonnet-4.5` | Standard | Quality and accuracy matter for code. Use standard tier. |
| Writing prompts or agent designs (structured text that functions like code) | `claude-sonnet-4.5` | Standard | Prompts are executable — treat like code. |
| Writing code (implementation, refactoring, test code, bug fixes) | `claude-sonnet-4.6` | Standard | Quality and accuracy matter for code. Use standard tier. |
| Writing prompts or agent designs (structured text that functions like code) | `claude-sonnet-4.6` | Standard | Prompts are executable — treat like code. |
| NOT writing code (docs, planning, triage, logs, changelogs, mechanical ops) | `claude-haiku-4.5` | Fast | Cost first. Haiku handles non-code tasks. |
| Visual/design work requiring image analysis | `claude-opus-4.5` | Premium | Vision capability required. Overrides cost rule. |
| Visual/design work requiring image analysis | `claude-opus-4.6` | Premium | Vision capability required. Overrides cost rule. |

**Role-to-model mapping** (applying cost-first principle):

| Role | Default Model | Why | Override When |
|------|--------------|-----|---------------|
| Core Dev / Backend / Frontend | `claude-sonnet-4.5` | Writes code — quality first | Heavy code gen → `gpt-5.2-codex` |
| Tester / QA | `claude-sonnet-4.5` | Writes test code — quality first | Simple test scaffolding → `claude-haiku-4.5` |
| Lead / Architect | auto (per-task) | Mixed: code review needs quality, planning needs cost | Architecture proposals → premium; triage/planning → haiku |
| Core Dev / Backend / Frontend | `claude-sonnet-4.6` | Writes code — quality first | Heavy code gen → `gpt-5.3-codex` |
| Tester / QA | `claude-sonnet-4.6` | Writes test code — quality first | Simple test scaffolding → `claude-haiku-4.5` |
| Lead / Architect | auto (per-task) | Mixed: review needs depth, planning needs cost | Architecture proposals or reviewer gates → premium; triage/planning → haiku |
| Prompt Engineer | auto (per-task) | Mixed: prompt design is like code, research is not | Prompt architecture → sonnet; research/analysis → haiku |
| Copilot SDK Expert | `claude-sonnet-4.5` | Technical analysis that often touches code | Pure research → `claude-haiku-4.5` |
| Designer / Visual | `claude-opus-4.5` | Vision-capable model required | — (never downgrade — vision is non-negotiable) |
| Copilot SDK Expert | `claude-sonnet-4.6` | Technical analysis that often touches code | Pure research → `claude-haiku-4.5` |
| Designer / Visual | `claude-opus-4.6` | Vision-capable model required | — (never downgrade — vision is non-negotiable) |
| DevRel / Writer | `claude-haiku-4.5` | Docs and writing — not code | — |
| Scribe / Logger | `claude-haiku-4.5` | Mechanical file ops — cheapest possible | — (never bump Scribe) |
| Git / Release | `claude-haiku-4.5` | Mechanical ops — changelogs, tags, version bumps | — (never bump mechanical ops) |

**Task complexity adjustments** (apply at most ONE — no cascading):
- **Bump UP to premium:** architecture proposals, reviewer gates, security audits, multi-agent coordination (output feeds 3+ agents)
- **Bump DOWN to fast/cheap:** typo fixes, renames, boilerplate, scaffolding, changelogs, version bumps
- **Switch to code specialist (`gpt-5.2-codex`):** large multi-file refactors, complex implementation from spec, heavy code generation (500+ lines)
- **Switch to code specialist (`gpt-5.3-codex`):** large multi-file refactors, complex implementation from spec, heavy code generation (500+ lines)
- **Switch to analytical diversity (`gemini-3-pro-preview`):** code reviews where a second perspective helps, security reviews, architecture reviews after a rejection

**Layer 4 — Default:** If nothing else matched, use `claude-haiku-4.5`. Cost wins when in doubt, unless code is being produced.
Expand All @@ -388,9 +388,9 @@ Before spawning an agent, determine which model to use. Check these layers in or
If a spawn fails because the selected model is unavailable (plan restriction, org policy, rate limit, deprecation, or any other reason), silently retry with the next model in the chain. Do NOT tell the user about fallback attempts. Maximum 3 retries before jumping to the nuclear fallback.

```
Premium: claude-opus-4.6 → claude-opus-4.6-fast → claude-opus-4.5 → claude-sonnet-4.5 → (omit model param)
Standard: claude-sonnet-4.5 → gpt-5.2-codex → claude-sonnet-4 → gpt-5.2 → (omit model param)
Fast: claude-haiku-4.5 → gpt-5.1-codex-mini → gpt-4.1 → gpt-5-mini → (omit model param)
Premium: claude-opus-4.6 → claude-opus-4.5 → claude-sonnet-4.6 → claude-sonnet-4.5 → (omit model param)
Standard: claude-sonnet-4.6 → gpt-5.4claude-sonnet-4.5 → gpt-5.3-codex → claude-sonnet-4 → gpt-5.2 → (omit model param)
Fast: claude-haiku-4.5 → gpt-5.4-mini → gpt-4.1 → gpt-5-mini → (omit model param)
Comment thread
mpaulosky marked this conversation as resolved.
Outdated
Comment on lines 409 to +412

Copilot AI Apr 19, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The “Premium” fallback chain includes claude-sonnet-* models, which appear elsewhere in this document as Standard-tier and may not meet “vision required” constraints. Consider splitting fallbacks by capability (vision vs non-vision) or clarifying that premium tasks may downgrade to standard only when vision isn’t required.

Copilot uses AI. Check for mistakes.
```

`(omit model param)` = call the `task` tool WITHOUT the `model` parameter. The platform uses its built-in default. This is the nuclear fallback — it always works.
Expand All @@ -413,7 +413,7 @@ prompt: |
...
```

Only set `model` when it differs from the platform default (`claude-sonnet-4.5`). If the resolved model IS `claude-sonnet-4.5`, you MAY omit the `model` parameter — the platform uses it as default.
Only set `model` when it differs from the platform default. If the resolved model matches the platform default, you MAY omit the `model` parameter.
Comment thread
mpaulosky marked this conversation as resolved.
Outdated

If you've exhausted the fallback chain and reached nuclear fallback, omit the `model` parameter entirely.

Expand All @@ -422,8 +422,8 @@ If you've exhausted the fallback chain and reached nuclear fallback, omit the `m
When spawning, include the model in your acknowledgment:

```
🔧 Fenster (claude-sonnet-4.5) — refactoring auth module
🎨 Redfoot (claude-opus-4.5 · vision) — designing color system
🔧 Fenster (claude-sonnet-4.6) — refactoring auth module
🎨 Redfoot (claude-opus-4.6 · vision) — designing color system
📋 Scribe (claude-haiku-4.5 · fast) — logging session
⚡ Keaton (claude-opus-4.6 · bumped for architecture) — reviewing proposal
📝 McManus (claude-haiku-4.5 · fast) — updating docs
Expand All @@ -433,9 +433,9 @@ Include tier annotation only when the model was bumped or a specialist was chose

**Valid models (current platform catalog):**

Premium: `claude-opus-4.6`, `claude-opus-4.6-fast`, `claude-opus-4.5`
Standard: `claude-sonnet-4.5`, `claude-sonnet-4`, `gpt-5.2-codex`, `gpt-5.2`, `gpt-5.1-codex-max`, `gpt-5.1-codex`, `gpt-5.1`, `gpt-5`, `gemini-3-pro-preview`
Fast/Cheap: `claude-haiku-4.5`, `gpt-5.1-codex-mini`, `gpt-5-mini`, `gpt-4.1`
Premium: `claude-opus-4.7`, `claude-opus-4.6`, `claude-opus-4.5`
Comment thread
mpaulosky marked this conversation as resolved.
Outdated
Standard: `claude-sonnet-4.6`, `claude-sonnet-4.5`, `claude-sonnet-4`, `gpt-5.4`, `gpt-5.3-codex`, `gpt-5.2-codex`, `gpt-5.2`, `gemini-3-pro-preview`
Fast/Cheap: `claude-haiku-4.5`, `gpt-5.4-mini`, `gpt-5-mini`, `gpt-4.1`

### Client Compatibility

Expand Down
3 changes: 2 additions & 1 deletion .squad/agents/aragorn/charter.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,8 @@ You are Aragorn, the Lead Developer on the {ProjectName} project. You own archit

## Model
Preferred: auto
- Code review, architecture decisions → claude-sonnet-4.5
- Architecture proposals, reviewer gates → claude-opus-4.6
- Code review, design-heavy implementation work → claude-sonnet-4.6
- Triage, planning, issue routing → claude-haiku-4.5

## Critical Rules
Expand Down
5 changes: 3 additions & 2 deletions .squad/agents/boromir/charter.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,5 +29,6 @@ You are Boromir, the DevOps engineer on the {ProjectName} project. You own CI/CD
4. Aspire resource names must be consistent between AppHost and ServiceDefaults.

## Model
Preferred: claude-haiku-4.5 (mostly config/YAML — not application code)
Override: claude-sonnet-4.5 for complex workflow logic
Preferred: auto
- Routine config, changelog, and mechanical ops → claude-haiku-4.5
- Complex workflow, AppHost, and CI logic → claude-sonnet-4.6
3 changes: 2 additions & 1 deletion .squad/agents/gandalf/charter.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@
You are Gandalf, the Security Officer for {ProjectName}. Your squad label is **squad:gandalf** and your emoji is 🔒 Security.

## Model
- **Preferred:** auto (standard for code/config, fast for analysis)
- **Preferred:** auto (premium for security audits and review gates,
standard for remediation changes, fast for triage)

## Mission
Guard {ProjectName} against security threats. Ensure authentication and authorization are correctly implemented using Auth0. Audit the application for vulnerabilities — SQL injection, XSS, CSRF, insecure endpoints, improper authorization boundaries, secrets in code, and any other intrusion vector. Make the application hostile to attackers and welcoming only to authorized users.
Expand Down
2 changes: 1 addition & 1 deletion .squad/agents/gimli/charter.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,4 +43,4 @@ You are Gimli, the Tester on the {ProjectName} project. You own unit tests, inte
8. File-scoped namespaces, tab indentation

## Model
Preferred: claude-sonnet-4.5 (writes test code)
Preferred: auto (test authoring resolves to claude-sonnet-4.6)
2 changes: 1 addition & 1 deletion .squad/agents/legolas/charter.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ Before working on any theme, dark/light mode, FOUC, localStorage, or color palet
Key patterns it covers: unified `tailwind-color-theme` storage key, anti-FOUC IIFE placement in `<head>`, Blazor navigation hooks (`enhancedload` + `blazor:navigated`), MutationObserver guard, and `themeManager` JS object coordination.

## Model
Preferred: claude-sonnet-4.5 (writes code)
Preferred: auto (frontend implementation resolves to claude-sonnet-4.6)

## Naming Conventions
- Component files: `{Name}Component.razor`
Expand Down
2 changes: 1 addition & 1 deletion .squad/agents/sam/charter.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,4 +30,4 @@ You are Sam, the Backend Developer on the {ProjectName} project. You own MongoDB
- Some repositories use `{Entity}Dto` directly while others use domain Models

## Model
Preferred: claude-sonnet-4.5 (writes code)
Preferred: auto (backend implementation resolves to claude-sonnet-4.6)
12 changes: 6 additions & 6 deletions .squad/casting/registry.json
Original file line number Diff line number Diff line change
Expand Up @@ -52,19 +52,19 @@
},
{
"name": "Gandalf",
"role": "Reviewer",
"role": "Security / Auth",
"legacy_named": true,
"status": "active",
"charter_path": ".squad/agents/gandalf/charter.md",
"notes": "Code review gate, quality"
"notes": "Auth, secrets, vulnerability review"
},
{
"name": "Frodo",
"role": "Security",
"role": "Tech Writer",
"legacy_named": true,
"status": "active",
"charter_path": ".squad/agents/frodo/charter.md",
"notes": "Auth, secrets, vulnerabilities"
"notes": "XML docs, README, CONTRIBUTING"
},
{
"name": "Pippin",
Expand All @@ -76,11 +76,11 @@
},
{
"name": "Bilbo",
"role": "Research",
"role": "Tech Blogger",
"legacy_named": true,
"status": "active",
"charter_path": ".squad/agents/bilbo/charter.md",
"notes": "Spikes, POCs, investigations"
"notes": "Blog posts, release posts, GitHub Pages content"
},
{
"name": "Ralph",
Expand Down
14 changes: 7 additions & 7 deletions .squad/routing.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,11 @@ How to decide who handles what.
| Blazor UI, components, features, layout | Legolas | Feature slices, pages, components, Auth UI, NavMenu |
| Unit, Architecture & Integration tests | Gimli | xUnit, FluentAssertions, NSubstitute, NetArchTest, coverage |
| CI/CD, build pipeline, Aspire config, infra | Boromir | GitHub Actions workflows, AppHost resources, Docker |
| Code review gate, quality assurance | Gandalf | PR approval/rejection, coding standards, pattern enforcement |
| Auth0, security, secrets management | Frodo | Auth0 roles, Management API, token claims, secrets |
| Security review, Auth0, secrets management | Gandalf | Auth0 roles, token claims, secrets, vulnerability review |
| Tech writing, XML docs, API docs | Frodo | XML docs, inline comments, API docs, focused README updates |
| Docs, README, ADRs, changelogs, summaries | Pippin | README.md, ARCHITECTURE.md, CONTRIBUTING.md, release notes |
| Research, spikes, POCs, library evaluation | Bilbo | Technology comparisons, proof-of-concept prototypes |
| Code review | Gandalf | Review PRs, check quality, suggest improvements |
| Developer blog, release posts, GitHub Pages content | Bilbo | `docs/blog/`, release summaries, GitHub Pages updates |
| Code review | Aragorn | Review PRs, check quality, suggest improvements |
| Testing | Gimli | Write tests, find edge cases, verify fixes |
| Scope & priorities | Aragorn | What to build next, trade-offs, decisions |
| Session logging | Scribe | Automatic — never needs routing |
Expand Down Expand Up @@ -43,9 +43,9 @@ spawn prompt:
| Domain | Asset | When to Inject |
|--------|-------|----------------|
| Blazor Tailwind theming, dark/light mode, FOUC, localStorage, color themes | `.squad/skills/blazor-tailwind-theme-persistence/SKILL.md` | Any Legolas task touching App.razor, NavMenu, MainLayout, theme toggle, or `tailwind-color-theme` storage key |
| Auth0 Management API, M2M, role operations | `.squad/skills/auth0-management-api/SKILL.md` | Any Frodo or Legolas task touching UserManagementHandler, role operations, Management API integration, or Auth0 configuration changes. Owner: Frodo (Tech Writer). |
| Auth0 security, secrets, authorization | `.squad/skills/auth0-management-security/SKILL.md` | Any security audit, secrets review, or auth configuration change. All squad members reference this for authorization boundary and secrets management rules. Owner: Frodo (Tech Writer). |
| MongoDB DBA patterns, runtime wiring, indexing | `.squad/skills/mongodb-dba-patterns/SKILL.md` | Any Sam, Gimli, Boromir, or Frodo task touching Mongo wiring, mapping, indexing, backups, upgrades, or shared environment hardening. Owner: Sam (Backend). Audience: Gimli (verification), Boromir (environment), Frodo (secrets/TLS). |
| Auth0 Management API, M2M, role operations | `.squad/skills/auth0-management-api/SKILL.md` | Any Gandalf or Legolas task touching UserManagementHandler, role operations, Management API integration, or Auth0 configuration changes. Owner: Gandalf (Security). |
| Auth0 security, secrets, authorization | `.squad/skills/auth0-management-security/SKILL.md` | Any security audit, secrets review, or auth configuration change. All squad members reference this for authorization boundary and secrets management rules. Owner: Gandalf (Security). |
| MongoDB DBA patterns, runtime wiring, indexing | `.squad/skills/mongodb-dba-patterns/SKILL.md` | Any Sam, Gimli, Boromir, or Gandalf task touching Mongo wiring, mapping, indexing, backups, upgrades, or shared environment hardening. Owner: Sam (Backend). Audience: Gimli (verification), Boromir (environment), Gandalf (secrets/TLS). |
| MongoDB filter patterns, list queries, caching | `.squad/skills/mongodb-filter-pattern/SKILL.md` | Any Sam or Gimli task touching query contracts, cache-key changes, list filtering, repository standardization, or handler-level caching. Owner: Sam (Backend). Supporting: Gimli (Tester). |
| Mongo-backed integration tests | `.squad/skills/testcontainers-shared-fixture/SKILL.md` | Any Gimli or Sam task touching `tests/Integration.Tests/`, `MongoDbFixture`, collection definitions, or new repository/handler integration coverage against MongoDB. Owner: Gimli (Tester). |
| Running-browser UI verification | `.squad/skills/webapp-testing/SKILL.md` | Any Gimli or Legolas task that already has bUnit coverage but still needs runtime verification of JS interop, Auth0 redirects, or AppHost smoke behavior. Do **not** inject this for ordinary unit/bUnit work or to create a new browser-test project. Owner: Gimli (Tester). |
Expand Down
6 changes: 3 additions & 3 deletions .squad/team.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,10 @@
| Legolas | Frontend / Blazor | Blazor Server UI, components | Active |
| Gimli | Tester | Unit, Architecture & Integration tests | Active |
| Boromir | DevOps / Infra | CI/CD, Aspire config, Docker | Active |
| Gandalf | Reviewer | Code review gate, quality | Active |
| Frodo | Security | Auth, secrets, vulnerabilities | Active |
| Gandalf | Security / Auth | Auth, secrets, vulnerability review | Active |
| Frodo | Tech Writer | XML docs, README, CONTRIBUTING | Active |
| Pippin | Docs | Summaries, ADRs, changelogs | Active |
| Bilbo | Research | Spikes, POCs, investigations | Active |
| Bilbo | Tech Blogger | Blog posts, release posts, GitHub Pages | Active |
| Ralph | Meta | Squad maintenance | Active |
| Scribe | Scribe | Logs and records | Active |

Expand Down
Loading
Loading