Common Skill Setup
Mirrored from
iblai/vibeยทdocs/skill-setup.md. This page is generated โ edit it in the repository, not here.
Shared setup, conventions, and pre-flight checks referenced by ibl.ai skills. Each skill links here instead of repeating this boilerplate.
Conventions
- Do NOT add custom styles, colors, or CSS overrides to ibl.ai SDK components. They ship with their own styling. Keep components as-is.
- Do NOT implement dark mode unless the user explicitly asks for it.
- Use
pnpmas the default package manager. Fall back tonpmifpnpmis not installed. - The generated app should live in the current directory, not in a subdirectory.
- Project names MUST be all lowercase โ npm rejects package names with
capital letters. Convert names like
MyApptomy-appbefore passing tocreate-next-appor--app-name. Allowed characters: lowercase letters, digits,-,_. - When building a navbar or header, do NOT display the platform/tenant name. Use the ibl.ai logo instead.
Brand
When building custom UI around SDK components, use the ibl.ai brand:
- Primary:
#0058cc - Gradient:
linear-gradient(135deg, #00b0ef, #0058cc) - Button:
bg-gradient-to-r from-[#2563EB] to-[#93C5FD] text-white - Font: System sans-serif stack
- Style: shadcn/ui new-york variant
Follow the component hierarchy: use ibl.ai SDK components
(@iblai/iblai-js) first, then shadcn/ui for everything else
(npx shadcn@latest add <component>). Do NOT write custom components
when an ibl.ai or shadcn equivalent exists. Both share the same Tailwind
theme and render in ibl.ai brand colors automatically.
Full brand guidelines: BRAND.md.
Environment files
iblai.envis NOT a.env.localreplacement โ it holds the platform shorthand (DOMAIN,PLATFORM,TOKEN, optionalIBLAI_USERNAMEfor deploys โ theIBLAI_USERNAMEenvironment variable wins when the host exports it) plus theAUTH_*branding values. Next.js still reads its runtime env vars from.env.local.- The skills read
iblai.envand derive theNEXT_PUBLIC_*values into.env.local. vibe-starter apps need only the tenant key andIBLAI_API_KEYโ URL defaults live inlib/iblai/config.ts.
Step 1: Check Environment
Check for an iblai.env in the project root. Look for PLATFORM,
DOMAIN, and TOKEN variables. If the file does not exist or is missing
these variables, tell the user:
"You need an
iblai.envwith your platform configuration. Download the template and fill in your values:curl -o iblai.env https://raw.githubusercontent.com/iblai/vibe/refs/heads/main/iblai.env"
Do NOT ask the user for their platform key directly โ guide them to
populate iblai.env instead.
Verification
You MUST run /iblai-vibe-ops-test before telling the user the work is ready:
pnpm buildโ must pass with zero errors.pnpm testโ vitest must pass.- Start a dev server and touch test the route with Playwright:
pnpm dev &
npx playwright screenshot http://localhost:3000/<route> /tmp/<screenshot>.png
After all work is complete, start a dev server (pnpm dev) so the user
can see the result at http://localhost:3000.