Communitygithub.com

lexuanthanhhy/MKT.LANDINGPAGE.SKILLS

封裝管線:從預錄的 MP4(9:16 說話者影片)到完整的 HyperFrames 預覽專案,包含字幕、音效、縮放鉤子、具有豐富效果的全面 B-Roll 場景以及 CTA 結尾。

MKT.LANDINGPAGE.SKILLS 是什麼?

此技能會自動將預錄的 9:16 說話者 MP4 影片轉換為一個可在 HyperFrames Studio 中預覽的完整專案。它能辨識越南語音頻、利用 Whisper 進行轉錄、自動修正錯誤並將字幕分組。然後,它會基於轉錄內容的結構,建立一個包含多個場景(如課程、回顧和 CTA)的專案。每個場景都包含豐富的 GSAP 動畫效果、可選的 B-Roll 媒體疊加層以及同步的音效。其設計目的是為 TikTok、Reels 或 Shorts 等平台產出可供審查的預覽內容,而非直接渲染 MP4。此技能支援 Claude Code 等平台,並可透過如「從素材建立 TikTok 影片」或「使用 HyperFrames 建立說話者影片」等提示詞觸發。工作流程包括檢查影片、轉錄、清理、場景偵測、B-Roll 配對、使用資訊圖表風格的模板建立專案結構,最後開啟 HyperFrames 預覽,讓使用者確認最終結果。

相容平台✓Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/lexuanthanhhy/MKT.LANDINGPAGE.SKILLS/tree/HEAD/.claude/skills/mkt-hyperframe-talking-head-video

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

mkt-hyperframe-talking-head-video

封裝管線:從預錄的 MP4(9:16 說話者影片)到完整的 HyperFrames 預覽專案,包含字幕、音效、縮放鉤子、具有豐富效果的全面 B-Roll 場景以及 CTA 結尾。

使用時機

  • 使用者已錄製好一個 9:16 的正面拍攝影片(TikTok/Reels/Shorts),並希望加入字幕、視覺鉤子和音效。
  • 使用者還有一些想要插入的 B-Roll 圖片或影片(附帶使用目的)。
  • 使用者想要輸出預覽 Studio 來在渲染 MP4 之前瀏覽視覺效果。

請勿在以下情況使用此技能:

  • 使用者尚未錄製影片 — 請改用 mkt-create-script-short-video 來先撰寫腳本,或其他技能來建立 AI 配音和虛擬角色。
  • 使用者已有 HyperFrames 專案,只想進行細微調整 — 直接修改檔案,而不是重新建立整個專案。
  • 使用者想要從現有專案渲染 MP4 — 直接執行 npx hyperframes render。

管線概覽

MP4 9:16 說話者影片 +(可選)B-Roll 檔案
    │
    ▼
1. 檢查 MP4 ────────── ffprobe → 時長、解析度、FPS
    │
    ▼
2. 規劃結構 ────────── 從使用者輸入或轉錄稿中自動偵測課程標記
    │
    ▼
3. 轉錄 ──────────────── npx hyperframes transcribe --model medium --language vi
    │
    ▼
4. 清理轉錄稿 ──────── 套用越南語 Whisper 錯誤字典(alphabit→Alphabet 等)
    │
    ▼
5. 分組字幕 ────────── 每組 3-5 個詞,在 >0.45 秒間隔處斷開,保留時間戳
    │
    ▼
6. 配對 B-Roll ──────── 詢問使用者目的 → 分配給課程場景
    │
    ▼
7. 建立專案結構 ────── workspace/video-projects/<slug>/
    ├── index.html (根目錄)
    ├── source.mp4
    ├── transcript.json + caption-groups.json
    ├── compositions/
    │   ├── captions.html
    │   ├── fs-lesson-N.html (每個課程一個,效果各異)
    │   ├── recap-card.html (如適用)
    │   └── fs-cta.html
    └── sfx/ (6 種音效)
    │
    ▼
8. 語法檢查 ──────────── npx hyperframes lint → 修復任何錯誤
    │
    ▼
9. 開啟預覽 ──────────── npx hyperframes preview (背景) → URL Studio
    │
    ▼
10. 移交給使用者 ─────── 不自動渲染 MP4

預覽優先規則(不可協商): 技能在步驟 9 結束,提供 Studio URL。僅在使用者在預覽後明確確認時,才執行 MP4 渲染。

步驟 1:驗證輸入並規劃

使用者將提供:

輸入必要格式
正面拍攝 MP4 9:16是檔案路徑
專案名稱否若缺少則從檔名自動衍生
B-Roll 清單否[{path: "screenshot.png", purpose: "Bài học 1 — minh họa thử nghiệm"}, ...]
影片結構否"3 項課程 + 介紹 + CTA" / "5 個技巧" 等 — 若缺少則自動偵測

先檢查 MP4:

ffprobe -v error -show_entries format=duration:stream=codec_type,width,height,r_frame_rate \
  -of json "<mp4_path>"

驗證:

  • 解析度為 9:16(例如 1080x1920, 1440x2560)— 如果是橫向,發出警告但仍繼續(object-fit:cover 會裁切)
  • 時長 < 180 秒為理想;大於 180 秒仍可,但警告使用者 TikTok 演算法偏好 ≤90 秒
  • FPS 24/25/30/60 皆可 — 輸出預設為 30fps

專案名稱:從檔名衍生,轉為小寫,越南語重音字 → ASCII,空格 → 破折號。例如 "3 bài học .mp4" → 3-bai-hoc。使用者可覆蓋。

輸出目錄:workspace/video-projects/<slug>/

步驟 2:轉錄並清理

cd workspace/video-projects/<slug>/
cp <user_mp4> source.mp4
npx hyperframes transcribe source.mp4 --model medium --language vi

絕不對越南語音頻使用 --model medium.en 或 small.en — .en 模型會翻譯成英文,而非轉錄。務必對越南語音頻使用 --language vi。

完成後,清理轉錄稿:

python3 .claude/skills/mkt-hyperframe-talking-head-video/scripts/clean_transcript.py \
  transcript.json
# 寫入:transcript.json(原地清理)+ caption-groups.json(自動分組)

腳本已套用越南語 Whisper 錯誤替換(alphabit→Alphabet, Cod→Code, 根據上下文的 dụng/dùng, đ��ng→đắc 等),並在 >0.45 秒間隔處斷開,自動分組為 3-5 個詞的字幕片語。

關鍵的字幕同步規則: 時間戳必須完全保留詞級轉錄稿中的時間。不得手動編輯時間戳。如果需要修改文字,只修改文字 — clean_transcript.py 腳本已經處理。典型的錯誤:手動編輯文字時意外修改了時間戳,導致影片中間的字幕偏移 5 秒。

步驟 3:偵測場景結構

python3 .claude/skills/mkt-hyperframe-talking-head-video/scripts/detect_scenes.py \
  transcript.json
# 輸出:scenes.json

腳本在轉錄稿中尋找以下標記:

  • "Bài học đầu tiên / thứ 2 / thứ 3 / thứ N" → 課程場景
  • "Tips số 1 / Tip 1 / Số 1" → 技巧場景
  • "Tổng kết lại / Recap / Kết luận" → 回顧時刻
  • "Comment / Đăng ký / Like / Theo dõi" → CTA 時刻

輸出 scenes.json:

{
  "type": "lessons",
  "scenes": [
    { "kind": "lesson", "num": 1, "start": 9.4, "end": 13.0, "kicker": "Bài học #1", "heading": "..." },
    { "kind": "lesson", "num": 2, "start": 34.5, "end": 38.0, ... },
    { "kind": "lesson", "num": 3, "start": 61.5, "end": 65.5, ... },
    { "kind": "recap", "start": 84.9, "end": 99.0 },
    { "kind": "cta", "start": 99.0, "end": 106.94 }
  ]
}

如果自動偵測找不到明確的結構(例如 vlog 自由形式),則向使用者顯示結果並請求確認。使用者可以覆蓋時間戳。

步驟 4:配對 B-Roll

如果使用者提供了帶有目的的 B-Roll 檔案:

[
  { path: "alphabet-screenshot.png", purpose: "Bài học 1 — Alphabet ship beta" },
  { path: "clock-icon.mp4",         purpose: "Bài học 2 — minh họa 24h" },
  { path: "team-meeting.png",       purpose: "Bài học 3 — bỏ rào cản team" }
]

配對邏輯:

  • 每個 B-Roll 根據 purpose 中的文字 "Bài học N" 匹配一個場景
  • 圖片 → 用作該場景的全螢幕背景(替換純文字生成的場景)
  • 影片 → 用作全螢幕場景背景或畫中畫疊層(預設:全螢幕)
  • 預設場景效果(脈衝環、角落標記等)仍然疊加在 B-Roll 圖片/影片的上方

如果使用者未提供 B-Roll,則使用純文字場景(如參考專案 3-bai-hoc/)— 生成帶有標題、大數字和副標題的文字卡片。

步驟 5:生成專案檔案(資訊圖表風格 — 預設)

使用資訊圖表 v2 生成器來建立以內容驅動的模擬 B-Roll(Hostinger 風格:深色玻璃態 + 霓虹光暈 + UI 模擬 + 浮動資料徽章):

python3 .claude/skills/mkt-hyperframe-talking-head-video/scripts/scaffold_infographic_v2.py \
  --output workspace/content/YYYY-MM-DD/<slug>/compositions/ \
  --scenes scenes.json

scenes.json 結構(每個場景,包含 mockup_variant + content):

{
  "scenes": [
    {
      "kind": "lesson",
      "num": 1,
      "start": 12.71,
      "end": 26.40,
      "kicker": "Tư vấn AI",
      "heading": "Tư vấn AI cho 1 ngành",
      "accent_words": [2],
      "mockup_variant": "post-stack",
      "content": { "posts": [...] },
      "badges": [
        { "pos": "tr", "color": "orange", "icon": "📅", "num": "30", "label": "Ngày" }
      ]
    },
    { "kind": "recap", "mockup_variant": "team-grid", "content": {...} },
    { "kind": "cta", "mockup_variant": "comment-box", "content": {...} }
  ]
}

7 種模擬變體 — 選擇符合場景語義的一種:

場景類型變體用途
個人品牌/發文post-stack3 張社群卡片堆疊,頂部高亮顯示互動
AI 搜尋/GEOai-windowChatGPT 風格視窗,推薦卡片高亮
語音/電話/通話phone-calliPhone 模擬機,包含波形、代理氣泡和插槽網格
分析/儀表板dashboard玻璃卡片,包含統計數據、創意網格和圖表線
產品/SaaS 發布app-card應用卡片,包含圖示、統計數據和可選的隱喻行
前後對比回顧team-grid40 點網格變形,帶有動畫倒數和乘數
CTA "評論 X"comment-box評論框模擬 + 2 張禮品卡 + CTA 藥丸按鈕

完整內容結構 + 設計標記:請參閱 references/infographic-design-system.md。

通用外殼元素(自動套用於每個場景):徑向漸變背景 + 青色網格線 + 10 個 SVG 粒子(飄移循環)+ 暗角 + 主題藥丸按鈕(橙色光暈)+ 品牌標題 110px(逐詞 slam-in,強調漸變)。

浮動徽章(每個場景可選 1-4 個):主要模擬圖周圍的 130px 圓形徽章,包含圖示、數字和標籤,顏色編碼(青色/紫色/橙色/綠色),帶有匹配的光暈,從螢幕外動畫進入並循環擺動。

傳統生成器(已棄用)

scaffold_project.py(環形/角落/光掃描抽象裝飾)— 保留以實現向後相容,但不推薦使用。新影片請使用 scaffold_infographic_v2.py。

每個場景包含:

  • 在 .scene-content 上進行衝擊式縮放進入(交替縮放 1.12 / 縮小 0.92)
  • 元素進入順序:眉題 → 數字 → 標題(逐詞 slam) → 副標題
  • 場景中的環境效果(脈衝環、呼吸、飄移等)
  • 無退出動畫 — 片段結束,框架隱藏

子組合規則:內部時間軸相對於 0 → data-duration,而非絕對時間。在根目錄中使用 data-composition-src="compositions/<name>.html" 掛載,並設定 data-start = scene.start。

步驟 6:複製音效

mkdir -p workspace/video-projects/<slug>/sfx
SFX_SRC="$(git rev-parse --show-toplevel)/.claude/skills/mkt-hyperframe-talking-head-video/assets/sfx"
cp "$SFX_SRC"/{camera-flash.mp3,"búng tay.mp3","Whoosh sound effect (1).mp3",Laser.mp3,ting.mp3,"Discord Notification - Sound Effect.mp3"} workspace/video-projects/<slug>/sfx/

6 種音效標準對應:

時間檔案音量時刻
0.0scamera-flash.mp30.32鉤子開場 — 與來源影片在 0 秒處的衝擊縮放同步
課程 1 開始前 0.05 秒búng tay.mp3 (彈指聲)0.30課程 1 揭露
課程 2 開始前 0.05 秒Whoosh sound effect (1).mp30.22課程 2 轉場
課程 3 開始前 0.05 秒Laser.mp30.28課程 3 衝擊
回顧開始前 0.05 秒ting.mp30.20回顧揭露
CTA 開始時Discord Notification - Sound Effect.mp30.28CTA 通知感

音效音量規則(參閱 references/sfx-library.md): 鉤子 0.25-0.35,轉場 0.15-0.2,CTA 0.25。最多 5-6 個音效,間隔 ≥1.5 秒。

步驟 7:語法檢查 + 開啟預覽

cd workspace/content/YYYY-MM-DD/<slug>/
npx hyperframes lint

接受警告:

  • composition_file_too_large — 僅供參考,根目錄可忽略
  • composition_self_attribute_selector — 僅供參考,資訊圖表模擬使用限定的 [data-composition-id="..."] 選擇器

拒絕錯誤:

  • gsap_animates_clip_element — 不得在 clip 上動畫化 visibility/display — 只動畫化 opacity
  • root_composition_missing_data_start — 子組合必須在內部 div 上設定 data-start="0"
  • media_missing_data_start — <audio> 音效必須有 data-start 屬性(HF 原生排程,不使用 JS 觸發)
  • 字幕同步問題 — 重新執行 clean_transcript.py 腳本

關鍵:字幕 Z 軸順序

字幕子組合必須使用最高的 data-track-index 掛載,以便顯示在課程子組合(具有全螢幕深色背景)之上。否則字幕會被 B-Roll 遮擋。

<!-- 課程/回顧/CTA 掛載:track-index 40-47 -->
<div class="clip split-mount" data-composition-src="compositions/fs-lesson-1.html" data-start="..." data-track-index="40"></div>
<!-- ... -->
<!-- 字幕最後掛載,track 60 + 內聯 z-index -->
<div class="clip captions-mount"
     data-composition-src="compositions/captions.html"
     data-start="0" data-duration="..." data-track-index="60"
     style="z-index: 100;"></div>

步驟 7.5:分割畫面 + 全臉呼吸佈局(說話者影片 + B-Roll 推薦)

對於任何需要說話者臉部和 B-Roll 模擬圖同時可見的影片請使用此佈局 — 而不是用全螢幕 B-Roll 遮擋臉部。

架構:

  • 臉部影片在介紹期間預設為全螢幕
  • 當 B-Roll 出現時:臉部縮小到下半部分(1080x960),B-Roll 在上半部分渲染(縮放 0.5)
  • 在每個 B-Roll 結束時(下一個場景開始前 1.5 秒):臉部擴展回全螢幕("呼吸"時刻)→ 捕捉情緒爆點
  • 字幕在中間(分割模式)和底部(全臉模式)之間自動動畫化

生成帶有預先烘焙分割畫面的根目錄 index.html:

python3 .claude/skills/mkt-hyperframe-talking-head-video/scripts/generate_root_index.py \
  --output workspace/content/YYYY-MM-DD/<slug>/index.html \
  --scenes scenes.json \
  --total-duration 108.92 \
  --header-label "6 AI BUSINESS 2026" \
  --footer-handle "@tranvanhoang.com"

scenes.json 必須為每個場景包含 brollEnd + hasBreath。有關編輯規則(何時全螢幕 vs. 分割),CSS ...

[原內容因長度截斷]

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

Deploy landing page / website (React, Next.js, Vite, static HTML) lên Vercel — tự kiểm tra Vercel CLI hoặc Vercel MCP đã cài chưa, nếu chưa thì cài qua npm/pnpm và hướng dẫn user authenticate (vercel login), tự detect framework (Next.js / Vite / CRA / static), auto-generate vercel.json khi cần, chạy `vercel --prod`, trả về live URL + inspect URL + hướng dẫn custom domain. USE WHEN user says 'deploy lên vercel', 'đẩy landing page lên vercel', 'publish website', 'go live', 'deploy nextjs', 'deploy react', 'deploy vite', 'tạo URL live', 'đưa lên production', 'biz-deploy-vercel', 'host landing page', 'vercel deploy', 'ship lên vercel', 'đẩy code lên vercel'. Skill này áp dụng cho cả case dùng Vercel CLI lẫn Vercel MCP server.

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

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'.

相關技能