| Bug fix | tracing-correctness-and-invariants, hunting-silent-failures |
| Bug fix whose root cause is a missing or wrong invariant — a discriminator field (kind/status/type/mode) constraining which sibling fields are valid, or a fix that itself adds/patches a runtime validation function rather than an off-by-one, null check, or typo | reviewing-module-design, tracing-correctness-and-invariants, hunting-silent-failures — illegal-states-representable bugs get miscategorized as ordinary bug fixes by the base "Bug fix" route above, which never includes this lens (confirmed: two consecutive PRs fixing the same discriminator-plus-generic-field-bag bug both skipped it — brandondees/second-brain-config pull requests 776 and 778) — combine both rows so the type-design lens actually runs when the fix is a representation gap, not just a logic error |
| New feature (general-purpose change) | tracing-correctness-and-invariants, checking-restraint |
| Refactor / restructuring | reviewing-module-design, checking-restraint |
| Schema migration, backfill, or data-format change | reviewing-migration-and-data-safety, tracing-correctness-and-invariants, hunting-silent-failures |
| Async / concurrent / distributed change (queues, workers, locks, await) | reviewing-concurrency-and-async, tracing-correctness-and-invariants, hunting-silent-failures |
| Public API or contract change (endpoints, SDK surface, webhooks) | reviewing-api-contract-safety, reviewing-module-design, sweeping-for-security |
| New abstraction, library, or engine shipped ahead of its consumer (generic/trait with one or no impl, a crate with no caller yet, "substrate for a later feature") | checking-restraint, reviewing-module-design, reviewing-api-contract-safety — restraint-led — speculative generality can be flawless and premature at once, so it hides from the correctness and test lenses |
| Error-handling / resilience change (retries, fallbacks, timeouts) | hunting-silent-failures, reviewing-observability-and-operability, reviewing-concurrency-and-async |
| Resilience / scalability / capacity / DR design (a new queue or cache, a stateful service, failover/HA, a scaling or capacity plan, or a call to a dependency that can be slow or down) | reviewing-resilience-and-scalability, reviewing-concurrency-and-async, reviewing-observability-and-operability — design-time operability — blast radius, backpressure, statelessness, RTO/RPO; pairs with #16 for the runtime-instrumentation side |
| Auth, user input, or anything handling untrusted data | sweeping-for-security, hunting-silent-failures, tracing-correctness-and-invariants |
| Performance-motivated change ("this makes it faster") | reviewing-performance-and-efficiency, checking-restraint, tracing-correctness-and-invariants |
| LLM / model-API integration (a model call, prompt construction, or model-output handling — no tools or autonomous loop) | reviewing-llm-integration, sweeping-for-security, checking-restraint |
| Agent / tool-use change — a tool or function definition exposed to a model, an MCP server or client, an autonomous or multi-agent loop, agent memory, or any code that lets a model take actions | reviewing-agentic-safety, reviewing-llm-integration, sweeping-for-security — the action/tool surface (what the model may do) — #32 owns it; the model call itself is #25, the authz verdict #14 |
| Threat model / security-architecture review (a system or AI agent app, with or without a design doc) | reviewing-threat-model, sweeping-for-security, reviewing-agentic-safety, reviewing-llm-integration — enumeration-led — #38 builds the model and delegates the deep verdict to the topical security lenses |
| AI-generated or AI-assisted change, a large or unfamiliar diff, or any change that adds dependencies or confident-looking constants/APIs | tracing-correctness-and-invariants, sweeping-for-security — attribution-agnostic; #18 owns the supply-chain verdict, #14 the security one |
| Change to an AI-/agent-maintained codebase, to agent-onboarding files (AGENTS.md/CLAUDE.md, llms.txt) or repo structure an agent must navigate, or a large/scattered change whose context economy matters | checking-restraint — the agent-as-reader vantage — mirror of #34; context economy, retrieval-friendly structure, scoped agent onboarding |
| User-facing flow that could manipulate or disadvantage a person — consent / opt-out, defaults, pricing or eligibility conditionals, onboarding / checkout / cancellation funnels | sweeping-for-security — detect-and-route — dark patterns, manipulative defaults, discriminatory conditionals; consent-as-law routes to #27, product trade-offs to product, a11y mechanics to #23 |
| Logging, metrics, alerts, feature flags, deploy/rollback paths | reviewing-observability-and-operability, sweeping-for-security |
| Design doc / plan / RFC (no code yet) | tracing-correctness-and-invariants, reviewing-concurrency-and-async, reviewing-migration-and-data-safety, reviewing-api-contract-safety — pick by the design's domain, from design-capable (◆) lenses only |
| Dependency add or bump | checking-restraint |
| CI / build / config change | sweeping-for-security |
| Install / setup / packaging change, an upgrade or migration guide, a config or CLI surface, or anything a downstream project adopts (a tool, plugin, template, or library) | reviewing-install-and-upgrade-experience, reviewing-api-contract-safety — the adopter-facing experience — setup friction, config UX, and a version-bump a consumer or an agent can complete and verify |
| Change that parses or emits a standard format or speaks an external protocol — an HTTP/REST client or handler, an OAuth/OIDC or other auth flow, date / URL / email / CSV / JSON serialization, a version bump on a published surface, a cron expression, or telemetry attributes | reviewing-api-contract-safety, tracing-correctness-and-invariants — does the code correctly speak the external standard — HTTP/OAuth semantics, RFC formats, SemVer, Unicode, cron dialect, OTel semconv; #13 owns the contract we author, #4 internal correctness, #14 the auth-flow security verdict |
| Infrastructure-as-code change (Terraform/OpenTofu, Kubernetes/Helm, CloudFormation manifests) | sweeping-for-security — repo-shaped — judges blast radius, public exposure, IAM scope, and declared-vs-live drift; #14 owns the security verdict |
| A decision, not a diff — an ADR / RFC / design doc, a dependency or technology adoption, a build-vs-buy or vendor choice, or a deprecation / sunset plan | reviewing-decision-lifecycle, checking-restraint, reviewing-api-contract-safety — decision-shaped — reviews the choice and its record (rationale, assumptions, exit), not implementation code; pair with the design-capable (◆) lenses for the decision's domain. reviewing-decision-lifecycle auto-includes on this shape even if ranking would otherwise drop it |