Files
wehub-resource-sync a1fa97429b
Release / Tag + GitHub Release (push) Waiting to run
Deploy Documentation to Pages / build (push) Waiting to run
Deploy Documentation to Pages / deploy (push) Blocked by required conditions
Sync Codex Skills Symlinks / sync (push) Waiting to run
chore: import upstream snapshot with attribution
2026-07-13 12:41:47 +08:00

70 lines
3.2 KiB
Markdown

---
description: Frontend engineering review — walks the 7 Matt Pocock forcing questions (device, LCP target, rendering, bundle budget, SEO vs auth, design system, WCAG), picks the framework + rendering profile, forks into specialists (a11y-audit, performance-profiler, epic-design). Invokes the cs-frontend-engineer agent with context fork.
argument-hint: "<problem or surface to review>"
---
# /cs:frontend-review — Frontend engineering review
Use the `cs-frontend-engineer` agent (uses `context: fork`) to handle this inquiry:
**$ARGUMENTS**
## Forcing-question library
Canonical source: `engineering-team/skills/senior-frontend/references/forcing_questions.md` (7 questions, one-per-turn, recommendation + canon citation per question).
1. Primary device + network (desktop-fiber / mobile-4G / low-end Android / corporate)
2. LCP target on primary device (milliseconds)
3. Server Components vs SPA vs SSR vs SSG
4. JS bundle budget per route (KB gzipped)
5. SEO-dependent or auth-walled
6. Design-system location (Figma + tokens / ad-hoc Tailwind / headless UI)
7. WCAG target (AA / AAA / best-effort) + accessibility owner
## Routing protocol
1. **Walk the 7 forcing questions** in `engineering-team/skills/senior-frontend/references/forcing_questions.md`. One per turn. Recommend with cited canon. Track in `/tmp/frontend-grill-<date>.md`.
2. **Surface kill criteria** — e.g., "SEO-dependent + SPA-only" trips. STOP and resolve.
3. **Run the deterministic profile picker:**
```bash
python engineering-team/skills/senior-frontend/scripts/frontend_decision_engine.py \
--primary-device <mobile-4g|desktop-fiber|low-end-android|corporate-network> \
--lcp-target-ms <N> --seo-dependent <true|false> \
--auth-walled <true|false> --team-size <N>
```
4. **Surface the matched profile + runner-up tradeoff** (if within 15%).
5. **Fork into specialists** (one at a time, depth-first):
- `a11y-audit` for WCAG baseline (always)
- `performance-profiler` for CWV baseline + bundle audit
- `epic-design` only for `astro-or-static` marketing surfaces
- `apple-hig-expert` only for Apple-platform-native surfaces
- `dependency-auditor` before any major release
- `cs-karpathy-reviewer` before any commit
## Output expectations (≤ 200-word digest)
- Matched profile + reason
- Three CWV targets (LCP, INP, CLS) at p75 on the primary device
- Per-route JS bundle budget in KB-gzip
- Named a11y owner
- List of specialists invoked + artifact paths
- Recommended next sub-skill
## Anti-patterns
- ❌ Recommending Next App Router as a universal default. Device + SEO + auth decide rendering.
- ❌ Setting "fast" as a target. Pick a number in ms.
- ❌ Skipping `a11y-audit` on customer-facing surface.
- ❌ Reimplementing perf-profiling logic. Fork into `performance-profiler`.
## Customization
Profiles live at `engineering-team/skills/senior-frontend/profiles/`. Four built-in: `next-app-router`, `remix-or-sveltekit`, `vite-spa`, `astro-or-static`. Copy one to `<your-org>.json` and adjust to add your org's defaults.
## Related commands
- `/cs:fullstack-review` — full-stack lens (parent)
- `/cs:backend-review` — for API contract on the consumer side
- `/cs:engineer-grill` — cross-role 21-question grill
- `/karpathy-check` — Karpathy 4-principle review