Trade With Viet
Session Explainer
Internal use only — enter access password
pipeline

From a competitor teardown to a QA-gated TWV video engine

2026-06-23 · explainer.tradewithviet.com

We studied a rival channel, then rebuilt how TradeWithViet picks topics, sources footage, and quality-checks every video before it ships.

Two connected pieces of work. First, a deep teardown of the APS Logistics channel turned into a concrete TWV content strategy (what to make, for whom, in what voice, with what visuals). Second, a full upgrade of the video production pipeline: fixed the footage search that kept returning generic clips, and added a real QA gate so nothing weak gets published as cadence scales.

StatusBuilt + verifiedScopeTWV content + video pipelineDate2026-06-23

6-layer thinking chainChuỗi tư duy 6 tầng

L1
Raw requestYêu cầu gốc
"Learn from this TikTok channel... very detailed deep dive." Then: "anything in the video pipeline I'm missing? I want lots of views and a QA gate. And rethink the Envato footage — it's low quality."
L2
Reframe — what was really neededDiễn giải lại — nhu cầu thật
The real need was not 'admire a competitor' or 'add one feature'. It was: make TWV's short videos actually win distribution (views, watch-time, shares) AND stop shipping off-brand or low-relevance clips. That means a topic strategy worth filming, footage that genuinely looks like Vietnam, and an automatic gate that blocks weak clips before they reach the audience.
L3
ConstraintsRàng buộc
  • The competitor (APS) sells to Vietnamese exporters with fear hooks; TWV sells Vietnam TO foreign buyers and investors, so its brand gate forbids negative framing.
  • Envato Elements has very little real Vietnam footage (a live search for 'vietnam coffee farmer' returned Colombia, Brazil, and Africa clips).
  • Short-form had no video QA at all, only a copy check; long-form had three gates.
  • Gemini AI credits are depleted (429), which limits AI vision checks and the AI voiceover.
  • The render engine and beatsheet are shared with the BEUP brand, so TWV-only changes must live in separate helpers, not in the shared core.
L4
Options weighedCác lựa chọn cân nhắc
  • Copy APS wholesale — fast, but the fear hooks break TWV's pro-Vietnam brand. Cost: brand damage.
  • Just buy more stock subscriptions — doesn't fix the real bug (wrong sort order + no filters). Cost: money, no quality gain.
  • Add one QA check — cheap, but misses hook/captions/footage/specs. Cost: weak clips still ship.
  • Adapt the strengths + fix the root causes + build a tiered gate (chosen) — more work, but durable.
L5
Principle invokedNguyên tắc áp dụng
Borrow the mechanics, not the message. Fix the root cause, not the symptom. And make quality a gate the system enforces, not a habit a human remembers.
L6
Pick + recognition signalLựa chọn + dấu hiệu nhận biết
Adapted APS's specificity, timeliness, and visual authority while inverting the framing for TWV's audience; fixed the Envato search at the source (relevance + filters + Vietnam-weighted scoring); and built a tiered QA gate wired into the pipeline. Rejected the copy-paste and buy-more-stock paths. Recognition signal: when a competitor 'works,' separate WHY it works (mechanics) from WHO it serves (message) before importing anything.

The TWV video pipeline, end to end (the QA gate is new)

1
Pick a topic
Pull a ready-to-film angle from the new topic engine (timely, specific, audience-tagged).
2
Source footage
Find authentic Vietnam b-roll: relevance search + filters, Pexels-first for Vietnam, AI only for non-real hero shots.
3
Generate the clip
Render the vertical video with voiceover, captions, brand chip (existing beup-clip engine).
4
QA GATE (new)
/twv-video-qa returns BLOCK / FLAG / PASS. BLOCK stops the clip from ever being uploaded.
5
Distribute
Upload to WordPress, schedule to LinkedIn / Facebook / YouTube via Buffer at audience-aware times.
6
Monitor + learn
Track performance, flag weak clips against a baseline, A/B test titles + thumbnails, feed lessons back to step 1.

How the pieces fit together

Two layers. A strategy layer decides what to make and how it should look and sound. A production layer turns that into finished, quality-checked videos. The QA gate sits between 'made' and 'published' so it is the single point that protects the channel.

Content strategytwv-content-strategy.md + topic-engine.mdFind footage/twv-video-assets (Envato + Pexels)Make the clipbeup-clip render engineQUALITY GATE (new)/twv-video-qa - BLOCK / FLAG / PASSPublishWordPress + Buffer (LI / FB / YT)Measure + learnmonitor-clips.py + A/B testlessons feed next topic
Technical termThuật ngữ kỹ thuậtPlain nameTên dễ hiểuRoleVai trò
topic-engine.mdWhat to filmA ready-to-use backlog of ~40 video angles, each tagged by audience and framing, seeded from verified, timely trade facts.
/twv-video-assetsFootage finderSearches Envato by relevance with real filters, prefers Pexels for Vietnam shots, scores each clip on how Vietnamese and relevant it actually is.
/twv-video-qaThe gateRuns 8 automated checks on the finished clip and returns BLOCK, FLAG, or PASS before anything is uploaded.
monitor-clips.pyScoreboardCompares each new clip to a baseline of recent clips and flags underperformers so the next batch improves.

Read it top to bottom: strategy decides the topic and the look, the footage and render steps build the clip, the gate decides if it is good enough, then it publishes and the results loop back to sharpen the next topic.

Lesson to carry forward: the gate is the one place that turns 'we have standards' into 'the system enforces standards.' Put quality where it cannot be skipped.

Layered decision cardsCác quyết định theo tầng

Learn the competitor's mechanics, invert its message
L1Learn from APS Logistics, but it belongs to Trade With Viet.
L2APS wins with hyper-specific, timely, news-pegged topics and a strong map-arc visual style, aimed at scared Vietnamese exporters. TWV speaks to foreign buyers and investors and must keep Vietnam looking strong.
L3TWV's brand gate forbids fear or negative framing of Vietnam.
L4Copy APS hooks (brand risk) / ignore APS (miss the playbook) / borrow mechanics + re-point audience + invert framing (chosen).
L5Borrow the mechanics, not the message.
L6Kept APS's specificity, timeliness, and visual authority; built 3 audience tracks (buyer, investor, Vietnamese exporter) with framing mixed by topic; turned 'fear' hooks into 'opportunity' for buyers. Recognition signal: when importing a rival's tactic, always ask 'does this serve my audience or theirs?'
Fix the footage search at the root: relevance, not popularity
L1The Envato footage you pick is low quality and low relevance.
L2The search was sorted by 'popular' (most-downloaded), which buries niche, authentic Vietnam clips under generic clips everyone uses, and it never applied the quality filters it claimed to.
L3Search terms capped at 60 characters; the catalog is English-tagged.
L4Buy more stock libraries (no fix) / hand-pick every clip (not scalable) / fix the query: relevance sort + real filters + Vietnam-weighted scoring (chosen).
L5Fix the root cause, not the symptom.
L6Switched to relevance sort, passed real resolution/orientation/category filters, added a transparent score that rewards Vietnam-specific, high-resolution, on-topic clips and penalizes over-used ones. Recognition signal: when results are bad, check the sort order and filters before blaming the source.
Pexels-first for Vietnam shots (because Envato lacks them)
L1Make the footage genuinely look like Vietnam.
L2A live test proved premium Envato has almost no Vietnam footage; the old pipeline was silently using a Brazil clip for a Vietnam story.
L3Free libraries (Pexels) have real Vietnamese creators; premium does not guarantee local.
L4Always Envato-first (returns wrong-country clips) / always Pexels (misses premium b-roll) / branch by query: Pexels-first when the shot is Vietnam-specific (chosen).
L5Authenticity beats production polish for trust.
L6For Vietnam-specific queries the pipeline now searches Pexels first, Envato second; generic shots stay Envato-first. Recognition signal: 'premium' is about polish, not about whether the clip is actually from the place you claim.
AI footage for mood shots only, never for real claims
L1Diversify footage sources, including AI generation.
L2AI video (Veo/Higgsfield) can fill hard-to-source establishing shots, but using it for a shot that implies 'this is a real Vietnamese factory/supplier' would be dishonest and break trust.
L3Gemini credits are currently depleted anyway, limiting AI use.
L4Use AI freely (credibility risk) / ban AI (lose a useful tool) / allow AI for non-evidentiary hero shots only (chosen).
L5Never let a tool make a claim the footage cannot honestly back.
L6AI is permitted only for stylized, non-evidentiary establishing/transition shots, tagged so it is never mistaken for real proof. Recognition signal: ask 'is this shot evidence or atmosphere?' before allowing anything synthetic.
A tiered QA gate, so a quota outage never blocks publishing
L1Add a QA gate so everything passes quality before publish.
L2The best checks (does the hook stop the scroll, is the footage really Vietnam) need AI vision, which is quota-limited and was down (429). A gate that hard-fails when AI is down would block all publishing.
L385-90% of viewers watch muted, so captions and on-screen text are non-negotiable; AI vision is unreliable on free/quota limits.
L4All checks block (fragile) / all checks advisory (toothless) / tier them: cheap deterministic checks BLOCK, AI checks only FLAG (chosen).
L5A safety gate must degrade gracefully, never become a single point of failure.
L6Specs, captions, and brand are hard BLOCK gates; hook and footage relevance are advisory FLAGs; a --skip-vision flag gives a fast, free deterministic verdict. Recognition signal: when a check depends on a flaky external service, make it advisory, not blocking.
The bug I caught: classify the result, not the query
L1Verify the footage fix actually works on real data.
L2Testing on live Envato results revealed the new Vietnam scorer marked a Brazil clip as a perfect Vietnam match, because it read the search query (which always says 'vietnam') instead of the clip's own title.
L3Every TWV query is Vietnam-anchored by rule, so folding the query into the check makes every result look Vietnamese.
L4Ship as-is (re-introduces the original bug) / remove the score (lose the filter) / read the result's title and tags, not the query (chosen).
L5Judge a thing by its own properties, not by what you were looking for.
L6Fixed both copies of the classifier to read the clip's title/tags; re-tested live: Colombia/Brazil/Africa now score 'generic' and get rejected, Vietnam scores 'exact'. Recognition signal: if a filter passes everything, check whether it is accidentally reading the input instead of the candidate.

Artifact mapBản đồ tệp tạo ra

PathĐường dẫnWhatLà gìWho reads itAi dùng
docs/twv-content-strategy.mdThe competitor teardown + the TWV content playbook (beats, audience tracks, framing, visual learnings)Anyone planning TWV content
scripts/twv-automation/content/topic-engine.md~40 ready-to-film video angles, tagged by audience and framingThe topic-pick step
docs/twv-video-production.mdProduction + distribution standard: per-platform 2026 rules + a 22-item pre-publish checklistAnyone making or QA-ing a TWV video
~/.claude/skills/twv-video-assets/SKILL.mdThe fixed footage search: relevance sort, real filters, Vietnam-weighted scoring, Pexels-first, AI rulesThe footage step
scripts/twv-automation/envato-asset-search.pyScoring + Vietnam classifier + extended manifest (bug fixed)Footage scoring
scripts/twv-automation/audit-attribution.pyReports what % of a batch's footage is actually Vietnam-specificFootage quality audit
~/.claude/skills/twv-video-qa/The new tiered QA gate: 8 checks + BLOCK/FLAG/PASS reportThe gate before publish
scripts/twv-automation/monitor-clips.pyFlags clips below a recent baseline (real percentile math)The measure + learn step
scripts/twv-automation/make-variants.pyffmpeg per-platform cuts (TikTok/Reels trim, LinkedIn 4:5, end-card)Platform-specific publishing
scripts/twv-automation/fresh-music-pool.pyRanks the music cache by freshness for time-sensitive clipsMusic selection
What needs you before it is fully live
  • Top up Gemini billing (it returned 429 'credits depleted'). This re-enables the AI vision QA checks and the AI voiceover. Until then, run the QA gate with --skip-vision for the fast deterministic verdict.
  • Wire the pending analytics connectors (YouTube, GA4, LinkedIn per-post). Buffer and Facebook are live; the monitor computes on whatever real metrics it is given.
  • Re-source old footage batches (e.g. pepper, cashew) — the audit shows them at 0% Vietnam-specific; they predate the fix.
  • Explainer password: explainertwv (tick 'Remember me' to skip the gate next time).

Check your understanding

Why was the Envato search returning Colombia and Brazil clips for a 'vietnam coffee' query?
Why are the AI-vision QA checks set to FLAG (advisory) instead of BLOCK (hard stop)?
In your own words: why did the Vietnam classifier bug make a Brazil clip look like a perfect Vietnam match, and what fixed it?
Mastery checklist — tick what you can explain unpromptedBảng tự đánh giá — tích những gì bạn tự giải thích được