Files
claude-engineering-plugin/plugins/compound-engineering/skills/ce-code-review/references/persona-catalog.md
Trevin Chow 701ae10c2d
Some checks failed
CI / pr-title (push) Has been cancelled
CI / test (push) Has been cancelled
Release PR / release-pr (push) Has been cancelled
Release PR / publish-cli (push) Has been cancelled
feat(ce-code-review): add Swift/iOS stack-specific reviewer persona (#638)
Co-authored-by: Joshua Martens <joshua@every.to>
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-21 17:30:04 -07:00

5.5 KiB

Persona Catalog

18 reviewer personas organized into always-on, cross-cutting conditional, and stack-specific conditional layers, plus CE-specific agents. The orchestrator uses this catalog to select which reviewers to spawn for each review.

Always-on (4 personas + 2 CE agents)

Spawned on every review regardless of diff content.

Persona agents (structured JSON output):

Persona Agent Focus
correctness ce-correctness-reviewer Logic errors, edge cases, state bugs, error propagation, intent compliance
testing ce-testing-reviewer Coverage gaps, weak assertions, brittle tests, missing edge case tests
maintainability ce-maintainability-reviewer Coupling, complexity, naming, dead code, premature abstraction
project-standards ce-project-standards-reviewer CLAUDE.md and AGENTS.md compliance -- frontmatter, references, naming, cross-platform portability, tool selection

CE agents (unstructured output, synthesized separately):

Agent Focus
ce-agent-native-reviewer Verify new features are agent-accessible
ce-learnings-researcher Search docs/solutions/ for past issues related to this PR's modules and patterns

Conditional (8 personas)

Spawned when the orchestrator identifies relevant patterns in the diff. The orchestrator reads the full diff and reasons about selection -- this is agent judgment, not keyword matching.

Persona Agent Select when diff touches...
security ce-security-reviewer Auth middleware, public endpoints, user input handling, permission checks, secrets management
performance ce-performance-reviewer Database queries, ORM calls, loop-heavy data transforms, caching layers, async/concurrent code
api-contract ce-api-contract-reviewer Route definitions, serializer/interface changes, event schemas, exported type signatures, API versioning
data-migrations ce-data-migrations-reviewer Migration files, schema changes, backfill scripts, data transformations
reliability ce-reliability-reviewer Error handling, retry logic, circuit breakers, timeouts, background jobs, async handlers, health checks
adversarial ce-adversarial-reviewer Diff has >=50 changed non-test, non-generated, non-lockfile lines, OR touches auth, payments, data mutations, external API integrations, or other high-risk domains
cli-readiness ce-cli-readiness-reviewer CLI command definitions, argument parsing, CLI framework usage, command handler implementations
previous-comments ce-previous-comments-reviewer PR-only. Reviewing a PR that has existing review comments or review threads from prior review rounds. Skip entirely when no PR metadata was gathered in Stage 1.

Stack-Specific Conditional (6 personas)

These reviewers keep their original opinionated lens. They are additive with the cross-cutting personas above, not replacements for them.

Persona Agent Select when diff touches...
dhh-rails ce-dhh-rails-reviewer Rails architecture, service objects, authentication/session choices, Hotwire-vs-SPA boundaries, or abstractions that may fight Rails conventions
kieran-rails ce-kieran-rails-reviewer Rails controllers, models, views, jobs, components, routes, or other application-layer Ruby code where clarity and conventions matter
kieran-python ce-kieran-python-reviewer Python modules, endpoints, services, scripts, or typed domain code
kieran-typescript ce-kieran-typescript-reviewer TypeScript components, services, hooks, utilities, or shared types
julik-frontend-races ce-julik-frontend-races-reviewer Stimulus/Turbo controllers, DOM event wiring, timers, async UI flows, animations, or frontend state transitions with race potential
swift-ios ce-swift-ios-reviewer Swift files, SwiftUI views, UIKit controllers, .entitlements, PrivacyInfo.xcprivacy, .xcdatamodeld, Package.swift, Package.resolved, storyboards, XIBs, or semantic build-setting / target-membership / code-signing changes in .pbxproj

CE Conditional Agents (migration-specific)

These CE-native agents provide specialized analysis beyond what the persona agents cover. Spawn them when the diff includes database migrations, schema.rb, or data backfills.

Agent Focus
ce-schema-drift-detector Cross-references schema.rb changes against included migrations to catch unrelated drift
ce-deployment-verification-agent Produces Go/No-Go deployment checklist with SQL verification queries and rollback procedures

Selection rules

  1. Always spawn all 4 always-on personas plus the 2 CE always-on agents.
  2. For each cross-cutting conditional persona, the orchestrator reads the diff and decides whether the persona's domain is relevant. This is a judgment call, not a keyword match.
  3. For each stack-specific conditional persona, use file types and changed patterns as a starting point, then decide whether the diff actually introduces meaningful work for that reviewer. Do not spawn language-specific reviewers just because one config or generated file happens to match the extension.
  4. For CE conditional agents, spawn when the diff includes migration files (db/migrate/*.rb, db/schema.rb) or data backfill scripts.
  5. Announce the team before spawning with a one-line justification per conditional reviewer selected.