Communitygithub.com

lexuanthanhhy/MKT.LANDINGPAGE.SKILLS

從預錄的談話頭 MP4 建構 TikTok/Reels/YouTube **橫向 16:9 (1920×1080)** 短影片 — 使用 HyperFrames 轉錄越南語音訊,建立完整的預覽就緒專案,包含左側投影片面板 (1200px) 和右側浮動頭像框,採用 GSAP 時間軸與 SPLIT↔PIP 轉場效果。

MKT.LANDINGPAGE.SKILLS 是什麼?

此技能專為將預錄的談話頭 MP4(例如來自 HeyGen 的頭像影片)轉換為專業的橫向 16:9 短影片而設計,適用於 TikTok、Reels 和 YouTube Shorts。它是一個完整的 HyperFrames 管線,會自動執行語音轉錄(使用 Whisper,支援越南語)、場景偵測(基於標準知識影片架構:鉤子、問題、解決方案、回顧、行動呼籲)以及 5 個場景元件的生成。每個場景由 LLM 子代理根據 8 個生產級別的模式獨立創作,以確保原創且富有隱喻的視覺效果,而不是固定的範本。主索引檔案會產生一個 1920×1080 的畫布,其中包含一個可動畫化的投影片安裝座、一個浮動頭像框(具有呼吸和節拍驅動的縮放效果),以及六個現場音效(SFX)。此技能也支援可選的資訊圖表位置,並以預覽優先的規則結束,要求使用者在最終渲染 MP4 前確認。

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

在你喜歡的 AI 中提問

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

說明文件

mkt-hyperframe-talking-head-video-16-9

專用 16:9 (1920×1080) 橫向編輯器 — 輸入是一個已包含 voiceover.mp3、source.mp4 和 script.txt 的工作區資料夾,輸出則是在同一個資料夾中,完整建立好的 HyperFrames 預覽專案,可直接執行 npx hyperframes preview。

這是位於協調器 mkt-full-video-with-11-hyperframe-heygen-16-9 之下的操作層。協調器負責處理第一階段 (TTS) 和第二階段 (HeyGen 頭像) → 然後將資料夾移交給此技能來處理第三階段(轉錄、建立專案結構、檢查並預覽)。


此技能產生的內容

<workspace_folder>/
├── voiceover.mp3                 # 輸入 (保持不變)
├── source.mp4                    # 輸入 (HeyGen 頭像嘴型同步,保持不變)
├── script.txt                    # 輸入 (保持不變)
├── transcript.json               # 已產生 — Whisper 字詞級輸出
├── transcript-cleaned.json       # 已產生 — 越南語錯字修正
├── scenes-outline.json           # 已產生 — 檢查點前的大綱 (5 個場景)
├── scenes.json                   # 已產生 — 每個場景的最終中繼資料
├── index.html                    # 已產生 — 根合成畫面 1920×1080
├── compositions/
│   ├── scene-1.html              # 每個場景一個檔案,無論場景數量 N 為多少
│   ├── scene-2.html              # 由平行的 LLM 子代理編寫 (第三階段d)
│   ├── scene-3.html              # 非由 Python 範本產生 (已棄用)
│   ├── ...
│   └── scene-N.html
├── sfx/                          # 6 個 SFX 符號連結/從技能資產複製
│   ├── camera-flash.mp3
│   ├── Whoosh sound effect (1).mp3
│   ├── búng tay.mp3
│   ├── Laser.mp3
│   ├── ting.mp3
│   └── Discord Notification - Sound Effect.mp3
└── (可選) infographics/
    ├── 1.png  2.png  3.png       # 如果使用 --with-infographics
    └── prompts.md                # 每個場景的奶油紙編輯提示

畫布:

  • 根元素: data-width="1920" data-height="1080"。
  • 頭像框預設 SPLIT: top:100, left:1290, width:540, height:880, borderRadius:32。
  • 頭像框 PIP 角落: top:600, left:1540, width:320, height:420, borderRadius:20。
  • 投影片安裝座: 1200×1080 SPLIT,可在 PIP 期間動畫化為 1920×1080。
  • 每個合成畫面的內建尺寸: data-width="1200" data-height="1080" (填滿安裝座的 100%,當安裝座變寬時會展開)。

所需的輸入 (工作區資料夾慣例)

檔案必要備註
voiceover.mp3是ElevenLabs TTS 輸出 (Hoàng 的聲音)。
source.mp4是HeyGen 頭像嘴型同步。目前為 9:16 直向 — 橫向畫面使用 object-fit: cover; object-position: center 25% 來合理裁剪。請參閱 references/source-mp4-cropping.md。
script.txt是產生 voiceover.mp3 的越南語腳本。用於更正錯字和推導場景標題。
scenes-outline.json否如果使用者預先定義了 5 個場景,則跳過自動偵測。架構: 請參閱步驟 3。

Slug = 工作區資料夾的基礎名稱 (無需推導)。所有腳本都在該資料夾內讀取/寫入。腳本接受 --workspace <path> 參數,若未指定則預設為目前工作目錄 (CWD)。


管線 (依序呼叫腳本)

voiceover.mp3 + source.mp4 + script.txt
    │
    ▼
1. transcribe_audio.py        ── Whisper VN → transcript.json (字詞級)
    │
    ▼
2. clean_transcript.py        ── 移除 Whisper 人工產物,套用 VN 字典
    │
    ▼
3. detect_scenes.py           ── 轉錄稿 + script.txt → scenes-outline.json (5 個場景)
    │
    ▼
4. [可選的 CHECKPOINT]      ── 使用者檢閱大綱 / 調整開場白、標題
    │
    ▼
5. scaffold_project.py        ── 寫入 scenes.json (完整架構),建立 sfx/、logos/、avatar.jpg、yt-lower-third.html
    │
    ▼
6. 🔥 LLM 子代理分岔 🔥 ── 協調器在單一訊息中產生 N 個並行的通用
                                  代理 (每個場景一個),每個代理根據
                                  visual-plan.json + references/composition-patterns.md
                                  編寫 compositions/scene-{num}.html。
                                  不是 generate_compositions.py (Jinja2 產生器
                                  已棄用 — 會收斂成 5 種原型,無法適應
                                  場景特定的隱喻,且會破壞列表式 6+ 個場景的結構)。
    │
    ▼
7. generate_root_index.py     ── 寫入 index.html,包含幻燈片安裝座 (掛載 scene-{num}.html
                                  適用於所有場景,無 kind→fs-lesson 映射)、
                                  頭像框 (claude-orange #d97757 品牌邊框)、
                                  GSAP 時間軸 (SPLIT↔PIP、呼吸、強擊、
                                  PIP_EVENTS、混合鉤子縮放) + 6 個已接線的 SFX +
                                  在根層級加入奶油紙 B-roll 圖片層 (全 1920×1080)
    │
    ▼
8. [可選] scaffold_infographic_slots.py
                              ── 加入 <img onerror> 佔位符 + 寫入 prompts.md
                                  (每個場景隱喻的奶油紙編輯風格)
    │
    ▼
9. lint_and_preview.py        ── npx hyperframes lint → 0 錯誤,然後預覽
    │
    ▼
交接 — 輸出 Studio URL;使用者檢視;協調器決定是否渲染。

預覽優先規則 (不可協商): 技能在步驟 9 結束,並提供 Studio URL。MP4 渲染僅在使用者明確確認後執行 — 該步驟屬於協調器或使用者手動操作。

步驟 1: transcribe_audio.py

python3 scripts/transcribe_audio.py --workspace <folder>

包裝現有的 mkt-ai-video-extract-srt-segment 技能 (如果本地可用);否則直接回退到 whisper CLI:

whisper voiceover.mp3 --model medium --language vi --word_timestamps True \
  --output_format json --output_dir .

永遠不要對越南語音訊使用 --model medium.en — .en 會進行翻譯而不是轉錄。務必使用 --language vi。

輸出: transcript.json — 包含 {text, start, end} 字詞級項目的陣列。

步驟 2: clean_transcript.py

重用來自同系列 9:16 編輯器的邏輯 (mkt-hyperframe-talking-head-video/scripts/clean_transcript.py)。移除 U+FFFD,套用 VN 字詞級和片語級字典 (alphabit→Alphabet、Cod→Code 等),將其分組為 3-5 個單詞的片語。輸出: transcript-cleaned.json。(沒有 caption-groups.json — 在 16:9 中字幕是關閉的。)

步驟 3: detect_scenes.py

讀取 transcript-cleaned.json + script.txt → 使用標準知識影片骨架推論 5 個場景邊界:

#類型預設開場白線索變體
1hook腳本的第一句話tier-row (透過 kind=hook 營造貼文堆疊感)
2problem腳本轉到「ChatGPT/AI cũ」、「khó」、「đứt mạch」、「vấn đề」… 的地方chats-stack
3solution腳本引入工具/方法的地方hero-orb
4recap腳本顯示數值結果的地方 (「X tiếng」、「Y khách hàng」)counter-row
5cta最後一句話,包含留言/儲存/追蹤觸發詞terminal-row

如果腳本沒有明確的 5 個部分,輸出較少 (最少 3 個) 並警告使用者。啟發式方法:根據句子邊界將轉錄稿分割成約 5 個區塊,場景 3 (solution 通常最長) 權重為 1.5 倍。

輸出 scenes-outline.json:

[
  { "num": 1, "kind": "hook",     "start": 0.07,  "end": 13.73, "kicker": "...", "heading": "...", "variant": "tier-row" },
  { "num": 2, "kind": "problem",  "start": 13.73, "end": 27.37, "kicker": "...", "heading": "...", "variant": "chats-stack" },
  { "num": 3, "kind": "solution", "start": 27.37, "end": 47.75, "kicker": "...", "heading": "...", "variant": "hero-orb" },
  { "num": 4, "kind": "recap",    "start": 47.75, "end": 53.80, "kicker": "...", "heading": "...", "variant": "counter-row" },
  { "num": 5, "kind": "cta",      "start": 53.80, "end": 60.68, "kicker": "...", "heading": "...", "variant": "terminal-row" }
]

CHECKPOINT — 印出大綱供使用者檢閱。使用者可以內聯編輯開場白/標題/變體,然後繼續。如果技能以 --auto 模式(協調器模式)呼叫,則跳過檢查點。

步驟 4: scaffold_project.py

讀取 scenes-outline.json → 為每個場景豐富以下資訊:

  • accent_words — 從標題推導 (提取數字 + 最後 2-3 個名詞)
  • content — 特定模式的架構 (請參閱 assets/templates/)
  • badges — 每個場景 1-3 個浮動徽章
  • brollEnd、hasBreath — 用於 SPLIT↔PIP 排程
  • pip_events — 從場景內 accent_words 的時間推導

寫入 scenes.json。同時自動將這些技能捆綁的 assets/ 中的自包含資產複製到工作區:

資產來源目標用途
6 個 SFX 檔案assets/sfx/<workspace>/sfx/節拍音效 (camera-flash、whoosh、búng-tay、Laser、ting、Discord-notification)
品牌標誌assets/logos/{chatgpt,gemini,claude,claude-code}.{png,jpg}<workspace>/assets/logos/自動附加到合成畫面 (chats-stack 頭像、hero-orb、tier-row 工具徽章)
頭像assets/avatar.jpg<workspace>/assets/avatar.jpgyt-lower-third 訂閱橫幅的頻道縮圖
YT 下方三分之一assets/compositions/yt-lower-third.html<workspace>/compositions/yt-lower-third.html訂閱橫幅安裝座,影片最後 3 秒

如果技能捆綁中缺少來源資產,則會無聲地回退到舊版工作區路徑 (workspace/assets/...)。如果兩者都找不到,則跳過該資產 (合成畫面會優雅降級 — 使用文字頭像代替標誌,沒有下方三分之一)。

步驟 5: 🔥 LLM 子代理分岔 (合成畫面創作) 🔥

**generate_compositions.py 已棄用。**請勿呼叫它。Python Jinja2 產生器會將每個場景收斂為 5 種固定原型之一 (hook → tier-row、problem → chats-stack、solution → hero-orb、recap → counter-row、cta → terminal-row),無法適應場景特定的隱喻 (例如「scroll-tape-wasted」、「two-clock-comparison」、「right-tool-vehicles」),並且會破壞列表式 6+ 個場景的結構 (多個 tip-N 收斂為相同檔案名稱 → 覆蓋)。

規範方法: 協調器 (或使用者) 在單一訊息中產生 N 個並行的 general-purpose 代理 (每個場景一個),以便它們並行執行。每個子代理:

  1. 從 visual-plan.json 讀取其場景區塊 (路徑: <workspace>/visual-plan.json,場景索引 num-1)
  2. 從協調器技能讀取參考資料: references/composition-patterns.md (8 個生產環境驗證的模式)、references/slide-design-tokens.md (調色盤 + 字體排印)
  3. 為其場景的隱喻選擇正確的模式 — 自由調整 (hero-orb 可以變成 vault+spokes、stats-3card 可以變成 two-clock-comparison)
  4. 從頭開始創作 compositions/scene-{num}.html,包含: 1200×1080 視口、透過 [data-composition-id="scene-{num}"] 設定範圍的 CSS、註冊到 window.__timelines["scene-{num}"] 的 GSAP 時間軸、沒有 !important、沒有嵌入的 image-slot (奶油紙圖片僅存在於根層級)

結果: 每個場景都獲得一個獨特的、符合隱喻的合成檔案。沒有衝突,沒有無聊的 5 原型鎖定。

請參閱協調器的 mkt-full-video-with-11-hyperframe-heygen-16-9/SKILL.md 步驟 4d 以獲取完整的子代理提示範本。

合成畫面中的品牌標誌 (子代理參考這些)

當模式需要時,子代理會嵌入品牌標誌。標誌位於 <workspace>/assets/logos/:

模式用途品牌元素
Hook tier-row "after"tool-badge 藥丸 (右上角) — Claude 標誌 + 名稱。
Problem chats-stack 失敗列當 name 匹配關鍵字時 (chatgpt/gpt → chatgpt.png;gemini/google → gemini.jpg),自動附加 ChatGPT/Gemini 標誌。
Solution hero-orb / vault發光球體內部的品牌標誌 (預設 Claude)。
CTA terminal-row預設無標誌。

如果 assets/logos/ 不存在,子代理會回退到文字頭像 (無閃爍)。

模式參考 (8 種原型,子代理選擇並調整)

協調器的 references/composition-patterns.md 提供了 8 種經過生產驗證的模式:

模式最佳用途內部動機
tier-row before-after鉤子對比2 個層級行 (之前 玫瑰紅 + 之後 萊姆綠) 附帶字母和項目
chats-stack問題 / 失敗 / 編輯-重新產生示範使用者行 + 2-3 個 AI 失敗行 + 斷鏈戳記
hero-orb + spec-trio解決方案 / 機制 / 中心寶庫發光球體 + 任務圖示 + 3 個規格層級行
counter-row回顧 / 數字證明大計數器 (從 → 到) + 客戶 + delta 標籤
comment-terminal行動呼籲 / "留言 X"層級字母 + macOS 終端機模擬 + 2 張禮物卡
stats-3card知識介紹 / 3 事實揭露3 個登陸頁面風格的欄位,帶有 // LBL + 漸層數字
comparison-2col"何時該用哪個"2 欄 Yes/Yes 晶片
image-slot(已棄用 — 圖片位於根層級)—

子代理自由調整:例如,hero-orb → "vault + 5 個聊天輻條"、stats-3card → "two-clock-comparison"、comparison-2col → "3 層級車輛卡片"。模式文件提供骨架 (HTML + CSS + GSAP),LLM 進行創意客製。

步驟 6: generate_root_index.py

讀取 scenes.json + 來自轉錄稿的 total_duration → 渲染 assets/templates/index.html.j2:

  • 1920×1080 根元素,包含 #slide-bg、#heygen-bg、#avatar-frame > .avatar-breathing > .avatar-punch > #v-source
  • <audio id="a-source"> 追蹤原始 source.mp4 音訊 (音軌 1)
  • 6 個 <audio> SFX 以絕對 data-start 接線 (場景邊界)
  • 左上角品牌標記
  • GSAP 區塊:
    • 初始進場 (頭像淡入、品牌淡入)
    • SPLIT/PIP 常數 + goPIP(t) / goSplit(t) 輔助函式
    • PIP_EVENTS 陣列由來自 scenes.json 的每個場景的 pip_events 驅動
    • 「混合鉤子」視覺縮放策略作用於 .avatar-breathing:
      • HOOK 場景: 在場景持續時間內從 1.0 緩慢斜升到 1.10 (建立戲劇張力,power2.in)
      • HOOK→BODY 轉換: 快照重置 1.10 → 1.0 (釋放張力,0.5s power3.in)
      • BODY 場景 (2..N-1) 在 PIP-IN 事件時: 1.06 強擊節拍 (節奏,power2.out → power3.out)
      • CTA 場景: 輕柔的 1.0 → 1.04 推送 (結尾,sine.inOut)
    • 每個場景開始時對 .avatar-punch 進行小強擊 (1.06),以作為轉場信號

...

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

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

相關技能