Coding
PromptBeginner5 minmarkdown
Nano Banana Pro
Agent skill for nano-banana-pro
7
- `app/` — Next.js App Router routes, layouts, and API handlers (`app/api/**`).
Sign in to like and favorite skills
app/ — Next.js App Router routes, layouts, and API handlers (app/api/**).components/ — Reusable UI/feature components (shadcn/ui, Tailwind v4).lib/ — Server/client utilities, actions, caching, and helpers.prisma/ — Prisma schema, migrations, and seeds.public/ — Static assets (logos, images, fonts).__tests__/ — Vitest tests (e.g., __tests__/lib/*.test.ts).yarn dev — Start the Next.js dev server.yarn build — Production build (Next 16, output=standalone).yarn start — Serve the production build.yarn test — Run Vitest tests.yarn typecheck — TypeScript project check.yarn biome:lint / yarn format — Biome linting/formatting.yarn biome:check / yarn biome:ci — Biome checks (no writes / CI mode).yarn db:migrate, yarn db:seed, yarn db:pull, yarn db:generate (Prisma).docker exec airbroke-web-1 yarn …docker exec airbroke-test-1 yarn …bg-linear-to-b).lib/ use camelCase.yarn biome:ci in CI).any. Prefer precise types and inference. If a cast is unavoidable, target the most specific type (e.g., Route from next) rather than broad types.unknown. Prefer structural types over unknown or any when refining values (e.g., const nav = navigator as Navigator & { userAgentData?: { platform?: string } }).@ts-ignore/eslint/biome disables. Model the types correctly or narrow with type guards.Route from next instead of using any.cookies(), headers(), draftMode(), etc.) in layouts; isolate dynamic work in pages/components.revalidatePath / revalidateTag).redirect() throws a special NEXT_REDIRECT error; don’t catch it (or navigation won’t happen). Catch DB work only, not the redirect.Form helpers are being deprecated in favor of Field (see shadcn “Field” docs); prefer Field* primitives for new/updated forms.Item, ItemMedia, ItemContent, ItemTitle, ItemDescription, ItemActions (and avoid manual icon sizing/margins inside ItemMedia).ChartContainer + ResponsiveContainer height="100%") to avoid 0px collapse.try/catch/finally blocks (especially finally) inside render callbacks; prefer promise .catch/.finally patterns for async event handlers.*.test.ts / *.test.tsx under __tests__/ or co‑located.yarn test (consider vitest --watch during development).feat(projects): highlight active project.DATABASE_URL/DIRECT_URL)..env locally; production uses managed secrets.public/ with explicit dimensions.public/ and .next/static for correct asset serving.