Employer SPA for findTEMP Thai part-time staffing. React 18 · Vite 4 · MUI · Apollo · PWA. Cherny harness audit — 2026-08-04.
Pair-programming ready: strict TS, ESLint max-warnings 0, yarn lint
/ yarn build, committed GraphQL schema. Blocked from Step 2
by missing self-verification (tests + CI), no agent docs, tracked secrets, and god pages.
| Item | Value | Evidence |
|---|---|---|
| React / Vite / TS | 18.2 / 4.3 / 5.1 · strict | package.json · tsconfig.json |
| UI | MUI 5 + date pickers | @mui/material |
| Data | Apollo + GraphQL codegen | codegen.ts · src/graphql/ |
| PWA | Yes (injectManifest) | vite-plugin-pwa · src/sw.ts |
| Layout | pages 78 · components 61 · routes 11 | src/ |
| Deploy | Cloudflare Pages | build.sh (CF_PAGES_BRANCH) — not GHA |
| Node | 18.20.2 | .nvmrc |
| Gate | Status | Evidence |
|---|---|---|
| TypeScript / lint / format | Ready | Strict TS; ESLint Airbnb-TS + Prettier as error; yarn lint --max-warnings 0. Gap: no standalone typecheck / prettier --check. |
| Tests | Gap | 0 unit/e2e files. No Vitest/Jest/Playwright/Cypress. No test script. |
| CI | Gap | No .github/. Deploy via Cloudflare Pages build.sh only. |
| Agent memory | Gap | No AGENTS.md, CLAUDE.md, or .cursor/rules/. |
| README / codegen drift | Gap | README.md documents wrong imports (/graphql, /graphql/types). Real usage: @apollo/client + src/graphql/graphql.ts. Schema at src/graphql/schema.graphql, not root schema.json. |
| Secrets | Gap | Tracked .env, .env.staging, .env.production. Includes Sentry/Maps/Firebase/pay keys. No .env.example. |
| Scripts | Partial | Has dev, build, lint, graphql:codegen. Missing test, typecheck, format check. |
| God files | Gap | src/pages/jobs/new/page.tsx 2154 LOC · period_jobs/new 1732 · hiring cards 875+. Hurts parallel agent ownership. |
| Strict quality bar locally | TS strict + ESLint max-warnings 0 + Prettier |
| Build pipeline | yarn build = tsc && vite build |
| Typed GraphQL | Committed schema + codegen under src/graphql/ |
| Conventional SPA layout | pages / components / routes / graphql / utils / i18n |
test / typecheck; .github/workflows/pr.yml
with lint → tsc/build → test.
AGENTS.md; fix
README.md import paths to match real Apollo / src/graphql usage.
.env*, rotate tokens,
add .env.example, ignore all env files.
Assisted-capable frontend; Parallel blocked — no tests/CI/agent docs, tracked secrets.
Full actionable backlog (tests, toolchain upgrade, CI, trunk/squash, agent-ready task rubric) → findTEMP-webapp Level 2 Parallel roadmap.