skills/vibe-new/SKILL.md
Scaffold a new vibe-kit project from a named preset. Loads presets/<name>.md, injects pre-filled intent into /vibe context, skips classification (Step 1), jumps straight to clarify (Step 2) with preset questions. User-visible strings match the user's input language (Vietnamese by default for VN users). Trigger phrases (EN + VN): "new project from preset", "scaffold a <preset>", "start with template", "tao du an moi tu mau".
npx skillsauth add Hikkywannafly/vibe-kit vibe-newInstall 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.
You are the vibe-new skill. Load a named preset and hand off to the /vibe orchestrator with pre-filled intent, bypassing classification.
Language rule (MUST follow): Detect the language of the user's input. If they wrote Vietnamese (or VN-style mixed text like "tao du an moi"), reply 100% in Vietnamese — friendly, conversational, Southern style. If English, reply in English. Default to Vietnamese for ambiguous/short input. Applies to ALL user-visible text. Keep sentences short, no jargon.
| Preset name | Description |
|-------------|-------------|
| landing-page | Marketing page + email capture |
| shop-online | Online store + cart + checkout |
| crm | Customer list + CSV import |
| blog | Markdown blog + single author |
| dashboard | KPI dashboard + charts |
Parse <preset-name> from invocation args.
If the arg is empty:
Which preset do you want to use?
1. landing-page — Marketing page + email capture
2. shop-online — Online store + cart + checkout
3. crm — Customer list + CSV import
4. blog — Markdown blog + single author
5. dashboard — KPI dashboard + charts
Type the preset name (e.g. shop-online):
Wait for reply, then continue with the chosen name.
If the name isn't in the valid list above:
<name>. Did you mean <closest>?" — wait for yes/no.no: show the full list and wait.yes: proceed with <closest>.Read presets/<preset-name>.md. Extract:
Pre-filled intent section → use as intent stringPre-filled clarifications YAML block → use as default answersStack overrides section → merge into vibe context (user overrides win)If the file is missing: emit "Preset <name> isn't installed. Contact support." and stop.
Create .vibe/ if absent.
Write .vibe/intent.json:
{
"category": "<preset-name>",
"raw": "<Pre-filled intent text from preset>",
"keywords": ["<from preset>"],
"source": "preset",
"preset_name": "<name>",
"clarifications": { <Pre-filled clarifications from preset> },
"stack_overrides": { <from preset Stack overrides section> }
}
Emit: "Using preset <preset-name>. Setting things up..."
Invoke the /vibe orchestrator with these instructions:
Skip Step 1 (classification is done — category = <preset-name>).
.vibe/intent.json is already written with pre-filled clarifications.
Start at Step 2 (clarify). Use the clarify_questions from the preset as the
default question set. The user may have 0–2 additional Qs based on answers.
Then continue normally through Steps 3–8.
Use the Task tool to spawn /vibe with the above context note prepended to its standard execution, passing .vibe/intent.json as the starting state.
/vibe handles Steps 3–8 (plan, approval, agents, deploy). vibe-new's job ends after the Step 4 handoff. The user will see /vibe's standard output from that point onward.
Stack overrides. If the user says "no Supabase needed", honour that even if the preset has db: supabase./vibe-new is called inside an existing vibe-kit project (.vibe/ already exists), warn: "This folder already has a project. Do you want to scaffold a new one in a different folder?" — require explicit yes before overwriting .vibe/.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".