/cs-engineer-grill¶
Walk the user through the Matt Pocock forcing-question discipline before they lock any engineering decision. This is the grill-with-docs pattern (canon-anchored, recommended answers, kill criteria) applied across the three engineering role lanes.
$ARGUMENTS
Routing protocol¶
- Detect lane signals in the user's prompt:
- Fullstack signals: "scaffold", "stack", "Next.js + Postgres", "monorepo", "deploy", "team size", "budget", "cadence"
- Frontend signals: "React", "Next", "Remix", "Vite", "Astro", "bundle", "LCP", "INP", "CLS", "a11y", "WCAG", "Tailwind", "design system"
-
Backend signals: "API", "REST", "GraphQL", "database", "Postgres", "MongoDB", "schema", "migration", "QPS", "tenancy", "SLO", "Kafka", "queue", "microservice", "monolith"
-
If
--lane <name>is supplied: walk only that lane's 7 questions. - If lane signals score ≥ 3 hits for one lane: confirm with the user, then walk that lane's 7 questions.
- If lane signals are ambiguous OR
--lane all: ask the user: "Fullstack (7 Qs about team / stack / scale), Frontend (7 Qs about device / rendering / bundle / a11y), or Backend (7 Qs about QPS / tenancy / pattern / SLO)? Orallfor all 21."
Lane: fullstack¶
Questions live in engineering-team/skills/senior-fullstack/references/forcing_questions.md. Summary:
- Team size today + 12-month headcount?
- Deployment cadence — per-PR, daily, weekly, quarterly?
- Customer-facing, internal tool, or marketing site?
- One-year p50 / p99 traffic forecast?
- Hiring against the stack or training the team?
- Year-one monthly cloud + SaaS ceiling?
- Three verifiable success criteria with numeric targets?
Lane: frontend¶
Questions live in engineering-team/skills/senior-frontend/references/forcing_questions.md. Summary:
- Primary device + network (mobile-4G / desktop-fiber / low-end Android / corporate)?
- LCP target in ms (and INP, CLS)?
- RSC / SPA / SSR / SSG — pick and defend?
- JS bundle budget per route in KB-gzip?
- SEO-dependent or auth-walled?
- Design-system source of truth?
- WCAG target + named a11y owner?
Lane: backend¶
Questions live in engineering-team/skills/senior-backend/references/forcing_questions.md. Summary:
- Read/write ratio + p99 QPS forecast?
- Tenancy model — single / shared / isolated?
- Sync / async / event-driven — default + exceptions?
- Data sensitivity tier — PII / PHI / PCI?
- Monolith / modular monolith / microservices — team-size justification?
- RPO + RTO?
- SLO + named error-budget consumer?
Discipline (Matt Pocock, MIT, preserved verbatim from engineering/grill-me)¶
- One question per turn. Never bundle. Never default to "what do you think?".
- Always recommend an answer. Format: "Recommended:
, because ". - Walk depth-first. Finish a lane before opening another.
- Surface the kill criterion. If the user's answer trips it, STOP and resolve before continuing.
- Track answers. Write to
/tmp/engineer-grill-<lane>-<date>.mdso the conversation survives compaction.
After the grill¶
- Run the lane's decision engine with the seven answers:
- Fullstack →
python engineering-team/skills/senior-fullstack/scripts/fullstack_decision_engine.py ... - Frontend →
python engineering-team/skills/senior-frontend/scripts/frontend_decision_engine.py ... - Backend →
python engineering-team/skills/senior-backend/scripts/backend_decision_engine.py ... - Surface the matched profile + named approvers.
- Recommend the next sub-skill chain based on the composition map.
Output expectations¶
- One artifact per lane walked, written to
/tmp/engineer-grill-<lane>-<date>.md. - One final digest (≤ 250 words) summarizing the matched profile per lane + the three highest-leverage next actions.
- Never auto-approve a stack change, schema migration, or architecture choice.
Related commands¶
/cs:fullstack-review,/cs:frontend-review,/cs:backend-review— single-lane deep dives/karpathy-check— Karpathy review before commit/cs:grill-bizops,/cs:grill-commercial— sibling cross-domain grills (BizOps + Commercial v2.8.0)