Playbook sản xuất quảng cáo tuyển sinh VinUni 2026 trên PAM — bảy placement từ một concept, ba lần chạy có đối chứng, mười ba lỗi ghi nhận và vá.
Bảy placement vẽ đúng tỷ lệ, chuẩn hoá về cùng diện tích. Khoảng cách giữa 8:1 và 2:3 chính là bài toán mà playbook phải giải.
Tài liệu PAM ghi rõ: Playbook re-adapt mỗi lần chạy, không đảm bảo tái tạo y hệt 100%. Hứa hẹn "chạy lại ra kết quả giống hệt" là hứa sai với chính công cụ. Nên câu hỏi phải đổi: nếu nền tảng cố tình không tất định, thì playbook đóng góp gì?
Hai lần chạy có đối chứng cho câu trả lời — và nó không phải câu trả lời được kỳ vọng ban đầu.
Playbook không làm PAM tất định. Nó đẩy thời điểm phát hiện lỗi từ cuối quy trình lên đầu quy trình.
Ở Run A (chưa lưu playbook), agent tự đi thẳng, không hỏi về logo — lỗi chỉ lộ ra ở bước Final touches, khi đã render xong và phải vá thủ công. Ở Run B (playbook đã lưu và bật), agent nạp playbook rồi chủ động hỏi trước: "Bạn muốn dùng phiên bản logo VinUni nào?"
Cùng một rủi ro, hai thời điểm phát hiện khác nhau: một bên là vá sau khi hỏng, một bên là câu hỏi năm giây. Với hệ thống không thể tất định hoá, đó có lẽ là định nghĩa thực tế nhất của "reliable".
| Mục | Yêu cầu | Cách xác minh |
|---|---|---|
| Logo đã upload & parse | Đủ biến thể cần dùng | Brand Assets → Reusable Elements có Design Element riêng |
| Ảnh nền / hero đã parse | Layer tách được rõ | Kiểm Design Element |
| Nội dung asset khớp tên file | Mở từng Design Element xem bằng mắt | Không tin tên file — xem mục lỗi F-C1 |
| Guideline màu / typography | Palette + font đã nhập | Customize → Brand Guidelines |
| QC checklist | Đã điền tiêu chí bám brand | Settings → QC Check list |
| Quyền người chạy | ≥ Editor | Settings → Team |
| Trường | Ghi chú |
|---|---|
| hero_asset_id | ID Design Element đã xác minh bằng mắt — không mô tả bằng lời |
| logo_asset_id | Ghi rõ biến thể nào, kèm mô tả nội dung thật |
| angle | Học bổng · Tính năng · Khan hiếm |
| headline | Viết sẵn nguyên văn, kèm giới hạn ký tự |
| cta | Tách riêng khỏi headline — không lặp cụm từ |
| ratios[] | Chọn từ 11 preset có thật của PAM |
| model | Cố định toàn batch, không đổi giữa chừng |
| ✕ | Hình người nổi tiếng có thật — hard wall, không ngoại lệ |
| ✕ | Mô tả sản phẩm/logo bằng lời khi đã có layer parsed |
| ✕ | Nhồi toàn bộ reference — chỉ chọn có chủ đích |
| ✕ | Để Mode ở Auto trong batch chính thức |
| ✕ | Đổi model giữa các creative trong cùng batch |
| ✕ | Bịa số liệu, thứ hạng, giải thưởng ngoài tài liệu nguồn |
Playbook này không cố ép PAM tất định. Nó khoanh vùng chỗ nào biến thiên là rủi ro và khoá chặt; chỗ nào biến thiên là giá trị thì để mở. Đây là trục thiết kế chi phối toàn bộ tám bước.
Tám bước, mỗi bước có một gate phải thoả mới đi tiếp. Các gate in đỏ là những gate được thêm vào sau khi chạy thật và gặp lỗi.
Xác nhận toàn bộ Prerequisites. Mở từng Design Element xem nội dung thật, không đọc tên file.
Gate — Nội dung mỗi asset khớp tên gọi (thêm sau F-C1)Chốt toàn bộ copy hai ngôn ngữ trước khi mở PAM. Ép quyết định nội dung ra khỏi vòng lặp chat.
Gate — Không còn ô trốngMột session cho một chiến dịch. Pin Create thủ công — Auto có thể route nhầm sang Adapt.
Gate — Pin lại mỗi session mới, cấu hình không tự giữ (thêm sau F-B1)Dùng nút "Attach reference image" → tab Assets. Gõ ký tự @ trực tiếp không mở được autocomplete.
Gate — Nếu picker lỗi, KHÔNG mô tả asset bằng lời thay thế. Dừng lại xử lý. (thêm sau F-B2)Chốt bố cục greyscale trước khi tốn công render màu. Đây là điểm tách quyết định cấu trúc khỏi quyết định thẩm mỹ — để màu sắc không đánh lừa việc đánh giá bố cục.
Gate — Layout thể hiện rõ eye-flow dẫn tới CTATừ layout đã chốt. Dùng "Generate 4 more" nếu chưa đạt, không hạ tiêu chuẩn.
Gate — Logo và hero giữ đúng, không bị vẽ lạiKiểm slot "Brand logo" trước khi Enhance. Đính kèm ảnh logo làm reference không tự động đưa logo vào artifact — đây là hai cơ chế tách biệt.
Gate — Kiểm slot logo có nội dung gì, không chỉ có hay không (thêm sau F-A5 & F-C2)Chọn nhiều tỷ lệ cùng lúc từ menu Options. Resize là re-layout có suy luận, không phải scale — mỗi tỷ lệ vẫn phải QC riêng.
Gate — Mỗi size: logo không đè, copy không cắt, safe-zone không vi phạmÁp rubric v2. Sau đó lưu playbook vào Customize → Playbooks để lần chạy sau agent tự khớp qua cơ chế "Find playbooks".
Gate — Lưu playbook TRƯỚC batch tiếp theo, không phải sau (thêm sau F-A4)
| 01 | Đúng kích thước yêu cầu |
| 02 | Logo đúng biến thể, xuất hiện đúng một lần, không méo, không bị đè |
| 03 | Hero là layer đã parse và đã xác minh nội dung |
| 04 | Headline đúng chính tả, đủ dấu tiếng Việt |
| 05 | Không lặp cụm từ giữa headline và CTA |
| 06 | Không chứa vật thể lạ ngoài phạm vi quảng cáo |
| 07 | Copy nằm trong safe-zone kênh đích |
| 08 | Màu trong palette brand |
| 09 | Đã qua Enhance, có version ghi nhận |
Quy ước đặt tên · {brand}_{campaign}_{angle}_{ratio}_{lang}_v{n}
Đây là so sánh sạch nhất chứng minh playbook có tác dụng nhân quả, không phải trùng hợp.
| Slot ở Final touches | Run A — chưa có playbook | Run B — playbook đã lưu |
|---|---|---|
| Brand logo | ✕ "No logo — add one" | ✓ "Sharpen & cleanly integrate" |
| Hero product | ✓ Có — nhờ đính kèm asset | ✕ "No product — add one" |
| Bước dò playbook | "No playbook matched" | "Ran Load playbook" |
| Xử lý logo | Tự đi thẳng, không hỏi | Chủ động hỏi biến thể logo |
Cách đọc: ô logo đảo từ lỗi sang đạt, với biến số duy nhất thay đổi là playbook — đây là bằng chứng nhân quả. Ô hero đảo ngược lại, nhưng là hệ quả trực tiếp của sai lệch input đã khai báo (picker attach lỗi nên Run B chạy text-only). Hai ô đảo chiều theo đúng hai nguyên nhân đã biết, thí nghiệm không bị nhiễu.
Lưu ý về tính hợp lệ: Run B không phải phép đo variance thuần tuý. Nó trả lời một câu hỏi khác — playbook đã lưu có bù đắp được phần input thiếu không. Cần nói rõ điều này thay vì trình bày B như bản lặp lại y hệt của A.
Vì sao đây là finding quan trọng nhất: toàn bộ playbook dựa trên nguyên tắc "dùng asset đã parse thay vì mô tả bằng lời, để tránh identity drift". Trường hợp này cho thấy nguyên tắc đó có một điều kiện tiên quyết chưa từng được nêu — asset đã parse phải đúng là thứ nó tự nhận.
Nghịch lý: Run A dùng lệnh text để thêm logo lại cho kết quả đúng hơn Run B dùng asset đã parse. Điều này đảo ngược một phần giả định thiết kế ban đầu.
Mỗi lỗi được phân loại theo câu hỏi cốt lõi: biến số này thuộc nhóm khoá cứng hay thả tự do? Nếu khoá mà vẫn trôi, đó là lỗ hổng thật của playbook. Nếu thả mà "lỗi", cần xét lại có thực sự là lỗi không.
Ba Design Element cùng tên, một trong đó chứa ảnh sản phẩm không liên quan. Creative bị loại ở gate.
Vá — Thêm bước xác minh nội dung asset bằng mắt vào Pre-flightVá F-A5 bằng lệnh text "thêm logo vào góc trên" trong khi concept đã có sẵn logo → hai logo.
Vá — Gate kiểm slot logo có nội dung gì, không chỉ có hay khôngĐính kèm logo từ brief nhưng Final touches vẫn báo "No logo". Reference image và slot logo là hai cơ chế tách biệt.
Vá — Playbook lưu vào PAM khiến agent hỏi logo ngay từ đầuTính năng Auto QC có sẵn nhưng chưa ai điền, kể cả trên brand đang chạy thật.
Vá — Đã điền 11 tiêu chí bám Brand GuidelinesNút "Dùng danh sách chuẩn" sinh ra 11 tiêu chí về an toàn giao thông — bánh xe phải quay, thắt dây an toàn.
Đề xuất — PAM nên sinh QC mặc định từ chính Brand GuidelinesLỗi tái lặp ổn định, không phải trục trặc ngẫu nhiên. Phải qua nút "Attach reference image" → tab Assets.
Vá — Sửa hướng dẫn Bước 3Chạy "Find playbooks" kể cả khi mode đã pin cứng — cơ chế không có trong docs công khai.
Tận dụng — Lưu playbook vào PAM để lần chạy sau tự khớpSession mới tự reset về Auto dù lần trước đã pin Create.
Vá — Pin mode là thao tác lặp lại mỗi sessionSuy luận của agent nói "campus photo is attached" trong khi không có. PAM cảnh báo độc lập ở bước Concept, trước khi render.
Ghi nhận — Lớp kiểm tra asset độc lập với lớp suy luận là thiết kế tốtRubric v1 chấm bảy creative và cho 49/49 tiêu chí đạt. Đọc đúng, đây không phải thành công — đây là tín hiệu thang đo bị bão hoà. Một thước đo không làm trượt được gì thì không đo được gì.
| Vấn đề của v1 | Hệ quả |
|---|---|
| Toàn bộ tiêu chí nhị phân | Không phân biệt được "vừa đủ đạt" với "xuất sắc" |
| Ngưỡng ở mức tối thiểu | "Logo có hiện diện không" — không hỏi hiện diện mấy lần |
| Không có tiêu chí so sánh | Mọi mẫu tồn tại độc lập, không ai thua ai |
| Không chống thiên kiến | Người chấm chính là người làm ra sản phẩm |
v1 bỏ sót cả hai lỗi nghiêm trọng nhất — tai nghe và trùng logo — vì không có tiêu chí nào hỏi đến chúng.
| Lớp | Vai trò | Cơ chế |
|---|---|---|
| LỚP 0 | Hard gates — nhị phân | Trượt một mục = loại thẳng, không chấm tiếp. Tám gate, trong đó G8 "không chứa vật thể lạ" là gate thêm sau F-C1. |
| LỚP 1 | Chất lượng có thang 1–5 | Bảy tiêu chí, mốc neo cụ thể ở mức 1/3/5. Q1 khả năng đọc ở kích thước thật nhân đôi trọng số. |
| LỚP 2 | Xếp hạng bắt buộc | Cấm hoà. Bắt buộc viết một câu về tấm hạng nhất và một câu về tấm hạng cuối. |
| Chỉ số chẩn đoán rubric | Giá trị | Kết luận |
|---|---|---|
| Tỷ lệ ô đạt điểm tối đa | 14% | Không bão hoà (ngưỡng ≤ 40%) |
| Tỷ lệ trượt gate | 17% | Rubric đã có khả năng làm trượt |
| Độ phân tán điểm | chưa đủ | Mới chấm đầy đủ 1 creative ở Lightbox |
v2 cũng có lỗ hổng — ba lần, ba kiểu khác nhau.
| Lộ ra khi | Thiếu gì | Loại lỗ hổng |
|---|---|---|
| Áp vào batch 1 | Gate G8 — vật thể lạ | Thiếu tiêu chí. Tai nghe lọt qua vì không ai nghĩ phải hỏi. |
| Áp vào batch 1 | Q8 — lặp cụm từ headline/CTA | Thiếu tiêu chí. |
| Áp vào batch 2 | visual_vocabulary | Thiếu ngữ cảnh. Rubric ngầm giả định người chấm thuộc ngôn ngữ thị giác của brand — giả định mâu thuẫn với mục đích của playbook là giao cho người khác chạy. |
Hai lỗ hổng đầu sửa bằng cách thêm dòng vào rubric. Lỗ hổng thứ ba thì không — nó phải sửa ở đầu vào, bằng cách yêu cầu brand khai báo trước các phần tử trang trí cố ý. Đây là loại lỗi mà thêm bao nhiêu tiêu chí cũng không giải quyết được.
Framework đánh giá cũng phải được đánh giá — và mỗi lần áp vào dữ liệu thật lại lộ thêm một chỗ hở.
| Hạng | Creative | Lý do |
|---|---|---|
| 01 | 2:1 | Tỷ lệ gần bố cục gốc nhất, khoảng thở tốt nhất. Chỉ mắc lỗi trùng logo. |
| 02 | 4:5 | Sạch, dọc vừa phải, campus còn nhận diện được. |
| 03 | 3:4 | Tương đương 4:5, hơi chật hơn. |
| 04 | 6:5 | Diện tích nhỏ khiến chữ co lại rõ rệt. |
| 05 | 1:1 Run B | Typography và bố cục tốt nhất batch — nhưng có tai nghe, không dùng được. |
| 06 | 8:1 | Dồn nén nặng nhất, khả năng đọc kém nhất. |
Bỏ 8:1, không phải vì xấu nhất, mà vì ở 728×90 thật headline gần như không đọc được trong lần lướt đầu. Một banner không truyền được thông điệp thì mọi ưu điểm khác đều vô nghĩa.
Đáng chú ý: creative có lỗi nội dung nặng nhất (1:1 Run B) lại không bị xếp cuối, vì lỗi đó sửa được bằng cách đổi asset. Giới hạn của 8:1 là giới hạn cấu trúc.
Câu hỏi cần trả lời: playbook chỉ hợp với đúng một bộ input, hay dùng lại được? Run C đổi angle sang Trải nghiệm quốc tế, headline khác, CTA khác — và chạy sau khi playbook đã được vá bằng chín lỗi của Run A và B.
Agent mở đầu Run C bằng câu chưa từng xuất hiện ở Run A:
"The playbook requires I verify assets first and ask which VinUni campus image to use for the background, plus which logo."
Guardrail xác minh asset được thêm vào playbook sau khi gặp lỗi tai nghe — và agent tự nêu lý do là "playbook yêu cầu". Vòng lặp sửa lỗi khép kín: gặp lỗi → viết vào playbook → lần chạy sau agent tự chặn.
Câu hỏi làm rõ của PAM có ô "Pick an option above, or type your own answer…". Thay vì bấm chip mù, trả lời bằng chữ nêu đích danh asset bị nhiễm. Agent phản hồi:
"The VINUNI_LOGO-FULL asset actually contains headphones and must NOT be used. So I'll set logoChoice: 'none' and render the VINUNIVERSITY wordmark via typography instead."
Giải pháp tốt hơn dự kiến: không cần xoá asset, không cần sửa thư viện — chỉ cần nói rõ, agent tự chọn đường vòng an toàn.
Ở Final touches, Run C hiện "Brand logo: No logo — add one" — triệu chứng giống hệt lỗi F-A5. Nhưng lần này slot trống là đúng theo thiết kế: logo được vẽ bằng typography, không composite.
Nếu áp máy móc gate "thấy No logo thì thêm logo", sẽ tái tạo chính xác lỗi trùng logo F-C2. Gate phải kiểm ý định, không kiểm trạng thái slot đơn thuần.
| Hạng mục | Batch 1 · Học Bổng | Batch 2 · Trải nghiệm quốc tế |
|---|---|---|
| Số creative | 7 | 7 |
| Nguồn logo | Asset nhiễm → tai nghe | Typography — không dùng asset |
| Số lần logo xuất hiện | Hai lần trên bản resize | Đúng một lần, nhất quán mọi tỷ lệ |
| Vật thể lạ | Tai nghe | Không còn |
| Dấu tiếng Việt | Sạch | Sạch, line-height thoáng |
| Hard gate (8 mục) | Trượt G8 — vật thể lạ | Qua toàn bộ 8/8 |
| CTA | Lặp cụm từ với headline | Tách riêng — "Tìm hiểu ngay" |
| Số Directions nhận được | 4 | 3 |
| Playbook được nạp | Không (chưa tồn tại) | Có — agent tự khớp |
F-C4: số lượng Directions không cố định — Run A và B cho 4 layout, Run C cho 3. Playbook không nên giả định luôn có 4 lựa chọn.
Khi chấm batch 2, các dải mũi tên đỏ và xanh bị nhận nhầm là mũi tên eye-flow của bước Directions sót lại — và suýt bị xếp thành lỗi chặn xuất bản. Thực tế đó là phần tử trang trí thuộc bộ nhận diện VinUni, xuất hiện nhất quán cả trong batch sản xuất từ tuần trước.
Lỗ hổng thật nằm ở đây: rubric v2 ngầm giả định người chấm đã thuộc ngôn ngữ thị giác của brand. Nhưng playbook tồn tại để giao cho người khác chạy — và người đó rất có thể không có ngữ cảnh brand. Giả định này vì thế mâu thuẫn với chính mục đích của playbook.
Vá: thêm mục visual_vocabulary vào Campaign Input Sheet — liệt kê các phần tử đồ hoạ cố ý của brand (dải chéo, mũi tên, hoa văn) để QC không đánh nhầm chúng thành lỗi. Không có mục này, mọi người chấm mới đều sẽ tạo ra báo động giả giống nhau.
| Đề xuất | Xuất phát từ |
|---|---|
| Cảnh báo trùng tên Design Element | F-C1 — ba asset cùng tên VINUNI_LOGO-FULL- với nội dung khác hẳn nhau, không có gì phân biệt trong UI |
| Sinh QC checklist mặc định từ Brand Guidelines | F-A2 — template hiện tại là checklist an toàn giao thông, không liên quan brand nào |
| Cho @-mention hoạt động khi gõ trực tiếp | F-A3 — docs mô tả @-mention nhưng UI chỉ nhận qua nút Attach |
| Cảnh báo khi thêm logo vào ảnh đã có logo | F-C2 — lệnh "thêm logo" tạo ra logo thứ hai mà không cảnh báo gì |
| Giữ pin mode qua session | F-B1 — hoặc ít nhất hiển thị rõ mode đã reset về Auto |
| Sửa nút Replace ở slot Brand logo | Bấm Replace mở nhầm modal "Select place images" — picker địa điểm, sai ngữ cảnh |
| Version history cho video | Video hiện không resize và không version được, kém linh hoạt hơn hẳn ảnh |