/cs-backend-review¶
Use the cs-backend-engineer agent (uses context: fork) to handle this inquiry:
$ARGUMENTS
Forcing-question library¶
Canonical source: engineering-team/skills/senior-backend/references/forcing_questions.md (7 questions, one-per-turn, recommendation + canon citation per question).
- Read/write ratio + one-year p99 QPS
- Tenancy model (single / shared / isolated multi-tenant)
- Sync request/response vs async (queue) vs event-driven
- Data sensitivity tier (public / internal / PII / PHI / PCI)
- Monolith / modular monolith / microservices (team-size justification)
- RPO and RTO
- SLO + named error-budget consumer
Routing protocol¶
- Walk the 7 forcing questions in
engineering-team/skills/senior-backend/references/forcing_questions.md. One per turn. Recommend with cited canon. Track in/tmp/backend-grill-<date>.md. - Surface kill criteria — e.g., "microservices, team size 5" trips (Newman's MonolithFirst). STOP and resolve.
- Run the deterministic profile picker:
python engineering-team/skills/senior-backend/scripts/backend_decision_engine.py \ --team-size <N> --qps-p99 <N> --read-write-ratio <ratio> \ --tenancy <single-tenant|shared-multi-tenant|isolated-multi-tenant> \ --data-sensitivity <public|pii|phi|pci> \ --pattern <monolith|modular-monolith|domain-bounded-services|microservices|serverless> \ --language-preference <typescript|python|go|rust|java|kotlin|dotnet> - Surface the matched profile + named approver chain for stack changes / schema migrations / external services.
- Fork into specialists in dependency order:
slo-architectFIRST — no SLO, no designapi-design-reviewer— API contractdatabase-designer+database-schema-designer— schema + ERDmigration-architect— only if changing existing schemaobservability-designer— golden signals + alertsci-cd-pipeline-builder— pipeline matching cadence targetsenior-security+adversarial-reviewer— before public launchra-qm-team/*— if data sensitivity is PHI / PCI / regulatedcs-karpathy-reviewer— before any commit
Output expectations (≤ 200-word digest)¶
- Matched profile + reason
- Three SLO targets (p50, p99 latency + uptime)
- RPO + RTO
- Named approver chain (tech-lead + on-call + DBA + ...)
- List of specialists invoked + artifact paths
- Recommended next sub-skill
Anti-patterns¶
- ❌ Recommending Kafka / event-driven before naming the second team that needs it.
- ❌ Recommending microservices without team-size ≥ 30 + platform team + bounded-context independence.
- ❌ Designing the API without forking into
api-design-reviewer. - ❌ Recommending a DB without QPS + read/write ratio (Q1 unanswered).
- ❌ Auto-approving a production schema migration. Always name the on-call + DBA.
Customization¶
Profiles live at engineering-team/skills/senior-backend/profiles/. Four built-in: node-express, fastapi-python, django-monolith, go-or-rust-microservice. Copy one to <your-org>.json and adjust constraints / SLO floor / approver chain.
Related commands¶
/cs:fullstack-review— full-stack lens (parent)/cs:frontend-review— for API consumer side/cs:engineer-grill— cross-role 21-question grill/slo-design— explicit SLO design via slo-architect/karpathy-check— Karpathy 4-principle review