From 03f690f1f5db4933839c882e4aaca515d0f554c6 Mon Sep 17 00:00:00 2001 From: Dennis Vorobyov Date: Mon, 14 Sep 2026 20:29:08 +0100 Subject: [PATCH] =?UTF-8?q?chore(agents):=20normalize=20model=20tiers=20?= =?UTF-8?q?=E2=80=94=20reasoning=20inherits=20main,=20only=20find-and-repo?= =?UTF-8?q?rt=20is=20pinned=20cheap?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Agent model pins were inconsistent across packs (e.g. performance-engineer, a reasoning agent, was pinned sonnet in three packs; db-migration-specialist was sonnet; the four-hat chain was opus in some packs, inherit in others). Apply one rule to the generic/android/ios packs: reasoning, review, design, implementation, and delivery agents carry no model: line so they inherit the selected main model; only docs-reconciler (a find-and-report drift scan) stays pinned to sonnet. The compute pack is left as-is — it already tiers by role at a finer grain (deep specialists opus, routine implementation sonnet). Documents the policy in docs/agents.md. --- agents-android/performance-engineer.md | 1 - agents-ios/architect.md | 1 - agents-ios/code-reviewer.md | 1 - agents-ios/performance-engineer.md | 1 - agents-ios/qa.md | 1 - agents-ios/release-engineer.md | 1 - agents-ios/senior-swe.md | 1 - agents/db-migration-specialist.md | 1 - agents/debugger.md | 1 - agents/devops-sre.md | 1 - agents/performance-engineer.md | 1 - agents/product-designer.md | 1 - agents/scrum-master.md | 1 - agents/security-reviewer.md | 1 - agents/tech-writer.md | 1 - agents/technical-program-manager.md | 1 - docs/agents.md | 2 ++ 17 files changed, 2 insertions(+), 16 deletions(-) diff --git a/agents-android/performance-engineer.md b/agents-android/performance-engineer.md index 1e724bf..889f629 100644 --- a/agents-android/performance-engineer.md +++ b/agents-android/performance-engineer.md @@ -2,7 +2,6 @@ name: performance-engineer description: Performance analysis for Android/Compose codebases. Use when a change touches a hot Composable, a Flow/coroutine path, app startup, a Room query, or memory-sensitive code — or when investigating jank, slow startup, or APK-size regressions. Covers recomposition, baseline profiles, startup, R8/size, and main-thread safety. Recommends fixes ranked by impact-vs-effort. DOES NOT WRITE CODE. tools: Read, Grep, Glob, Bash -model: sonnet --- > **Section map (post-split):** §5 Architecture, §8 Test Coverage, §12 Reactive Patterns (Coroutines/Flow) live in `~/.claude/rules/android.md`. diff --git a/agents-ios/architect.md b/agents-ios/architect.md index c3bde1d..cfc9e2d 100644 --- a/agents-ios/architect.md +++ b/agents-ios/architect.md @@ -2,7 +2,6 @@ name: architect description: Phase 1 planner for iOS/Swift/SwiftUI codebases. Use PROACTIVELY before non-trivial changes — new features, refactors, bugs needing more than a one-line fix, or anything touching state ownership, navigation, persistence (SwiftData/Core Data), concurrency isolation, or the app/scene lifecycle. Returns a scoped plan with named failure modes. DOES NOT WRITE CODE. tools: Read, Grep, Glob, Bash -model: opus --- > **Section map:** §5 architecture, §6 release, §7 quality gate, §8 testing, §12 concurrency, §13 App Store compliance live in `~/.claude/rules/ios.md`. §2 Git, §3 Coding, §4 workflow, §9, §10, §11, §14 are in CLAUDE.md. diff --git a/agents-ios/code-reviewer.md b/agents-ios/code-reviewer.md index 9a6ccf8..f39b826 100644 --- a/agents-ios/code-reviewer.md +++ b/agents-ios/code-reviewer.md @@ -2,7 +2,6 @@ name: code-reviewer description: Phase 3 adversarial reviewer for iOS/Swift/SwiftUI. Use AFTER implementation, BEFORE pushing. Reviews the diff against a universal checklist plus Swift/SwiftUI red flags — force-unwraps, retain cycles, main-actor violations, data races, SwiftUI state anti-patterns, App Store policy. Every finding fixed or justified. tools: Read, Grep, Glob, Bash -model: opus --- > **Section map:** §5 architecture, §6 release, §7 quality gate, §8 testing, §12 concurrency, §13 App Store compliance live in `~/.claude/rules/ios.md`. §2 Git, §3 Coding, §4 workflow, §9, §10, §11, §14 are in CLAUDE.md. diff --git a/agents-ios/performance-engineer.md b/agents-ios/performance-engineer.md index 2933fab..d7df9f4 100644 --- a/agents-ios/performance-engineer.md +++ b/agents-ios/performance-engineer.md @@ -2,7 +2,6 @@ name: performance-engineer description: Performance analysis for iOS/SwiftUI. Use for jank, slow launch, memory growth, or energy regressions — or when a change touches a hot view, a list, or a main-thread path. Reasons via Instruments (Time Profiler, Allocations, Leaks, SwiftUI), main-thread budget, and view re-evaluation. Ranks fixes by impact-vs-effort. DOES NOT WRITE CODE. tools: Read, Grep, Glob, Bash -model: sonnet --- > **Section map:** §5 architecture, §6 release, §7 quality gate, §8 testing, §12 concurrency, §13 App Store compliance live in `~/.claude/rules/ios.md`. §2 Git, §3 Coding, §4 workflow, §9, §10, §11, §14 are in CLAUDE.md. diff --git a/agents-ios/qa.md b/agents-ios/qa.md index 5b11778..c9e46e4 100644 --- a/agents-ios/qa.md +++ b/agents-ios/qa.md @@ -2,7 +2,6 @@ name: qa description: Phase 4 verifier for iOS/Swift/SwiftUI. Use AFTER review, BEFORE merge. Generates a test plan across the iOS surfaces (unit, snapshot, UI/XCUITest, concurrency, accessibility), runs the local gate on a simulator, and surfaces what needs on-device verification. Returns a structured QA report. tools: Read, Bash, Grep, Glob -model: opus --- > **Section map:** §5 architecture, §6 release, §7 quality gate, §8 testing, §12 concurrency, §13 App Store compliance live in `~/.claude/rules/ios.md`. §2 Git, §3 Coding, §4 workflow, §9, §10, §11, §14 are in CLAUDE.md. diff --git a/agents-ios/release-engineer.md b/agents-ios/release-engineer.md index 3daeed0..fc621a4 100644 --- a/agents-ios/release-engineer.md +++ b/agents-ios/release-engineer.md @@ -2,7 +2,6 @@ name: release-engineer description: Release prep for iOS apps (App Store / TestFlight). Use when bumping the version/build, writing the CHANGELOG, or preparing a release. Knows SemVer + CFBundleShortVersionString/CFBundleVersion, code signing, fastlane, archive/export, and App Store review prep. Verifies tag↔version parity. Outputs the plan + commands; does not upload unilaterally. tools: Read, Edit, Bash, Grep -model: sonnet --- > **Section map:** §5 architecture, §6 release, §7 quality gate, §8 testing, §12 concurrency, §13 App Store compliance live in `~/.claude/rules/ios.md`. §2 Git, §3 Coding, §4 workflow, §9, §10, §11, §14 are in CLAUDE.md. diff --git a/agents-ios/senior-swe.md b/agents-ios/senior-swe.md index e8454d8..823791b 100644 --- a/agents-ios/senior-swe.md +++ b/agents-ios/senior-swe.md @@ -2,7 +2,6 @@ name: senior-swe description: Phase 2 implementer for iOS/Swift/SwiftUI. Use after an architect plan, or for trivial fixes. Writes idiomatic, safe, concurrency-correct Swift matching existing patterns — value types, @Observable, async/await/actors, no force-unwraps, no retain cycles. Senior iOS engineer. tools: Read, Edit, Write, Bash, Grep, Glob -model: opus --- > **Section map:** §5 architecture, §6 release, §7 quality gate, §8 testing, §12 concurrency, §13 App Store compliance live in `~/.claude/rules/ios.md`. §2 Git, §3 Coding, §4 workflow, §9, §10, §11, §14 are in CLAUDE.md. diff --git a/agents/db-migration-specialist.md b/agents/db-migration-specialist.md index e1ea49d..85323c5 100644 --- a/agents/db-migration-specialist.md +++ b/agents/db-migration-specialist.md @@ -2,7 +2,6 @@ name: db-migration-specialist description: Schema migration specialist for any storage layer (SQL, ORMs, Room, document stores). Use when a change adds/alters/removes a column, table, index, or entity, or changes a data shape that persisted data depends on. Designs the forward migration, the rollback path, and the migration test; guards backwards-compatibility across one release. Writes the migration only when asked; otherwise plans it. tools: Read, Edit, Bash, Grep, Glob -model: sonnet --- > **Section map (post-split):** §5 Architecture (incl. backwards-compatibility), §8 Test Coverage live in the platform rule pack for your stack in `~/.claude/rules/` (`web`/`android`/`ios`/`compute`, path-triggered when Claude reads a matching file). diff --git a/agents/debugger.md b/agents/debugger.md index b431fc2..aa3505e 100644 --- a/agents/debugger.md +++ b/agents/debugger.md @@ -2,7 +2,6 @@ name: debugger description: Root-cause analysis for failing tests, crashes, stack traces, and "it worked yesterday" regressions. Use when something is broken and the cause isn't obvious. Reproduces, isolates, and identifies the true root cause — distinguishing it from symptoms — then hands a minimal fix recommendation to the engineer. Investigates; applies a fix only when explicitly told to. tools: Read, Grep, Glob, Bash -model: opus --- > **Section map (post-split):** §5 Architecture, §8 Test Coverage, §12 Concurrency live in the platform rule pack for your stack in `~/.claude/rules/` (`web`/`android`/`ios`/`compute`, path-triggered when Claude reads a matching file). §14 Anti-Patterns is in CLAUDE.md. diff --git a/agents/devops-sre.md b/agents/devops-sre.md index 9ababa4..5391ab9 100644 --- a/agents/devops-sre.md +++ b/agents/devops-sre.md @@ -2,7 +2,6 @@ name: devops-sre description: Senior DevOps / SRE / platform engineer at Fortune-500 / Series C–D caliber. Use to design or review CI/CD pipelines, infrastructure-as-code, containerization/orchestration, deployment strategy + rollback, observability (SLI/SLO/alerts), secrets management, and on-call readiness. Owns the platform the artifact runs on — the complement to release-engineer (which preps the release). Outputs plans/configs and the exact commands; does NOT apply infra changes to production without human approval. tools: Read, Grep, Glob, Bash, Edit, Write -model: opus --- > **Section map (post-split):** §6 Release, §7 Quality Gate / CI live in the platform rule pack for your stack in `~/.claude/rules/` (`web`/`android`/`ios`/`compute`, path-triggered when Claude reads a matching file). §11 Secrets, §13 Compliance/Distribution, §19 Project Context (distribution channel + infra) are in CLAUDE.md / the platform rule. diff --git a/agents/performance-engineer.md b/agents/performance-engineer.md index 304d3ab..0d7b3ac 100644 --- a/agents/performance-engineer.md +++ b/agents/performance-engineer.md @@ -2,7 +2,6 @@ name: performance-engineer description: Performance analysis for any codebase. Use when a change touches a hot path, a query, a loop over user-scaled data, a startup path, or memory-sensitive code — or when investigating a latency/throughput/memory regression. Identifies algorithmic, I/O, allocation, and concurrency costs with evidence. Recommends fixes ranked by impact-vs-effort. DOES NOT WRITE CODE. tools: Read, Grep, Glob, Bash -model: sonnet --- > **Section map (post-split):** §5 Architecture, §8 Test Coverage, §12 Concurrency live in the platform rule pack for your stack in `~/.claude/rules/` (`web`/`android`/`ios`/`compute`, path-triggered when Claude reads a matching file). diff --git a/agents/product-designer.md b/agents/product-designer.md index 79e0d23..3d4e767 100644 --- a/agents/product-designer.md +++ b/agents/product-designer.md @@ -2,7 +2,6 @@ name: product-designer description: Senior product designer (UX/UI/interaction/IA/accessibility/design systems) at Fortune-500 / Series C–D caliber. Use to define the design problem, user flows, information architecture, interaction and state specs, accessibility requirements (WCAG), and design-system usage — and to critique implemented UI against that intent. Produces design specs and acceptance criteria; hands visual production to Claude Design and the build to senior-swe. DOES NOT WRITE PRODUCTION CODE. tools: Read, Grep, Glob, Bash, Edit, Write -model: opus --- > **Section map (post-split):** §5 Architecture (component boundaries) and §13 Compliance (accessibility/privacy) live in the platform rule pack for your stack in `~/.claude/rules/` (`web`/`android`/`ios`/`compute`, path-triggered when Claude reads a matching file). §19 Project Context is in CLAUDE.md. Visual production (mockups, hi-fi comps, assets) is delivered by **Claude Design** — this agent defines intent and reviews the result; it does not render the pixels. diff --git a/agents/scrum-master.md b/agents/scrum-master.md index 57d12e4..f46cb73 100644 --- a/agents/scrum-master.md +++ b/agents/scrum-master.md @@ -2,7 +2,6 @@ name: scrum-master description: Senior scrum master / agile delivery coach at Fortune-500 / Series C–D caliber. Use to run the cadence (sprint planning, daily sync, review, retro, backlog refinement), assess sprint/flow health, surface and drive out impediments, coach on Scrum/Kanban practice, and keep the board honest. Servant-leader who optimizes for sustainable flow, not output theater. Facilitates the team and the engineering agents — DOES NOT WRITE CODE OR SET PRODUCT PRIORITY. tools: Read, Grep, Glob, Bash, Edit, Write -model: opus --- > **Section map (post-split):** §6 Release lives in the platform rule pack for your stack in `~/.claude/rules/` (`web`/`android`/`ios`/`compute`, path-triggered when Claude reads a matching file). §9 Stacked PR, §10 Reconciliation, §19 Project Context are in CLAUDE.md. diff --git a/agents/security-reviewer.md b/agents/security-reviewer.md index 77e8d98..67b1a6c 100644 --- a/agents/security-reviewer.md +++ b/agents/security-reviewer.md @@ -2,7 +2,6 @@ name: security-reviewer description: Deep security audit for any codebase. Use PROACTIVELY when a change touches auth/authz, crypto, user input handling, file/path operations, deserialization, network calls, secrets, or adds/updates dependencies — and before any release. Goes beyond the Phase 3 code-reviewer's security pass: threat-models the diff, audits the supply chain, checks secret hygiene. Returns a structured findings report. DOES NOT WRITE CODE. tools: Read, Grep, Glob, Bash -model: opus --- > **Section map (post-split):** §5 Architecture, §13 Compliance live in the platform rule pack for your stack in `~/.claude/rules/` (`web`/`android`/`ios`/`compute`, path-triggered when Claude reads a matching file). §11 Secrets and §14 Anti-Patterns are in CLAUDE.md. diff --git a/agents/tech-writer.md b/agents/tech-writer.md index 5613511..77cf519 100644 --- a/agents/tech-writer.md +++ b/agents/tech-writer.md @@ -2,7 +2,6 @@ name: tech-writer description: Documentation author for any project. Use to write or update README sections, API/reference docs, docstrings/KDoc on public surfaces, CHANGELOG prose, ADRs, and how-to guides. Complements docs-reconciler (which detects drift but doesn't fix it) — this agent writes the docs. Matches existing voice; no marketing fluff, no AI attribution. tools: Read, Edit, Write, Grep, Glob -model: sonnet --- > **Section map (post-split):** §6 Release / CHANGELOG conventions live in the platform rule pack for your stack in `~/.claude/rules/` (`web`/`android`/`ios`/`compute`, path-triggered when Claude reads a matching file). §2 Git Rules (incl. the no-AI-attribution rule) and §16 PR template are in CLAUDE.md. diff --git a/agents/technical-program-manager.md b/agents/technical-program-manager.md index 7fd93d6..a3d9b5f 100644 --- a/agents/technical-program-manager.md +++ b/agents/technical-program-manager.md @@ -2,7 +2,6 @@ name: technical-program-manager description: Senior technical product & program/project manager (TPM) at Fortune-500 / Series C–D caliber. Use to turn an ambiguous goal into a scoped, sequenced, risk-managed delivery plan; to prioritize a backlog; to produce status/stakeholder communications; to run change control; or to assess delivery health on an in-flight effort. Fluent in product discovery, PMBOK, agile/hybrid methodologies, dependency & risk management, and stakeholder management. Coordinates the engineering agents — DOES NOT WRITE PRODUCTION CODE. tools: Read, Grep, Glob, Bash, Edit, Write -model: opus --- > **Section map (post-split):** §6 Release lives in the platform rule pack for your stack in `~/.claude/rules/` (`web`/`android`/`ios`/`compute`, path-triggered when Claude reads a matching file). §9 Stacked PR, §10 Reconciliation, §17 Scaling, §19 Project Context are in CLAUDE.md. diff --git a/docs/agents.md b/docs/agents.md index 2b014c3..b900417 100644 --- a/docs/agents.md +++ b/docs/agents.md @@ -36,4 +36,6 @@ Agents live under `.claude/agents/` (project) or `~/.claude/agents/` (user, all **Concurrency classification.** Mutating agents hold `Edit`/`Write` and must run serially against the same branch; read-only agents omit `Edit`/`Write` and are safe to invoke in parallel. (Read-only agents may still hold `Bash` for inspection, so the boundary is a documented convention backed by the `tools:` list, not a hard sandbox — the Concurrency column above is the authoritative index.) Claude Code orchestrates serially today; an orchestrator that parallelized the read-only subset could read each agent's `tools:` allowlist to derive the safe set — typically a 2–5× speedup on multi-step turns. The read-only/mutating class is signalled by the `tools:` allowlist, **not** a frontmatter flag — `concurrency:` is not a supported sub-agent field, so the harness silently ignores it; the Concurrency column here is documentation for humans. +**Model tiers.** Model selection is by role, via the `model:` frontmatter field. Reasoning, review, design, implementation, and delivery agents carry **no `model:` line**, so they inherit your selected main model — thinking and decisions stay on the powerful model you chose, and follow it if you change it. The one cheap exception in the generic / Android / iOS packs is `docs-reconciler`, pinned to `sonnet`: drift detection is a find-and-report scan that doesn't need frontier reasoning, so it runs on a cheaper model and hands back only its report (the same reason you delegate a broad search to a read-only agent — the file dumps land in the cheap agent's context, not your main one). The `agents-compute/` pack keeps explicit pins at a finer grain — deep specialists (CUDA, numerics, parallelism, memory, systems, performance) on `opus`, routine implementation (build, python, inference plumbing) on `sonnet` — because compute work is rule-heavy and a deterministic per-role pin is worth it there. Rule of thumb: omit `model:` for anything that reasons or writes; pin to a cheap model only pure find-and-report work. + **Per-stack override packs.** The generic roster ships in `agents/` (15). Stack-specific packs — `agents-android/` (7), `agents-ios/` (7), `agents-compute/` (13) — override the global agent of the same `name:` when dropped into a repo's `.claude/agents/`. See `STRUCTURE.md` → "Agent override model" for which names each pack overrides and which globals fall through.