workflow-onboard — Codebase Orientation
Orient to any repo in under 5 minutes. Read first, explain second.
Step 1: Stack & entry points
Read (do not shell-grep unless necessary):
| File | What to extract |
|---|---|
package.json / pyproject.toml / Cargo.toml |
Runtime, framework, key deps, scripts |
README.md |
Stated purpose, setup steps, architecture notes |
src/app/layout.tsx / pages/_app.tsx / App.tsx |
Root component, providers, global context |
src/app/**/page.tsx / src/routes/** / app/routes/** |
Route tree → feature map |
capacitor.config.* / app.json / app.config.* |
Mobile targets (Expo/RN/Capacitor) |
android/ / ios/ presence |
Native targets |
Step 2: Data & auth layer
| File | What to extract |
|---|---|
supabase/migrations/*.sql (latest 3) |
Schema, tables, relationships |
prisma/schema.prisma / drizzle/*.ts |
ORM model |
src/lib/supabase.* / src/lib/db.* |
Client init, auth helper |
.env.example / .env.local (names only, never values) |
Required env vars |
middleware.ts / auth.ts / src/lib/auth.* |
Auth guard pattern |
Step 3: Recent context
git log --oneline -15 # recent work direction
git diff HEAD~5 --stat # files changed recently
Step 4: Orientation briefing
Produce a structured briefing covering:
- What it is — one sentence on the product's purpose
- Tech stack — framework + DB + auth + mobile targets
- Feature map — top-level routes grouped by capability
- Data model — key entities and relationships (3-5 tables max)
- Auth pattern — how sessions work and who the roles are
- How to run — exact commands from
package.jsonscripts - Environment — required env vars (names only) and where to find values
- Top 3 to understand first — the areas with the most business logic or complexity
Format as a scannable briefing, not a wall of text. Use short tables where helpful.
Guardrails
- Never print
.envvalues — names only - If the codebase is a monorepo, scope the briefing to the specific app/package the user is working in (ask if unclear)
- If critical files are missing (no README, no schema), say so explicitly rather than guessing