Communitygithub.com

Biz Deploy Vercel — 웹사이트를 Vercel에 안전하게, 한 번의 명령으로

로컬 프로젝트 폴더(React, Next.js, Vite, 정적 HTML)를 Vercel로 배포하여 라이브 URL을 생성합니다. Vercel CLI 또는 Vercel MCP가 설치되어 있는지 자동 확인하고, 없으면 설치 후 사용자 인증(vercel login)을 안내하며, 프레임워크를 자동 감지하고 필요 시 vercel.json을 생성한 후 `vercel --prod`를 실행하여 라이브 URL과 인스펙트 URL을 반환합니다.

Biz Deploy Vercel — 웹사이트를 Vercel에 안전하게, 한 번의 명령으로란 무엇인가요?

이 스킬은 로컬 개발 환경의 프로젝트(React, Next.js, Vite, 정적 HTML 등)를 Vercel에 배포하여 SSL이 적용된 라이브 URL을 즉시 제공합니다. 사용자가 'deploy lên vercel', 'đẩy landing page lên vercel', 'publish website', 'go live', 'deploy nextjs', 'deploy react', 'deploy vite' 등과 같은 요청을 하면 자동으로 실행됩니다. 스킬은 먼저 Node.js와 Vercel CLI가 설치되어 있는지 확인하고, 없으면 설치를 안내합니다. 그런 다음 프로젝트 구조를 분석하여 Next.js, Vite, Create React App, 정적 HTML 등 프레임워크를 자동 감지하고, 필요한 경우 vercel.json 설정 파일을 생성합니다. 배포 전 사전 점검(예: .gitignore, 파일 경로, 하드코딩된 localhost 등)을 수행한 후 `vercel --prod` 명령어로 배포를 진행하고, 최종적으로 라이브 URL과 인스펙트 URL, 그리고 다음 배포 및 사용자 정의 도메인 설정 방법을 제공합니다. 이 스킬은 Vercel CLI와 Vercel MCP 서버 모두를 지원하며, DevOps 지식이 없는 개인 개발자나 중소기업도 대화만으로 손쉽게 랜딩 페이지를 배포할 수 있도록 설계되었습니다.

지원 대상✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/lexuanthanhhy/MKT.LANDINGPAGE.SKILLS/tree/HEAD/.claude/skills/biz-deploy-vercel

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

Biz Deploy Vercel — 웹사이트를 Vercel에 안전하게, 한 번의 명령으로은(는) 무엇을 하나요?

이 스킬은 로컬 프로젝트 폴더(React / Next.js / Vite / 정적 HTML)를 SSL, CDN, 미리보기 배포가 포함된 라이브 URL로 전환합니다. 목표: DevOps 지식이 없는 개인 개발자/중소기업도 Claude와의 대화만으로 랜딩 페이지를 배포할 수 있도록 돕는 것입니다.

핵심 원칙: Claude가 직접 확인할 수 있는 내용을 사용자에게 묻지 않습니다. 프레임워크를 자동 감지하고, 필요 시 vercel.json을 자동 생성하며, 실제로 수동 개입이 필요한 경우(브라우저 로그인, 사용자 정의 도메인 DNS)에만 멈춥니다.

사용 시기

사용자가 다음을 원할 때:

  • 랜딩 페이지/웹사이트를 라이브 URL로 배포하여 공유/테스트/광고 실행
  • 코드 수정 후 프로젝트 재배포
  • 새 저장소에 Vercel을 처음 설정할 때
  • Vercel로 연결할 사용자 정의 도메인 설정

사용하지 말아야 할 시기

  • 로컬 빌드만 필요하고 아직 공개하고 싶지 않을 때 → 건너뛰고 npm run build / next dev 사용
  • Netlify / Cloudflare Pages / AWS에 배포해야 할 때 → 이 스킬은 Vercel 전용입니다.
  • 사용자 정의 GitHub Actions를 사용한 복잡한 CI/CD가 필요할 때 → 프로젝트 초기화에는 이 스킬을 사용할 수 있지만, 사용자 정의 워크플로는 사용자가 직접 구성해야 합니다.
  • 상태 저장(Node.js 웹소켓, 롱 폴링) 백엔드가 필요할 때 → Vercel 서버리스는 적합하지 않습니다. Railway / Fly.io를 사용하세요.

사용자가 받게 될 결과

  1. 라이브 URL (https://<project>.vercel.app 형태의 프로덕션 또는 미리보기 URL)
  2. 인스펙트 URL (https://vercel.com/<account>/<project>/<deployment-id> 형태, 로그 확인용)
  3. 링크된 프로젝트(.vercel/project.json에 저장, gitignore 처리됨) — 다음 배포 시 vercel --prod 만 실행하면 됩니다.
  4. 사용자가 사용자 정의 도메인을 요청하면 구체적인 DNS 안내(A 레코드 / CNAME)를 제공합니다.

6단계 워크플로우

1단계 — 사전 점검: Vercel CLI / MCP 확인

scripts/check_vercel.sh (또는 이에 상응하는 인라인 명령)을 실행하여 다음 3가지 상태를 확인합니다:

확인 항목명령어예상 결과
Node.jsnode --versionv18+ 또는 v20+
Vercel CLIvercel --version버전 반환 (v32+)
Vercel 인증vercel whoami사용자 이름 반환

Node.js가 없는 경우:

  • macOS: brew install node 또는 https://nodejs.org 에서 다운로드 안내
  • Windows: https://nodejs.org/en/download/ 에서 .msi 설치 프로그램 다운로드 안내
  • Linux: nvm install --lts 또는 패키지 매니저 사용 안내
  • 스킬을 중단하고 사용자가 설치를 완료했다고 알릴 때까지 기다립니다.

Vercel CLI가 없는 경우:

  • 사용 중인 패키지 매니저를 감지합니다(pnpm, yarn, npm 순서로 확인하거나 프로젝트의 lockfile을 읽음).
  • 전역 설치:
    • pnpm add -g vercel (사용자가 pnpm을 사용하는 경우)
    • npm install -g vercel (기본값)
  • vercel --version 으로 다시 확인합니다.

Vercel CLI는 있지만 인증되지 않은 경우 (vercel whoami 오류):

  • vercel login 실행 — 이 명령은 브라우저를 열고, 사용자가 클릭하여 확인해야 합니다. 이는 수동 개입이 필요한 과정으로, 건너뛸 수 없습니다.
  • 사용자에게 안내: "vercel login을 실행했습니다. 브라우저를 열고 확인을 클릭하여 인증해 주세요. 완료되면 'ok'라고 입력해 주세요."
  • 중단하고 사용자의 응답을 기다립니다.

사용자가 Vercel MCP를 사용한다고 말한 경우:

  • 사용 가능한 MCP 도구를 나열하여 MCP 서버를 확인합니다(mcp__vercel__* 접두사가 붙은 도구).
  • MCP가 있더라도 실제 배포에는 CLI를 우선 사용합니다(CLI가 파일 업로드에 더 안정적임). 배포 후 프로젝트/도메인/환경 변수 등을 쿼리해야 하는 경우 MCP를 사용합니다.
  • 사용자가 MCP 사용을 강제하는 경우: https://vercel.com/docs/mcp 문서에 따라 인증하고 해당 MCP 도구를 사용합니다.

2단계 — 프레임워크 및 프로젝트 구조 감지

프로젝트 루트의 파일을 읽어 프레임워크를 확인합니다:

파일프레임워크
next.config.js / next.config.mjs / next.config.tsNext.js
vite.config.js / vite.config.tsVite (React/Vue/Svelte)
package.json에 "react-scripts" 포함Create React App
package.json에 "astro" 포함Astro
package.json에 "@remix-run/dev" 포함Remix
index.html + 정적 자산만 있고 package.json 없음정적 HTML
package.json은 있지만 위 패턴과 일치하지 않음사용자에게 프레임워크를 묻거나 Vercel 자동 감지에 맡깁니다

추가 정보 기록:

  • package.json의 빌드 명령어 (scripts.build)
  • 출력 디렉토리 (Next: .next, Vite: dist, CRA: build, 정적: .)
  • 필수 Node 버전 (engines.node 또는 .nvmrc에서)

→ 해당 참조 문서 읽기:

  • React/Vite → references/react-vite.md
  • Next.js → references/nextjs.md
  • 정적 HTML → references/static-html.md

3단계 — vercel.json 생성 (필요한 경우)

Next.js: Vercel이 완전히 자동 감지하므로, 사용자 정의 헤더/리디렉션이 필요하지 않은 한 vercel.json이 필요 없습니다.

Vite / CRA (SPA 라우팅): 클라이언트 측 라우팅이 작동하려면 모든 경로를 index.html로 재작성하는 vercel.json이 필요합니다:

{
  "rewrites": [
    { "source": "/(.*)", "destination": "/index.html" }
  ]
}

정적 HTML: 일반적으로 필요하지 않습니다. 사이트에 여러 페이지(thank-you.html, privacy.html)가 있으면 재작성이 필요 없습니다. index.html만 있고 JS 라우터가 있는 경우 SPA처럼 재작성이 필요합니다.

보안 헤더 (프로덕션에 권장):

{
  "headers": [
    {
      "source": "/(.*)",
      "headers": [
        { "key": "X-Content-Type-Options", "value": "nosniff" },
        { "key": "X-Frame-Options", "value": "DENY" },
        { "key": "Referrer-Policy", "value": "strict-origin-when-cross-origin" }
      ]
    }
  ]
}

규칙: 사용자가 실제로 필요할 때만 vercel.json을 만듭니다. 불필요한 파일 생성은 저장소에 잡음만 더합니다.

4단계 — 배포 전 점검 목록

vercel을 실행하기 전에 다음을 확인합니다:

  • .gitignore에 .vercel/, node_modules/, .env*가 포함되어 있는지 (비밀 키를 커밋하지 않도록 함)
  • 코드 내 파일 경로가 모두 소문자 + 상대 경로인지 (Linux는 대소문자 구분)
  • 하드코딩된 localhost URL이 없는지
  • 외부 스크립트/스타일시트가 모두 https://로 시작하는지
  • Next.js에 환경 변수가 있는 경우 → 설정해야 할 환경 변수 목록을 준비했는지
  • package.json이 있는 경우 → npm install (또는 이에 상응하는 명령)이 로컬에서 실행 가능한지

명확한 문제(예: HTML에 하드코딩된 localhost)가 발견되면 먼저 수정한 후 배포합니다.

5단계 — 배포

프로젝트 첫 배포 (.vercel/project.json 없음):

vercel --prod --yes

--yes 플래그는 프레임워크 자동 감지로부터 모든 기본 설정을 수락합니다. Vercel은 다음을 수행합니다:

  • 범위 확인 (--yes가 있으면 자동으로 사용자 계정 선택)
  • 프레임워크 사전 설정 감지
  • 빌드 명령어 및 출력 디렉토리 설정
  • 코드 푸시, 빌드, 배포

사용자 정의 프로젝트 이름이 필요하거나 사용자가 기존 프로젝트에 연결하려는 경우:

vercel link              # 기존 프로젝트에 연결 (대화형)
vercel --prod            # 연결 후 배포

미리보기 배포 (프로덕션 아님):

vercel

→ https://<project>-<hash>.vercel.app 형태의 미리보기 URL 반환, 프로덕션 승격 전 테스트용으로 사용합니다.

재배포 (프로젝트가 이미 연결된 경우):

vercel --prod

출력 캡처 — stdout에서 다음을 추출합니다:

  • Production: https://<project>.vercel.app
  • Inspect: https://vercel.com/...

두 URL을 즉시 사용자에게 알립니다.

6단계 — 확인 및 보고

배포 성공 후:

  1. curl -I https://<project>.vercel.app 로 라이브 URL에 대한 HTTP 확인 — 상태 200 및 SSL 활성화 확인
  2. 사용자에게 보고 (다음 형식 사용):
## ✅ 배포 성공

**라이브 URL**: https://<project>.vercel.app
**인스펙트 / 로그**: https://vercel.com/<account>/<project>/<deployment-id>
**프레임워크**: <Next.js | Vite | CRA | 정적 HTML>
**빌드 시간**: <X초>

### 다음 배포 시
`vercel --prod` 만 실행하면 됩니다.

### 옵션
- 사용자 정의 도메인 설정 → `setup domain <yourdomain.com>` 이라고 알려주세요.
- 환경 변수 설정 → `add env <KEY>` 라고 알려주세요.
- 로그 보기 → `vercel logs`
  1. 사용자가 사용자 정의 도메인을 요청하면 references/domains.md를 읽고 DNS를 안내합니다.

예외 상황 및 복구

로컬에서는 잘 되는데 Vercel에서 빌드 실패

일반적인 원인:

  • 대소문자 구분: import './Components/Header' 가 Mac에서는 잘 실행되지만 실제 디렉토리가 components인 Linux에서는 실패합니다. 수정: 실제 대소문자에 맞게 이름을 바꿉니다.
  • 종속성 누락: 패키지가 devDependencies에 있지만 런타임에 필요한 경우 → dependencies로 이동합니다.
  • Node 버전 불일치: package.json에 "engines": { "node": "20.x" }를 추가하거나 .nvmrc 파일을 만듭니다.

→ vercel logs <deployment-url> 로 로그를 가져와 읽고, 수정한 후 재배포합니다.

잘못된 계정/프로젝트에 연결된 경우

rm -rf .vercel/ 를 실행한 후 vercel --prod --yes 를 다시 실행합니다. 또는 vercel link 를 사용하여 올바른 프로젝트를 선택합니다.

프로덕션 환경 변수

vercel env add <KEY> production
# 프롬프트에 값 붙여넣기
vercel env pull .env.production.local   # 필요한 경우 로컬로 가져오기

.env* 파일을 커밋하지 않도록 합니다. 아직 없다면 .gitignore에 추가합니다.

인증 만료

CLI 토큰이 만료될 수 있습니다. vercel whoami가 권한 없음 오류를 표시하면 vercel login 을 다시 실행합니다.


프레임워크별 상세 참조

프로젝트 프레임워크와 일치하는 참조 문서를 읽습니다:

프레임워크참조 문서
Next.js (App / Pages 라우터)references/nextjs.md
React (Vite / CRA)references/react-vite.md
정적 HTMLreferences/static-html.md
사용자 정의 도메인 + DNSreferences/domains.md
오류 및 문제 해결references/troubleshooting.md

원본 참조

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

lexuanthanhhy/MKT.LANDINGPAGE.SKILLS

Best practices for Remotion - Video creation in React

lexuanthanhhy/MKT.LANDINGPAGE.SKILLS

Scaffold trang `/admin` CRM-style trực quan vào Next.js project (Supabase backend) — KHÔNG còn variant Vercel KV. Layout 1CRM-inspired: sidebar 3 tab (Tổng quan / Khách hàng / Email marketing) + popup nhập mã đăng nhập. **Tab Tổng quan**: 4 KPI cards (Tổng leads / Đã thanh toán / Tỷ lệ chuyển đổi / Doanh thu) có delta arrow vs kỳ trước, line chart leads+paid+revenue theo ngày dùng `recharts`, donut trạng thái paid/pending/expired, period selector pill 7d/30d/90d, list 5 thanh toán gần nhất. **Tab Khách hàng**: bảng leads + search + filter trạng thái + filter ngày + CSV export. **Tab Email marketing**: form soạn chiến dịch (tên + tiêu đề + body chọn định dạng **văn bản thường HOẶC HTML** + placeholder `{{name}}` + audience 4 loại all/paid/pending/last_days + tên người gửi) — có nút **Xem trước** mở modal iframe render đúng email thật (text → auto convert + wrap khung; HTML fragment → wrap khung, HTML đầy đủ giữ nguyên) → gửi bulk qua SMTP (reuse `nodemailer` của `biz-email-setup` — KHÔN

lexuanthanhhy/MKT.LANDINGPAGE.SKILLS

Setup SMTP-based email auto-responder cho landing page bán hàng — tự động gửi email sau khi user điền form (tên/SĐT/email), KHÔNG cố định vào provider nào. Skill này (1) hỏi user chọn SMTP provider (Gmail/Google Workspace, Resend SMTP, SendGrid, Mailgun, Brevo, Zoho, hoặc SMTP custom của hosting VN) và detect Next.js stack đang dùng, (2) đọc context từ `offer.json` + `conversion-copy.md` (từ `/biz-offer-alex-hormozi`) HOẶC đọc trực tiếp Next.js project đã build qua `ui-ux-pro-max` (file `app/page.tsx`) HOẶC đọc HTML landing page đã deploy để hiểu offer, dream outcome, mechanism, bonus. Lưu ý: skill `biz-sales-page-layout` đã DEPRECATED 2026-05-14 — pipeline mới skip layout/copy.json, (3) **draft 2 email**: email A — auto-responder gửi cho lead (warm welcome + deliver lead magnet/booking confirm/payment link tuỳ offer type), email B — notification gửi cho owner (lead alert + thông tin liên hệ), (4) **show draft cho user duyệt và chỉnh sửa** trước khi wire vào code, (5) cài `nodemailer`

lexuanthanhhy/MKT.LANDINGPAGE.SKILLS

Cài chatbot AI dạng floating widget góc dưới phải vào project Next.js có sẵn (App Router hoặc Pages Router), responsive đầy đủ web + tablet + mobile, gọi LLM qua OpenRouter (mặc định google/gemini-3-flash-preview, có thể đổi sang anthropic/claude-sonnet-4.6), streaming response, RENDER MARKDOWN trong assistant bubble (bold / list / link / code) qua react-markdown + remark-gfm — KHÔNG hiện raw **bold** dạng text — có knowledge base từ FAQ + tài liệu sản phẩm/khóa học do user cung cấp để chatbot tự động trả lời khách hàng, và TỰ ĐỘNG EXTRACT + LƯU LEAD (tên + SĐT + email) vào Upstash Redis/Vercel KV dưới namespace `chat-lead:{phone}` khi user cung cấp đầy đủ thông tin trong chat — dedupe theo SĐT, TTL 90 ngày, fire-and-forget không block stream. Skill tự detect số lượng project Next.js — nếu có nhiều hơn 1 sẽ hỏi user chọn project nào để cài; tự detect TypeScript/JS, App Router/Pages Router, Tailwind/CSS module, KV/Upstash availability (skip auto-save nếu chưa có); tự install react-markd

lexuanthanhhy/MKT.LANDINGPAGE.SKILLS

Đóng gói offer **không thể chối từ** (grand slam offer) theo phương pháp Alex Hormozi ($100M Offers) — nhận input pains/gains/customer jobs theo Value Proposition Design (Osterwalder 2014) + sản phẩm/dịch vụ, rồi sinh ra: (1) markdown report tiếng Việt đầy đủ Value Equation scoring + Core Offer + 3-4 Bonus stack + Guarantee + Urgency + Pricing, (2) offer.json structured cho pipeline downstream (`ui-ux-pro-max` build sales page production-ready), (3) conversion copy block (headline + subheadline + CTA) sẵn sàng paste landing page. 2 input mode: (B) user paste sẵn pains + gains + product, (C) user chỉ có sản phẩm — skill phỏng vấn theo VPD framework để surface pain/gain trước. Bonus stack mode hybrid: skill brainstorm 5-7 candidate có justification value rồi user pick/chỉnh 3-4 cái. Tiếng Việt thuần (xưng anh/chị), giá VND charm pricing (X99K), 3-tier decoy structure. USE WHEN user says 'đóng gói offer', 'tạo offer', 'thiết kế offer Hormozi', 'grand slam offer', 'value stack', 'offer sta

lexuanthanhhy/MKT.LANDINGPAGE.SKILLS

Nâng cấp copy sales page tiếng Việt — biến copy có sẵn (từ `offer.json` + `conversion-copy.md` của `/biz-offer-alex-hormozi`, HOẶC từ Next.js project đã build qua `ui-ux-pro-max`, HOẶC user paste block copy bất kỳ) thành **copy chất lượng cao chốt đơn**: headline punchy hơn, pain agitation đau hơn, mechanism rõ hơn, benefit cụ thể hơn, FAQ xử lý đúng objection của thị trường VN, CTA mạnh hơn. Skill này có 3 INTENSITY LEVEL: (1) **Polish** — light edit + power word + sửa nhịp; (2) **Conversion-optimized** — rewrite 5 block critical + tạo A/B variants cho hero/CTA; (3) **Sales-letter** — long-form story-driven full rewrite kèm P.S.. Mỗi section áp dụng đúng formula thuyết phục (PAR cho pain, BAB cho solution, FEP cho benefit, PVEN cho final CTA, Star-Chain-Hook cho testimonial). Output gồm 4 file: `copy-upgraded.md`, `copy-variants.md` (A/B test bank — 3 hero + 3 CTA + 3 final-CTA), `copy-changes.md` (diff Trước/Sau + lý do), `copy.json` (structured downstream). Giọng văn tiếng Việt thuầ

lexuanthanhhy/MKT.LANDINGPAGE.SKILLS

⚠️ DEPRECATED (2026-05-14) — Skill này KHÔNG còn trong pipeline chuẩn. Quy trình mới đã bỏ bước wireframe markdown trung gian: sau `/biz-offer-alex-hormozi` đi THẲNG sang `ui-ux-pro-max` để build Next.js sales page production-ready (có design language nhất quán: style + palette + font pairing, không phải Tailwind defaults). Lý do deprecate: wireframe markdown làm thêm 1 bước trung gian không tạo giá trị — `ui-ux-pro-max` đọc trực tiếp `offer.json` đã đầy đủ anchor + core + bonus + guarantee + urgency + pricing rồi ra HTML production luôn. Chỉ dùng skill này KHI user EXPLICITLY yêu cầu wireframe markdown để review/in/share trước khi build code (rare case). KHÔNG trigger trên các keyword 'tạo sales page', 'tạo landing page bán hàng' nữa — những keyword đó giờ trigger `ui-ux-pro-max`.

lexuanthanhhy/MKT.LANDINGPAGE.SKILLS

End-to-end Sepay VietQR payment infrastructure cho landing page Next.js — guide user setup Sepay account + bank linking + scaffold đầy đủ payment flow trong project. Skill này xử lý 7 phase: (0) detect Next.js stack + **HỎI user chọn lead store backend** (Vercel KV hoặc Supabase Free Postgres — default recommend Supabase do free tier rộng hơn ~50× + có SQL + admin UI), (1) GUIDE user đăng ký Sepay account tại my.sepay.vn + link bank account VN (Vietcombank/Techcombank/MB/ACB/VPBank/BIDV/...) + lấy API key + setup webhook URL trên Sepay dashboard, (2A nếu chọn KV) setup Vercel KV (install `@vercel/kv` + KV namespace + 4 env vars KV_*), (2B nếu chọn Supabase) setup Supabase project (tạo project tại Singapore region + chạy migration SQL tạo 4 bảng leads/phone_index/order_counter/webhook_dedup với pg_cron TTL cleanup + RLS deny-all + lấy SUPABASE_URL + SUPABASE_SERVICE_ROLE_KEY + Vercel Cron ping `/api/health` mỗi 6 ngày chống auto-pause), (3) scaffold `lib/leads-store.ts` (thin re-export

lexuanthanhhy/MKT.LANDINGPAGE.SKILLS

Setup Telegram bot notification cho thanh toán thành công từ Sepay webhook trong Next.js project. Skill này: (1) hướng dẫn user 3 bước tạo Telegram bot riêng qua @BotFather + lấy bot token + chat_id (qua @userinfobot cho chat 1-1, hoặc /getUpdates API cho group), (2) tạo helper function `sendTelegramNotification()` reusable trong `lib/telegram.ts`, (3) detect existing Sepay webhook route trong project (thường là `/api/sepay-webhook`, `/api/payment-success`, hoặc tương đương) và wire Telegram call CÙNG CHỖ với email auto-responder (Resend) — gửi parallel qua `Promise.allSettled` để Telegram fail KHÔNG block 200 response trả Sepay (Sepay sẽ retry webhook nếu nhận non-200, gây duplicate notification), (4) draft message format mặc định tiếng Việt: emoji + tên khách + SĐT + email + amount (charm pricing VND định dạng `499.000đ`) + tên sản phẩm + timestamp giờ VN dd/mm/yyyy HH:mm, (5) update `.env.local` với `TELEGRAM_BOT_TOKEN` + `TELEGRAM_CHAT_ID`, add vào `.gitignore`, nhắc user paste vào

lexuanthanhhy/MKT.LANDINGPAGE.SKILLS

Convert a single MP3 voiceover file into a single HeyGen avatar lip-sync MP4 video. Single-purpose — no planning, no SRT, no chunking, no Remotion compositing. Hybrid path — REST upload (helper script) + HeyGen MCP for video creation, because the post-2026 MCP no longer exposes an asset-upload tool. Reads avatar look pool (`HEYGEN_AVATAR_LOOKS`) from `.env` and HeyGen API key (`HEYGEN_API_KEY`) for the upload step. USE WHEN user says "tạo video heygen từ mp3", "mp3 to heygen", "heygen mp4 từ audio", "convert mp3 sang heygen video", "tạo avatar video từ file mp3", "lip sync mp3 heygen", "biến mp3 thành video heygen", or any time the user has exactly one MP3 file and wants exactly one HeyGen avatar MP4 out.

lexuanthanhhy/MKT.LANDINGPAGE.SKILLS

Demand-side market research cho digital product / service ở Việt Nam — đo cầu thật + WTP + channel-market fit + defensibility qua keyword volume, marketplace sales (Shopee/Unica/Edumall/Gitiho/KyNa), community signal (FB groups, TikTok hashtag, Zalo OA), competitor pricing, unit economics — không phải macro PESTEL. Output: keyword portfolio + Niche Score 100 điểm 7-dimension có evidence + go/no-go decision + falsification protocol. Force triangulate ≥3 sources cho mỗi claim quan trọng. USE WHEN user says 'nghiên cứu thị trường', 'market research', 'validate niche', 'keyword research', 'demand validation', 'niche có nên làm không', 'có ai làm chưa', 'thị trường đủ lớn không', 'có lời không', 'chọn ngách', 'kiểm tra cầu'. Cũng trigger khi user mô tả 1 ý tưởng kinh doanh cụ thể và muốn check feasibility. Skill này KHÔNG fit: high-ticket transactional sale (BĐS, ô tô), B2B enterprise (sales cycle 6+ tháng), hyper-local geo micro-market (1 toà nhà, 1 phường). KHÔNG làm: macro PESTEL/Porter

lexuanthanhhy/MKT.LANDINGPAGE.SKILLS

Transcribe an MP3 voiceover into an SRT subtitle file and a word-level segments JSON using local OpenAI Whisper. Input is a single MP3 path; output is `<stem>.srt` + `<stem>_segments.json` written next to the MP3 (or to a custom output dir). USE WHEN the user says 'extract srt from mp3', 'trích srt từ mp3', 'transcribe voiceover', 'tạo file srt và segments', 'whisper transcribe', 'bóc transcript có timestamp', 'extract voiceover segments', 'tách SRT từ audio', or any time a downstream skill (plan-short-video-edit, heygen-remotion-short-video-editor) needs an SRT + word-level segments JSON from a voiceover MP3 and one does not already exist.

lexuanthanhhy/MKT.LANDINGPAGE.SKILLS

Convert Vietnamese/English script text to MP3 voiceover using ElevenLabs TTS API. Calls POST /v1/text-to-speech/{voice_id}, streams audio bytes, writes MP3 directly. Locked to Hoang's brand voice ID by default. USE WHEN user says 'tạo mp3 elevenlabs', 'elevenlabs tts', 'eleven labs voice', 'text to speech elevenlabs', 'tạo voiceover elevenlabs', 'đọc text bằng elevenlabs', 'tts elevenlabs to mp3', 'eleven labs script to mp3', 'voiceover bằng elevenlabs', 'giọng elevenlabs'.

lexuanthanhhy/MKT.LANDINGPAGE.SKILLS

End-to-end orchestrator: **script → final MP4 16:9 (1920×1080) podcast-keynote**.

lexuanthanhhy/MKT.LANDINGPAGE.SKILLS

End-to-end short-video pipeline — từ kịch bản (Việt/Anh) ra MP4 TikTok/Reels 9:16 hoàn chỉnh. Orchestrator 3 phase ghép skill có sẵn — (1) TTS provider chọn được giữa `mkt-elevenlabs-tts-to-mp3` (default, voice của Hoàng) hoặc `mkt-video-script-to-mp3` (MiniMax speech-2.8-hd), (2) checkpoint user duyệt MP3, (3) `heygen-mp3-to-mp4` lip-sync avatar HeyGen, (4) delegate Phase 3 packaging cho sub-agent `mkt-full-video-phase3-packager` (transcribe + scene outline + checkpoint + fan-out N scene writers parallel + scaffold + preview Studio). API key + voice ID cho cả 2 provider lưu ở `.env`. USE WHEN user nói "tạo full video từ script", "script to tiktok video", "pipeline full video heygen + hyperframe", "tạo video từ kịch bản đến mp4", "elevenlabs heygen hyperframe full pipeline", "minimax heygen pipeline", "kịch bản ra video tiktok", hoặc có sẵn 1 script + (optional) ảnh b-roll và muốn ra MP4 9:16 đóng gói có captions, SFX, b-roll.

lexuanthanhhy/MKT.LANDINGPAGE.SKILLS

Build a TikTok/Reels/YouTube **landscape 16:9 (1920×1080)** short video from a pre-recorded talking-head MP4 using HyperFrames — transcribe Vietnamese audio, scaffold a complete preview-ready 1920×1080 project with a slide pane (1200px) on the left and a floating avatar frame on the right, GSAP timeline có SPLIT↔PIP transitions (slide full-screen + avatar PIP corner thumbnail), breathing yoyo zoom + beat-driven punch-in trên avatar, 5 scene compositions kiểu "tier-row" pattern (post-stack hook / chats-stack problem / hero-orb solution / counter-row recap / terminal-row CTA), optional cream-paper editorial infographic image slots với `<img onerror>` fallback, 6 SFX wired tại scene boundaries, **NO captions** (giọng avatar là spine). USE WHEN user nói "edit video 16:9 từ HeyGen MP4", "scaffold project landscape", "podcast keynote editor", "talking head + slide editor", "build hyperframes 1920×1080", "tạo project 16:9 từ avatar mp4", "scaffold 16:9 hyperframes", "hyperframe landscape vide

lexuanthanhhy/MKT.LANDINGPAGE.SKILLS

Pipeline đóng gói: từ MP4 quay sẵn (talking head 9:16) tới HyperFrames preview project hoàn chỉnh có captions, SFX, zoom hooks, b-roll toàn cảnh có hiệu ứng rich, và CTA finale.

lexuanthanhhy/MKT.LANDINGPAGE.SKILLS

Audit bài Facebook / Reels / YouTube để phát hiện 4 downward drivers (over-branding, over-production, stock imagery, standardized aesthetic) + frequency-over-quality. Mỗi anti-pattern bị drop ~75% performance nếu hiện diện. USE WHEN user says 'audit content', 'check anti pattern', 'content có lỗi gì không', 'kiểm tra over branding', 'vì sao video bị chết', 'vì sao post không ai xem', 'content audit', 'kiểm tra chất lượng content'.

lexuanthanhhy/MKT.LANDINGPAGE.SKILLS

Tìm viral pattern ở ngành khác (bác sĩ, luật sư, tài chính, bất động sản, thủ công) có thể apply cho niche AI/automation của Hoang. Ngách AI educator VN còn ít format được khai thác — cross-industry adaptation là blue ocean. USE WHEN user says 'tìm format ngành khác', 'cross industry research', 'học format từ ngành khác', 'blue ocean format', 'tìm format chưa ai làm', 'adapt format từ niche khác', 'cross industry viral'.

lexuanthanhhy/MKT.LANDINGPAGE.SKILLS

Rewrite CTA kiểu autocratic (Mua ngay! Follow ngay! Đăng ký liền!) sang 3 variants Democratic / Benevolent / Laissez-faire — reach 85% dân số thay vì chỉ 5% (action-based). Áp dụng cho landing page, caption FB, CTA video, email. USE WHEN user says 'rewrite cta', 'sửa cta', 'cta không autocratic', 'viết lại kêu gọi hành động', 'cta cho landing page', 'cta nhẹ nhàng hơn', 'inclusive cta', 'cta democratic benevolent'.

관련 스킬