skills/vibe-codex/SKILL.md
Codex-native vibe-kit orchestrator for turning a plain-language product request into an implemented web or mobile project using this repository's existing vibe-kit templates, presets, skills, and agent markdown as references. Use when a user invokes $vibe-codex, says /vibe in a Codex session, asks Codex to create/build a site, app, shop, CRM, dashboard, landing page with vibe-kit, or asks to port/operate Claude-only vibe-kit workflows in Codex.
npx skillsauth add Hikkywannafly/vibe-kit vibe-codexInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Use this skill to run the vibe-kit product-building workflow inside Codex. Treat the bundled Claude Code files as source material, not as executable Claude slash commands.
The Codex installer puts files in two locations:
~/.agents/skills/<skill-name>/ (Codex global skills directory, $AGENTS_SKILLS_DIR)~/.codex/vibe-kit/ (or $CODEX_HOME/vibe-kit/)Resolve paths using these variables (Windows uses \, Unix uses /):
| Variable | Default |
| ------------------- | ------------------ |
| AGENTS_SKILLS_DIR | ~/.agents/skills |
| CODEX_HOME | ~/.codex |
Load only the files needed for the current request. Use AGENTS_SKILLS_DIR for skills and CODEX_HOME/vibe-kit for shared files:
$AGENTS_SKILLS_DIR/vibe/templates/clarify-questions.md for question selection.$AGENTS_SKILLS_DIR/vibe/templates/plan-bullet-format.md before rendering a plan.$CODEX_HOME/vibe-kit/presets/<name>.md.$AGENTS_SKILLS_DIR/nextjs-app-router/SKILL.md, $AGENTS_SKILLS_DIR/shadcn-ui/SKILL.md, $AGENTS_SKILLS_DIR/supabase-setup/SKILL.md, etc.$CODEX_HOME/vibe-kit/agents/planner.md, fullstack-dev.md, mobile-dev.md, tester.md, reviewer.md as checklists.references/codex-tool-mapping.md.Fallback: if a file is not found at the expected path, search for it under ~/.agents/skills/ and ~/.codex/ before giving up.
Detect language from the user's first message. Vietnamese input (kể cả mixed VN/EN) → ALL user-visible output in Vietnamese (Southern, friendly, short sentences, no jargon). English input → English. Ambiguous or very short input → default Vietnamese.
Vietnamese MUST use full diacritics (có dấu đầy đủ). Never write Vietnamese without tone marks or accents (e.g., write
Bắt đầunotBat dau,Tiêu đềnotTieu de). ASCII-safe/no-accent Vietnamese is NOT acceptable, even for code comments or progress lines.Scope: clarify questions, plan bullets, approval prompts, progress lines, error messages, UI copy inside the generated app, and the final summary. Internal reasoning, variable names, file paths, and code comments stay in English.
Parse the user's product request and classify it as exactly one category:
landing-pageshop-onlinecrmblogdashboardotherDetect mode before asking questions:
yolo if the request contains yolo, --yolo, --fast, auto, nhanh nha, nhanh di, nhanh đi, lam luon, làm luôn, khoi hoi, khỏi hỏi, khong can hoi, không cần hỏi, chay luon, or chạy luôn.safe otherwise.Detect the user's language (Vietnamese or English) and store it as "lang": "vi" or "lang": "en" in .vibe/intent.json. Default to "vi" when input is ambiguous. From this point forward, all user-visible output must match the detected language.
Create .vibe/intent.json with the category, raw user text, matched keywords, mode, and lang. Redact secrets before writing any .vibe/ file.
For safe mode, ask one message with 3-5 numbered questions from <kit-root>/skills/vibe/templates/clarify-questions.md. Skip questions already answered by the user. Wait for the user's reply before planning.
For yolo mode, skip clarification and apply sensible defaults:
vercel, unless the user specified another target.Append clarifications or defaults to .vibe/intent.json.
Render exactly 3-5 numbered plan bullets using <kit-root>/skills/vibe/templates/plan-bullet-format.md. Show the plan to the user and write the same plan to .vibe/plan.md.
For safe mode, wait for approval before writing app code:
Does this plan look good? (type: yes / edit / cancel)
Accept equivalent Vietnamese approvals such as co, có, duoc, được, chay di, and làm đi. On edit, revise the plan. On cancel, write .vibe/checkpoint.json with {"status":"cancelled"} and stop.
For yolo mode, mark the plan auto-approved and proceed.
Before running any npm, pnpm, or node command, resolve the runtime using this probe sequence:
node --version in the current shell. If it exits 0, the runtime is in PATH — proceed normally.$env:ProgramFiles\nodejs\node.exe$env:APPDATA\nvm\current\node.exe (nvm-windows default)$env:LOCALAPPDATA\nvm\current\node.exeC:\nvm4w\nodejs\node.exe (nvm4w — NVM for Windows alternate installer)C:\nvm\nodejs\node.exe$env:LOCALAPPDATA\Volta\bin\node.exe$env:ProgramFiles\Volta\bin\node.exeGet-ChildItem -Path C:\,D:\,E:\ -Filter node.exe -Recurse -Depth 4 -ErrorAction SilentlyContinue | Select-Object -First 1 -ExpandProperty FullName to discover any non-standard install root.$env:PATH for the current session ($env:PATH = "<dir>;$env:PATH"), then retry node --version.pnpm ($env:APPDATA\npm\pnpm.cmd, $env:LOCALAPPDATA\pnpm\pnpm.cmd) and npm (same dir as node).node --version trong terminal bình thường được không?" (Vietnamese) or equivalent English. Do NOT silently fall back to static HTML.HARD RULE — No silent stack changes: The approved plan defines the tech stack (e.g., Next.js + Tailwind + Supabase). Codex MUST NOT change this stack unilaterally for any reason, including a missing runtime or tool. If a required tool is unavailable, stop and ask the user. Do not substitute a different output format (static HTML, plain JS, etc.) without explicit approval.
Read lang from .vibe/intent.json before generating any user-visible string. If lang == "vi", all UI copy (button labels, headings, error messages, email templates, form placeholders) inside the generated app must be Vietnamese. Never default to English UI copy for a Vietnamese-language project.
Use Codex's native tools and the repository's existing patterns:
shell_command for shell work and apply_patch for manual file edits.multi_tool_use.parallel for independent reads and searches.rg first when available; fall back to platform-native search when missing.spawn_agent only when current Codex rules allow it and the user explicitly asked for sub-agents, delegation, or parallel agent work. Otherwise, execute the planner, research, implementation, testing, and review steps locally.Write/update .vibe/checkpoint.json after major milestones: plan ready, code written, tests run, review complete, deploy attempted.
Run the project's relevant checks before final output:
package.json..env* ignored except examples, no unsafe SQL concatenation, no uncontrolled HTML injection, and no committed local tool state.If a check fails, fix once using the smallest coherent change. If it still fails, write .vibe/checkpoint.json with the last error and tell the user the exact next action.
Deploy only when the approved plan includes deployment and the required credentials/tools are present. Ask for any sandbox, network, or external-service approval through Codex's normal approval flow.
Persist deploy output to .vibe/deploy-url.txt when there is a live URL. If deploy is skipped or blocked, return the local project path and the next concrete command to run.
Codex skill frontmatter must contain only name and description. Do not add Claude-only keys such as argument-hint or allowed-tools.
When adapting existing vibe-kit skills, keep reusable domain instructions and replace Claude-specific tool names with Codex-native actions. Use references/codex-tool-mapping.md as the conversion guide.
data-ai
Generate Vietnamese marketing copy, UI strings, CTAs, error messages, and email templates for vibe-kit projects. Tone: friendly, conversational, Southern Vietnamese style. Activated for any user-visible text generation.
development
One-shot orchestrator. Turns the prose after /vibe into a shipped product by clarifying intent, rendering a plan, gating on approval, then spawning planner+researcher+fullstack-dev+tester+reviewer agents in sequence. User-visible strings match the user's input language (Vietnamese by default for VN users). Two modes: SAFE (default — clarify + show plan + wait for approval, max 1 round-trip) and YOLO (skip clarify+approval, run full auto with smart defaults — for demos and power users). YOLO triggers: prose contains `yolo`, `nhanh nha`, `lam luon`, `khoi hoi`, `auto`, or args start with `yolo`. Trigger phrases (EN + VN): "build me a site", "make me a landing page", "create a shop", "I need an app", "vibe lam website", "tao cho toi mot", "xay dung shop online", "lam landing page", "can mot app".
tools
On-demand security audit for vibe-kit projects. Stack-aware checks for Next.js App Router + Supabase + Polar: secrets leak, RLS gaps, service-role key in client bundle, missing webhook signature verification, unprotected API routes, weak headers, dependency vulns. Outputs a Vietnamese P0/P1/P2 report with file:line + fix hints. User-visible strings match the user's input language (Vietnamese by default for VN users). Trigger phrases (EN + VN): "check security", "audit it", "security scan", "is this safe to launch", "kiem tra bao mat", "quet bao mat", "audit du an", "co an toan khong", "scan bao mat truoc khi deploy".
tools
Wire Supabase JS client into a React Native (Expo) vibe-kit project: session persistence via AsyncStorage, magic-link OAuth callback via expo-linking deep links, Realtime subscriptions on RN, and shared TypeScript types with the Next.js webapp twin (vibe-kit's typical web<->mobile pair pattern). This is the mobile counterpart of `auth-magic-link` (web). User-visible strings match the user's input language (Vietnamese by default for VN users). Trigger phrases (EN + VN): "supabase react native", "supabase mobile", "auth mobile expo", "magic link mobile", "tich hop supabase vao app", "supabase deep link".