Rà soát bộ công cụ BEUP → chọn cụm skill content đa nền tảng để áp dụng cho Trade With VietEN Audited BEUP's tooling → picked the multi-platform content skill cluster to reuse for Trade With Viet
Mục tiêu: tái dùng tối đa công cụ BEUP, build tối thiểu. Chốt trọng tâm = biến 1 blog gốc thành nhiều định dạng trải khắp Facebook / LinkedIn / YouTube. Port 3 skill (twv-multiply, twv-images, twv-clip), tổ chức trong một workspace riêng ~/twv-workspace.
EN Goal: reuse BEUP tooling to the max, build the minimum. Locked focus = turn one source blog into many formats spread across Facebook / LinkedIn / YouTube. Port 3 skills (twv-multiply, twv-images, twv-clip), organised in a separate ~/twv-workspace.
Trạng thái / StatusPlan duyệt / approvedPhạm vi / ScopeTWV content automationNgày / Date2026-06-10
Reasoning
6-layer thinking chain
L1
Raw request
“rà soát các skill và agent và command của BEUP; xem có gì có thể ứng dụng cho trade with viet được; các cách thức tổ chức”EN “Review BEUP's skills/agents/commands; see what can be applied to Trade With Viet; the ways of organising.”
L2
Reframe — what was really needed
Không phải “liệt kê 32 skill”, mà là: cái nào tái dùng được cho TWV, và tổ chức ra sao để BEUP và TWV không dẫm chân nhau. Sau 2 vòng hỏi, bạn thu hẹp lại: học CHỦ YẾU cụm content đa nền tảng.
EN Not “list 32 skills”, but: which ones TWV can reuse, and how to organise so BEUP and TWV don't collide. After two rounds of questions you narrowed it: focus MAINLY on the multi-platform content cluster.
L3
Constraints
- TWV không bán product Excel/Sheets/n8n → cả nhóm skill product hoá là vô dụng.EN TWV ships no Excel/Sheets/n8n products → the whole product-shipping skill group is irrelevant.
- Buffer gói free chỉ 3 kênh; B2B đã chốt Facebook + LinkedIn + YouTube (bỏ IG/Twitter).EN Buffer free plan caps at 3 channels; B2B locked to Facebook + LinkedIn + YouTube (dropped IG/Twitter).
- Nhiều thứ ĐÃ port rồi (twv-blog, twv-publish, twv-video, twv-seo-ux) — không build lại.EN A lot is ALREADY ported (twv-blog, twv-publish, twv-video, twv-seo-ux) — don't rebuild.
- SEO collectors + humanizer-lint vốn domain-agnostic → đổi config là chạy, khỏi fork.EN SEO collectors + humanizer-lint are domain-agnostic → swap config, no fork needed.
L4
Options weighed
- A. Port toàn bộ 32 skill → tốn công, nhiều skill không liên quan TWV.EN A. Port all 32 skills → heavy, many irrelevant to TWV.
- B. Chỉ port cụm content đa nền tảng (multiply/images/clip) → đòn bẩy cao nhất / công thấp. ✅EN B. Port only the multi-platform content cluster (multiply/images/clip) → highest leverage / lowest effort. ✅
- C. Gọi thẳng skill BEUP cho TWV → lẫn brand/credential, dễ đăng nhầm kênh.EN C. Call BEUP skills directly for TWV → mixes brand/credentials, risks posting to the wrong channel.
L5
Principle invoked
Reuse before build: script domain-agnostic chỉ cần đổi config, không fork. Và: làm đòn bẩy cao nhất trước (1 blog → N nền tảng) thay vì dàn trải. / Reuse before build; do the highest-leverage thing first.
L6
Pick + recognition signal
Chọn B: port twv-multiply (⭐ lõi), twv-images, twv-clip; dựng ~/twv-workspace riêng mirror ~/beup-workspace. Bỏ qua programmatic SEO + case-study (để sau). Dấu hiệu nhận biết lần sau: khi một brand mới cần tự động hoá, hỏi “script này có domain-agnostic không?” trước khi viết mới.
EN Pick B: port twv-multiply (⭐ core), twv-images, twv-clip; stand up a separate ~/twv-workspace mirroring ~/beup-workspace. Defer programmatic SEO + case studies. Recognition signal next time: when a new brand needs automation, ask “is this script domain-agnostic?” before writing anything new.
PipelineCách làm: 1 blog → nhiều nền tảng
Cách làm: 1 blog → nhiều nền tảngEN How it works: 1 blog → many platforms
1
twv-blog
Viết blog gốc EN B2B (idea → write → review). Nguồn của mọi thứ phía sau.
EN Write the EN B2B source blog (idea → write → review). The source of everything downstream.
2
twv-images
Tách ảnh theo nền tảng: OG · LinkedIn · IG vuông. EN + VI dùng chung 1 photo, chỉ khác chữ overlay. (cần port)
EN Per-platform images: OG · LinkedIn · square IG. EN + VI share one photo, only overlay text differs. (to port)
3
twv-multiply ⭐
Biến blog thành nhiều bản text: LinkedIn ×3, Facebook ×2, kịch bản YouTube short, carousel — qua cổng humanizer. Đây là đòn bẩy chính. (cần port)
EN Turn the blog into many text pieces: LinkedIn ×3, Facebook ×2, YouTube-short script, carousel — through the humanizer gate. This is the main lever. (to port)
4
twv-clip / twv-video
Video dọc 1080×1920: chữ-động + voiceover Gemini + caption (twv-clip, cần port) hoặc qua Canva (twv-video, đã có).
EN Vertical 1080×1920 video: animated text + Gemini voiceover + captions (twv-clip, to port) or via Canva (twv-video, exists).
5
twv-publish
Đẩy lên WordPress + xếp lịch Buffer: FB 14:00 · LI 14:30 · YT 15:00 (giờ VN). YouTube đi qua n8n.
EN Push to WordPress + queue via Buffer: FB 14:00 · LI 14:30 · YT 15:00 (ICT). YouTube goes through n8n.
ArchitectureCách mọi thứ ăn khớp
Cách mọi thứ ăn khớpEN How it fits together
Một blog gốc tỏa ra 3 nhánh sản xuất (ảnh, text, video) rồi gộp về một cổng phân phối. Mỗi ô là một skill độc lập, nối với nhau qua thư mục content/ trong ~/twv-workspace.
EN One source blog fans out into 3 production branches (images, text, video) then converges on one distribution gate. Each box is a standalone skill, wired together through the content/ folder in ~/twv-workspace.
| Technical term | Plain name | Role |
|---|---|---|
twv-multiply | Nhân bản nội dung / Content multiplier | 1 blog → 12+ bản phái sinh cho LinkedIn/FB/YT EN 1 blog → 12+ derivatives for LinkedIn/FB/YT |
twv-images | Ảnh theo nền tảng / Per-platform images | Render 3 size × EN+VI, dùng chung 1 photo EN Renders 3 sizes × EN+VI, sharing one photo |
twv-clip | Video tri thức / Knowledge clip | Blog → video dọc chữ-động + voiceover EN Blog → vertical animated-text video + voiceover |
wp_twv.py + Buffer + n8n | Lớp phân phối / Distribution layer | Đăng WP + xếp lịch social; YouTube qua n8n vì Buffer hết slot EN Posts to WP + queues social; YouTube via n8n because Buffer ran out of slots |
~/twv-workspace | Kho làm việc riêng / Separate workspace | Mirror ~/beup-workspace; symlink script dùng chung, brand = JSON config EN Mirrors ~/beup-workspace; symlinks shared scripts, brand = JSON config |
Đọc sơ đồ trong 30 giây: blog ở giữa-trái, 3 nhánh sản xuất ở giữa, cổng phân phối xanh bên phải. Cùng một nội dung, nhiều hình hài.
EN Read the diagram in 30s: blog mid-left, 3 production branches in the middle, green distribution gate on the right. Same content, many shapes.
Bài học mang theo: tách marketing-ops (trong ~/twv-workspace) khỏi code sản phẩm (repo vietconnect). Chỉ programmatic SEO ở lại repo vì nó LÀ code Next.js.
EN Lesson to carry forward: keep marketing-ops (in ~/twv-workspace) separate from product code (the vietconnect repo). Only programmatic SEO stays in the repo because it IS Next.js code.
Decisions
Layered decision cards
Chọn 3 skill content, bỏ NotebookLM
EN Pick 3 content skills, drop NotebookLM
L2Cần đòn bẩy đa nền tảng, không cần đa định dạng học thuật ngay.
EN Need multi-platform leverage, not academic multi-format yet.
L4multiply / images / clip / nblm — chọn 3 cái đầu.
EN multiply / images / clip / nblm — pick the first three.
L5Đòn bẩy phân phối > phong phú định dạng.
EN Distribution leverage > format richness.
L6twv-multiply + twv-images + twv-clip. nblm để sau.
EN twv-multiply + twv-images + twv-clip. nblm later.
Workspace riêng ~/twv-workspace
EN Separate ~/twv-workspace
L3Marketing-ops không nên lẫn vào git lịch sử của sản phẩm.
EN Marketing-ops shouldn't pollute the product's git history.
L4(a) config-tenant chung, (b) nhét trong repo, (c) workspace riêng.
EN (a) shared config-tenant, (b) inside the repo, (c) separate workspace.
L5Tách bạch + song song với BEUP cho quen tay.
EN Clean separation + parallel to BEUP for muscle-memory.
L6Chọn (c). Programmatic SEO vẫn ở repo vì là code Next.js.
EN Pick (c). Programmatic SEO stays in the repo as it's Next.js code.
Bỏ kênh newsletter
EN Skip the newsletter channel
L3TWV chưa có list/ESP.
EN TWV has no list/ESP yet.
L5YAGNI — đừng làm kênh chưa có nơi gửi.
EN YAGNI — don't build a channel with nowhere to send.
L6twv-multiply không xuất newsletter (mở lại khi có ESP).
EN twv-multiply skips newsletter (revisit when an ESP exists).
YouTube đi qua n8n
EN YouTube goes through n8n
L3Buffer free cap 3 kênh; FB+LI đã chiếm chỗ.
EN Buffer free caps at 3 channels; FB+LI take the slots.
L4(a) nâng cấp Buffer, (b) xuất YouTube bằng n8n.
EN (a) upgrade Buffer, (b) publish YouTube via n8n.
L5Dùng hạ tầng đã có trước khi trả tiền.
EN Use existing infrastructure before paying.
L6YouTube qua n8n; Buffer giữ FB+LI.
EN YouTube via n8n; Buffer keeps FB+LI.
Bỏ hẳn nhóm skill product hoá
EN Drop the product-shipping skills entirely
L3TWV không bán template Excel/Sheets/n8n.
EN TWV sells no Excel/Sheets/n8n templates.
L5Đừng port thứ không có đối tượng dùng.
EN Don't port what has no user.
L6SKIP: beup-excel-build, beup-forge, beup-product-launch, beup-flw.
EN SKIP: beup-excel-build, beup-forge, beup-product-launch, beup-flw.
Explainer song ngữ VI/EN, chạy on-demand
EN Bilingual VI/EN explainer, on-demand
L2Bạn cần HIỂU cách làm, nên VI là chính; EN để chia sẻ sau.
EN You need to UNDERSTAND the method, so VI leads; EN for sharing later.
L5Học bằng tiếng mẹ đẻ trước, tái dùng public sau.
EN Learn in the mother tongue first, reuse publicly later.
L6Thêm nhánh render VI/EN; deploy SSH giữ nguyên. (chính trang này)
EN Add a VI/EN render branch; keep SSH deploy. (this very page)
Files
Artifact map
| Path | What | Who reads it |
|---|---|---|
~/.claude/plans/r-so-t-c-c-skill-fizzy-knuth.md | Bản plan đã duyệt: reuse map + org + roadmap EN Approved plan: reuse map + org + roadmap | Trang |
~/.claude/skills/twv-{blog,publish,video,seo-ux} | 4 skill TWV đã port, đang chạy EN 4 ported TWV skills, live | Pipeline |
vietconnect/scripts/twv-automation/wp_twv.py | Wrapper WordPress + Buffer (sẽ chuyển sang workspace) EN WordPress + Buffer wrapper (to move into workspace) | twv-publish |
~/twv-workspace/ (sẽ tạo) | Kho content-ops mới, mirror ~/beup-workspace EN New content-ops workspace, mirrors ~/beup-workspace | All twv-* skills |
explainer.tradewithviet.com | Trang này — explainer song ngữ của session EN This page — bilingual session explainer | Trang (password) |
Pending manual actions — required before fully live
- Lấy + ghi cứng Buffer channel IDs (FB/LI); nối YouTube qua n8n.EN Fetch + hardcode Buffer channel IDs (FB/LI); wire YouTube through n8n.
- Dựng ~/twv-workspace/ và chuyển scripts/twv-automation/ sang, sửa path trong 4 skill.EN Scaffold ~/twv-workspace/ and migrate scripts/twv-automation/, fix paths in the 4 skills.
- Build theo thứ tự: tách twv-images → twv-multiply ⭐ → twv-clip.EN Build in order: extract twv-images → twv-multiply ⭐ → twv-clip.
- Thêm chế độ render VI/EN vào skill explainer (để lần sau khỏi làm tay).EN Add a VI/EN render mode to the explainer skill (so next time isn't manual).
- Chốt nơi lưu bản review cố định: vietconnect/docs/ hay ~/twv-workspace/?EN Decide a permanent home for the review doc: vietconnect/docs/ or ~/twv-workspace/?
Self-testKiểm tra hiểu bài
Kiểm tra hiểu bàiEN Check your understanding
Vì sao twv-multiply là skill được ưu tiên port số 1?
EN Why is twv-multiply the #1 port priority?
Vì sao YouTube phải đăng qua n8n thay vì Buffer?
EN Why must YouTube publish via n8n instead of Buffer?
Vì sao ~/twv-workspace tách riêng, nhưng programmatic SEO vẫn ở trong repo vietconnect?
EN Why is ~/twv-workspace separate, yet programmatic SEO stays in the vietconnect repo?
Nói theo cách của bạn: vì sao SEO collectors và humanizer-lint được DÙNG LẠI mà không fork?
EN In your own words: why are the SEO collectors and humanizer-lint REUSED without forking?
Mastery checklist — tick what you can explain unprompted