Dựng UI với AI: cho Opus ra năm phương án và bắt mọi PR có screenshot

Cody Seibert bảo Opus đưa năm phương án menu cho game của anh, chọn một để implement, và dùng skill create-pr để mọi pull request kèm screenshot.

Đã duyệt độc lập · cập nhật 23/10/2026 · 11 min

1. Splash screen của Survive the Night: kết quả của nhiều vòng prompt

Cody nói anh muốn làm một video ngắn để chia sẻ các chiến lược của anh khi dựng một user interface, hay một HUD, tốt hơn bằng Opus 5.5 (theo video đăng ngày 07/10/2026). Thứ người xem đang thấy trên màn hình là splash screen của Survive the Night, game của anh (survivethenightgame.com).

Anh nói rõ: splash screen này là kết quả của một quá trình lặp (iterative process), anh không prompt ra nó ngay từ đầu (theo video đăng ngày 07/10/2026). Anh nói rằng nếu bạn đã có nhiều kinh nghiệm làm game, nếu bạn là một game designer, có lẽ trong đầu bạn đã sẵn câu hỏi "làm sao để có một splash screen thật cuốn hút". Còn với anh, phải mất nhiều lần prompt mới tới được chỗ này: phía sau là một đoạn 3D walkthrough của chính game, phía trước là HUD, nơi bạn có thể browse các game đang chạy, xem perks, xem achievements, leaderboard và nhiều thứ khác.

Splash screen của Survive the Night: chữ SURVIVE THE NIGHT, khung chọn survivor Hank, nút Quick Join và hàng nút Perks, Achievements, Leaderboard ở dưới
Splash screen của Survive the Night (giao diện theo video đăng ngày 07/10/2026): dòng "Scavenge by day. Board up by night. Fix the car. Get out.", khung chọn survivor (Hank, Hunter), nút QUICK JOIN cùng BROWSE GAMES, CREATE GAME, FRIENDS, phần thành tích của người chơi, và hàng nút dưới cùng LEVEL 12 · PERKS, ACHIEVEMENTS, LEADERBOARD, STATS, CONTROLS, SETTINGS. Phía sau là cảnh 3D của game.

2. Menu Escape trong một game không thể pause

Game có rất nhiều HUD khác nhau, và Cody nói anh sẽ không nói hết. Thứ anh muốn nói là: khi đã vào một game, cái menu hiện lên khi bạn bấm Escape. Menu này trước đây nằm ở dưới cùng màn hình và trông không đẹp lắm. Sau vài vòng lặp với Opus, anh cho nó sinh ra năm ví dụ, tức năm prototype khác nhau, rồi chọn cái tốt nhất trong số đó. Anh hứa sẽ cho xem ngay sau đây (theo video đăng ngày 07/10/2026).

Nhưng trước hết, anh muốn nêu một điều khi dựng user interface: bạn muốn nó nhất quán (consistent). Và khi làm game, sẽ tốt nếu bạn giữ được phần gameplay vẫn nằm trong tầm nhìn, vì game này không pause khi menu bật lên (cách game chạy theo video đăng ngày 07/10/2026). Đó là một quyết định thiết kế của game: "này, mình đang chơi một game multiplayer với nhiều người, mình không thể cứ thế pause game". Hệ quả là zombie vẫn có thể lao tới và tấn công bạn trong lúc menu đang mở.

Cảnh trong game: góc nhìn thứ nhất cầm dao trên con đường giữa rừng, một con zombie đứng gần chiếc xe tải phía xa
Trong game (theo video đăng ngày 07/10/2026): góc nhìn thứ nhất cầm dao trên con đường rừng, minimap và nhiệm vụ "Scavenge and find the car supplies before dark" ở góc trái, thanh máu 100 ở góc dưới. Góc trái dưới hiện dòng "[debug] spawn walker 1" và "spawned 1 x Walker": một con zombie vừa được spawn và đang đứng gần chiếc xe tải phía xa.

3. Spawn một con zombie để thử: menu mở mà vẫn thấy game

Để minh hoạ, Cody spawn nhanh một con zombie. Anh gõ "zombie" rồi chọn spawn một con walker thường, và người xem thấy con zombie bắt đầu đi về phía anh. Rồi anh mở menu Escape: anh vẫn thấy zombie đang tiến tới, vẫn thấy màn hình chuyển sang đỏ khi nó tấn công, và thanh máu vẫn hiện rõ ở dưới cùng (theo video đăng ngày 07/10/2026).

Menu Escape dạng rail bên trái với các mục Back to the game, Invite friends, Perks, Achievements, Bestiary, Friends, Settings, Controls, Leave game; bên phải vẫn thấy con đường trong rừng
Menu Escape hiện tại của game (theo video đăng ngày 07/10/2026): tiêu đề là tên phòng chơi, dòng "LIVE · THE WORLD KEEPS MOVING", danh sách dọc BACK TO THE GAME, INVITE FRIENDS, PERKS, ACHIEVEMENTS, BESTIARY, FRIENDS, SETTINGS, CONTROLS và LEAVE GAME màu đỏ (giữ Enter để rời). Toàn bộ nửa phải màn hình vẫn là cảnh game đang chạy.

Cody nói anh đã không nghĩ tới kiểu menu này cho tới khi bắt đầu tự chơi thử game. Lúc đó anh mới nhận ra: "biết không, có lẽ mình cần thấy được chuyện gì đang diễn ra trong game", nhất là khi không thể pause (theo video đăng ngày 07/10/2026).

4. Bảo Opus ideate: năm phương án, mỗi phương án một GitHub issue

Anh lùi lại một bước để cho xem chiến lược anh đã dùng để có được menu đó. Trên GitHub có một issue tên là escape menu redesign. Quay lại danh sách tất cả các issue, anh giải thích việc mình đã làm: trong Opus, anh nói đại ý "này, tôi cần bạn redesign cái escape menu, và đưa cho tôi năm iteration khác nhau cho cách bạn sẽ tiếp cận việc này". Anh không prompt gì nhiều hơn thế. Anh chỉ nói: "tôi cần bạn ideate cho tôi, cho tôi xem thật nhiều thứ" (theo video đăng ngày 07/10/2026).

Và Opus đã tạo ra năm GitHub issue khác nhau, mỗi issue kèm screenshot khác nhau của phương án đó (theo video đăng ngày 07/10/2026).

Danh sách issue đã đóng trên GitHub của repo survive-the-night-fps, trong đó có năm issue Escape menu redesign option 1 đến option 5
Danh sách issue đã đóng của repo game trên GitHub (theo video đăng ngày 07/10/2026): năm issue "Escape menu redesign" với option 5 "a survivor's notebook", option 4 "a tabbed full-screen menu", option 3 "a quick dock along the bottom", option 2 "a squad hub card" và option 1 "a side rail that keeps the world in view", đều gắn nhãn "area: UI & HUD" và "design decision". Phía trên là các issue khác về inventory, crafting và bestiary.

5. Phương án 5: cuốn sổ tay của người sống sót

Thứ đầu tiên Cody cho xem là phương án số năm. Đây là một cách tiếp cận kiểu immersive: một trang giấy như cuốn nhật ký bạn có thể mang theo khi đang sống sót qua một trận zombie apocalypse. Trên đó cũng có game code, cũng có danh sách những người chơi khác đang ở trong game (theo video đăng ngày 07/10/2026).

Issue option 5: một trang sổ tay STILL ALIVE với danh sách đánh số, một tờ giấy note vàng chứa game code và một mảnh giấy WHO'S OUT HERE
Issue #141, "Escape menu redesign, option 5: a survivor's notebook" (theo video đăng ngày 07/10/2026): một trang sổ tay ghi "STILL ALIVE." với danh sách đánh số Get back out there, Learn a new perk, Achievements, Friends, Settings, Controls; một tờ note vàng "Bring the others in" với game code chữ lớn và nút Copy link; một mảnh giấy "WHO'S OUT HERE" liệt kê người chơi; con dấu đỏ LEAVE GAME ở cuối trang. Bên dưới là phần "What changes for players" mô tả từng chi tiết.

Nhưng khi nhìn kỹ, Cody nhận ra: một game có thể có tới 16 người chơi (theo video đăng ngày 07/10/2026). Danh sách đó rõ ràng sẽ kéo dài xuống tận dưới màn hình, nên cách này sẽ không chạy tốt. Với anh, nó giống một to-do list hay một quest log hơn. Lần đầu thấy nó, anh thấy đây là một ý tưởng hay và rất immersive, nhưng với anh nó không "hét lên" chữ splash screen.

Điểm thứ hai: nó che mất những gì đang diễn ra trong game. Nếu một con zombie đang tấn công, bạn không thể biết, trừ khi nhìn xuống thanh máu và có thể thấy nó đang tụt, hoặc màn hình chuyển đỏ (theo Cody, video đăng ngày 07/10/2026). Vì vậy anh quyết định đó không thật sự là một cách tiếp cận tốt.

6. Phương án 4: menu toàn màn hình chia tab

Phương án tiếp theo cũng che toàn bộ màn hình. Nhưng Cody thích thanh trên cùng có đủ các mục survivors, perks, achievements, và nói phần game ở đây trông đẹp (theo video đăng ngày 07/10/2026).

Issue option 4: menu toàn màn hình với hàng tab Game, Survivors, Perks, Achievements, Friends, Settings, Controls và các ô Tonight, Objective, Invite, Survivors, This run
Issue #140, "option 4: a tabbed full-screen menu" (theo video đăng ngày 07/10/2026): hàng tab GAME, SURVIVORS, PERKS, ACHIEVEMENTS, FRIENDS, SETTINGS, CONTROLS và nút đỏ BACK TO THE GAME; tab Game có ô TONIGHT (DAY 1, đếm ngược tới nightfall), OBJECTIVE 0/7 liệt kê phụ tùng xe, INVITE với game code, SURVIVORS 3/8 và THIS RUN với số kill, thời gian sống, quãng đường và số đồ đã nhặt.

Có một việc anh hay làm với các iteration này khi đã bảo Opus sinh ra nhiều ý tưởng: nhìn kỹ từng screenshot và để mình "tiêu hoá" nó một lúc. Anh thích cách phần objectives được hiển thị. Nhưng trong game, objectives vốn đã nằm sẵn trên HUD: nó cho bạn biết đã nhặt hay chưa nhặt những phụ tùng xe nào (cách game chạy theo video đăng ngày 07/10/2026). Bấm Escape chỉ để thấy lại đúng thông tin đó thì có vẻ hơi ngớ ngẩn.

Danh sách tất cả survivor trong game cũng vậy: trong game, bạn có thể bấm Tab để hiện một modal cho thấy mọi người đang chơi cùng bạn (theo video đăng ngày 07/10/2026). Thông tin này thú vị, nhưng nó đúng là mọi thứ trong game vốn luôn được hiển thị cho bạn. Vậy thì bấm Escape để làm gì cho có ích?

7. Phương án 3: thanh dock dọc đáy màn hình, và lúc modal buộc phải che

Tiếp theo là iteration số ba, và Cody nói thật lòng cái này khá tốt, không phải một cách tiếp cận tệ chút nào. Bạn vẫn thấy được toàn bộ game, vẫn biết được có zombie đang lao tới không. Ở dưới cùng, bạn có thể click để xem invites và perks (theo video đăng ngày 07/10/2026).

Issue option 3: cảnh game gần như không bị che, banner You are still out there ở trên và một hàng ô Back to the game, Invite, Perks, Achievements, Friends, Settings, Controls, Leave game ở dưới
Issue #139, "option 3: a quick dock along the bottom" (theo video đăng ngày 07/10/2026): cảnh game chỉ hơi tối đi, banner "YOU ARE STILL OUT THERE" ở trên cùng, và một hàng ô ở đáy màn hình: BACK TO THE GAME màu đỏ lớn nhất, rồi INVITE, PERKS, ACHIEVEMENTS, FRIENDS, SETTINGS, CONTROLS, LEAVE GAME. Phần "What changes for players" bên dưới giải thích các ô được đánh số 1 đến 6 để nhảy thẳng tới.

Có điều, khi bạn click vào một trong các nút đó, một modal sẽ bật lên và che màn hình. Anh click thử, chẳng hạn vào menu settings, và chỉ cho thấy có một modal che màn hình (theo video đăng ngày 07/10/2026). Vậy nên đến một lúc nào đó bạn sẽ phải che tầm nhìn, và bạn không thật sự tránh được điều đó: bạn phải có slider, có toggle button nào đó cho người dùng thấy. Có thể bạn làm nó trong suốt hơn một chút để vẫn nhìn xuyên qua được.

Đó là những thứ anh nghĩ tới khi duyệt qua các phương án: cái này sẽ chạy ra sao nếu mình đang chơi một game survival nhịp nhanh, và bất cứ lúc nào một con zombie cũng có thể lao tới tấn công mình? Anh nói anh thích phương án này lắm, nó là một trong những runner-up của anh (theo video đăng ngày 07/10/2026).

8. Một phương án khác, rồi phương án 1: rail bên trái

Cody mở thêm một phương án khác: lại bấm Escape, và một modal khổng lồ bật lên, chứa gần như cùng những thông tin bạn vốn thấy trong game. Anh nói phương án này có cái hay là cho bạn một cái nhìn lướt nhanh: "okay, mình có vài người bạn, mình có vài perk cần dùng, có thể mình có vài achievement". Nhưng tất cả những thứ còn lại như game code hay danh sách survivor thì nếu cần xem, anh có thể xem ngay trong game (theo Cody, video đăng ngày 07/10/2026).

Cuối cùng là iteration số một, theo anh là phương án đầu tiên Opus đưa ra cho anh: một menu mà bạn bấm Escape để mở, và vẫn thấy được toàn bộ game (theo video đăng ngày 07/10/2026).

Issue option 1 đã đóng: menu dọc bên trái với Back to the game, Invite friends, Perks, Achievements, Friends, Settings, Controls, Leave game, bên phải vẫn thấy rừng và con dao
Issue #137, "option 1: a side rail that keeps the world in view", đã đóng và nối với pull request #152 (theo video đăng ngày 07/10/2026): menu thành một rail dọc ở mép trái, nửa phải vẫn là cảnh game với nhãn DAY 1 và đồng hồ nightfall. Mục "What changes for players" ghi danh sách xếp theo mức hay dùng, Leave game tách riêng màu đỏ và phải giữ mới rời được; mục "Why it works" ghi danh sách dọc dễ quét bằng chuột, bàn phím hay tay cầm, và thế giới game vẫn đọc được vì không có gì pause.

9. Yêu cầu mơ hồ, năm hay mười biến thể, và giữ UI nhất quán

Sau năm vòng iteration này, Cody nói bạn hoàn toàn có thể làm mười. Nếu thật sự muốn thử nghiệm, hãy làm mười và đưa thêm cho nó các mục tiêu, tức những mối quan tâm chính của bạn là gì. Anh thừa nhận mình đã không đưa nhiều định hướng khi bảo nó ideate, anh chỉ nói "này, cho tôi năm thiết kế". Nhưng nếu anh có nhắc rằng anh muốn vẫn thấy được game trong lúc đang chơi, anh nghĩ sẽ có nhiều menu trông giống phương án một hơn, và nó sẽ lặp để đưa ra các thiết kế khớp với ý ban đầu của anh (theo Cody, video đăng ngày 07/10/2026).

Dù vậy, đôi khi việc đưa ra những yêu cầu rất high-level, mơ hồ ("fuzzy requirements") rồi xem AI làm gì cho bạn lại có ích (theo Cody, video đăng ngày 07/10/2026). Vì thường khi nhìn qua các biến thể khác nhau, nó sẽ gợi cho bạn thêm ý tưởng về cái gì trông đẹp và cái gì không.

Prompt mơ hồ "cho tôi 5 thiết kế" Issue: option 1 Issue: option 2 Issue: option 3 Issue: option 4 Issue: option 5 Xem screenshot, chọn một Implement + PR kèm screenshot
Hình 9.1Quy trình Cody kể trong video (đăng ngày 07/10/2026): một yêu cầu high-level, Opus trả về năm phương án thành năm GitHub issue có screenshot, anh xem và chọn một, rồi giao cho Opus implement thành một pull request có screenshot.

Anh nói anh có thể ghép phương án số năm, nếu anh thật sự thích kiểu notepad đó, vào phương án đã chọn: toàn bộ panel bên trái có thể là một trang notepad chứa các lựa chọn này. Đó là một ý khác. Nhưng một lần nữa, bạn muốn UI nhất quán. Ở home screen, phần nhất quán nằm bên trái và bạn thấy game ở bên phải. Đó là điều anh quyết định: "biết không, mình cũng nên làm như vậy trong màn chơi chính" (theo video đăng ngày 07/10/2026).

10. Giao việc implement trong Nebula: pull request #152

Sau khi chọn được người thắng là phương án số một, Cody nói tất cả những gì anh làm là bảo "này Opus, implement cái này đi". Anh mở Nebula, ứng dụng của chính anh, và theo anh nhớ thì anh đã load một prompt, có lẽ chọn New Worktree, rồi nói implement và tạo một PR. Vậy là xong (theo video đăng ngày 07/10/2026).

Nó tự chạy, và anh quay lại sau khoảng 10 hay 20 phút (theo lời Cody, video đăng ngày 07/10/2026): đã có nguyên một pull request được mở để implement menu đó. Anh tìm lại nó: bấm vào số 152, và người xem thấy nó đã implement đúng menu đó, kèm một loạt screenshot đi qua từng bước xem menu trông ra sao.

Pull request #152 Esc menu: a side rail that keeps the world in view, trạng thái Merged, phần Overview và mục Screenshots với ảnh Before
Pull request #152, "Esc menu: a side rail that keeps the world in view" (theo video đăng ngày 07/10/2026): đã merge, 1 commit, 8 file thay đổi, +537 −170. Phần Overview ghi menu Esc thành một rail dọc mép trái, nửa phải gần như trống để vẫn thấy thứ đang tới; liệt kê thứ tự các mục, Leave game phải giữ mới rời, phím mũi tên và Enter; dòng "Closes #137"; rồi mục Screenshots bắt đầu bằng ảnh "Before: the current menu".

11. Bảo Opus tự chụp screenshot cho mỗi pull request

Một điều Cody muốn chỉ ra: khi tạo pull request, bạn nên bảo Opus thêm screenshot. Cái hay là Opus sẽ tự load game của bạn, thật sự chơi qua nó, bấm Escape, mở menu, chụp screenshot cho bạn rồi đưa vào pull request (theo video đăng ngày 07/10/2026). Vậy là bạn thậm chí không cần tự load game lên để test.

Nếu bạn kèm screenshot của bất cứ thứ gì Opus đang thay đổi, bạn sẽ không phải lặn vào checkout branch để xem. Theo anh, đó là thứ sẽ thật sự làm bạn chậm lại. Nếu thấy mình cần checkout một branch để thử một thứ gì đó, bạn cần tìm một cách tốt hơn để mọi thông tin đó có sẵn cho bạn ngay từ đầu, khi tạo pull request hay issue đó (theo Cody, video đăng ngày 07/10/2026).

12. Skill create-pr: không có screenshot thì không có PR

Cody nói anh có một create PR skill, dùng ngay trong project này, và anh cũng khuyên bạn dùng nó cho mọi project. Mở skill ra, về cơ bản nó nói screenshot là bắt buộc. Và skill này kích hoạt mỗi khi anh prompt Claude Code, Codex hay bất kỳ công cụ nào khác để tạo một pull request (theo video đăng ngày 07/10/2026).

Trên màn hình, trong Nebula, anh mở file .claude/skills/create-pr/SKILL.md. Phần đầu file có name: create-pr và một dòng description: mở một pull request cho Survive the Night theo cách chủ game đọc, gồm overview ngắn, không kỹ thuật, screenshot những gì thay đổi, và dùng mỗi khi được bảo tạo, mở hay gửi một PR. Tiếp theo là phần "Create a PR": người đọc là một product owner đang quyết định có merge hay không và chơi gì; họ đọc overview và xem ảnh, họ không đọc code (nội dung file trên màn hình, theo video đăng ngày 07/10/2026).

File SKILL.md của skill create-pr mở trong Nebula, với phần Rules đánh số từ Screenshots are required tới Honest và bước 1 Read the branch
File SKILL.md của skill create-pr mở trong Nebula (theo video đăng ngày 07/10/2026). Phần Rules: 1. "Screenshots are required. No screenshots, no PR", kể cả thay đổi không ai thấy (server, refactor) cũng cần ảnh màn hình nơi nó có tác dụng; 2. Overview, not detail; 3. Có mục Risk khi đổi code backend; 4. Có bảng Metrics khi tinh chỉnh số; 5. Ngắn, khoảng 200 chữ; 6. Honest. Bên dưới là một ví dụ mô tả "quá kỹ thuật" và một mô tả "đúng", rồi bước "1. Read the branch".

Bước "1. Read the branch" trong file có đoạn lệnh git sau, đúng như trên màn hình (theo video đăng ngày 07/10/2026):

git fetch origin main
git status --short                      # commit anything left (on this branch, never on main)
git log --oneline origin/main..HEAD
git diff --stat origin/main...HEAD

13. Khi skill kích hoạt cả cho một chỉnh sửa nhỏ: thanh máu của barricade

Dù coi skill này là thứ nền tảng của agentic coding trong năm 2026, Cody nói nó thường kích hoạt cả với những chỉnh sửa nhỏ mà Opus không mất bao lâu để implement (theo video đăng ngày 07/10/2026). Và vì bạn có một skill nói "này, chụp screenshot cho mọi thứ", nó có thể khá phiền.

Anh lấy ví dụ: trong game, nếu bạn xây một bức tường, khi lại gần sẽ thấy một wood barricade với phần trăm máu nằm ngay giữa màn hình. Vấn đề là khi bạn đang cầm súng, nó cản đường bạn. Khi bạn đang thật sự đánh nhau với địch, chúng đang lao tới, bạn đứng gần tường, gần mấy chiếc xe hay đồ vật khác, những modal này bật lên và che tầm nhìn của bạn. Rất, rất phiền (theo Cody, video đăng ngày 07/10/2026).

Người chơi cầm búa nhìn vào một wood barricade trên đường, giữa màn hình hiện nhãn Wood Barricade 100% và Demolish Wood Barricade
Cầm búa nhìn vào một barricade gỗ (theo video đăng ngày 07/10/2026): giữa màn hình hiện nhãn "WOOD BARRICADE 100%" và lựa chọn "Demolish Wood Barricade". Sau chỉnh sửa, nhãn này chỉ hiện khi người chơi đang cầm búa.

Cách team xử lý là chỉ cho thấy nhãn này khi bạn đang cầm búa, và theo anh thì cách đó phần nào giải quyết được vấn đề. Nhưng PR skill anh vừa nói sẽ kích hoạt, và Opus sẽ mất thêm chừng năm phút (theo số đo của Cody, video đăng ngày 07/10/2026) để load game, đi qua, chơi game, teleport, chụp screenshot, chỉ để pull request có một tấm ảnh cái modal nhỏ ở giữa màn hình. Anh nói có thể điều đó hữu ích với vài tính năng.

14. Để skill tự kích hoạt hay chỉ gọi khi cần

Nhưng với những tính năng chỉ là chỉnh sửa nhỏ, Cody nói nó rất, rất phiền. Đó là vấn đề anh gặp với skill: chúng thường kích hoạt mọi lúc (theo Cody, video đăng ngày 07/10/2026). Cuối cùng thứ bạn phải làm là nói thêm "đừng chụp screenshot cho PR này". Anh nói có skill thì rất hữu ích, nhưng khi chúng được gọi ở mọi prompt bạn gõ, nó lại gây ra vài vấn đề.

Đó là thứ anh đang cố tìm câu trả lời: skill này có nên chỉ là một file markdown mà anh tự tag thủ công không? Anh nói đây là điều bạn phải ghi nhớ: skill rất tuyệt nếu bạn muốn một thứ áp dụng cho mọi prompt, nhưng thường sẽ có edge case và những lý do khiến bạn không muốn gọi nó. Và việc nói "đừng chụp screenshot" khi chạy PR skill là thứ bạn cứ phải nhớ mà gắn thêm vào (theo Cody, video đăng ngày 07/10/2026).

Cách tiếp cận còn lại: không để skill tự kích hoạt (auto invoke), mà bảo Claude dùng skill đó ở từng bước. Anh tin là bạn có thể vào chính file skill và xoá phần ở trên cùng, để Claude không biết khi nào nên tự gọi nó; khi đó nó chỉ còn là thứ bạn gọi khi thật sự muốn (theo Cody, video đăng ngày 07/10/2026).

15. Pull request từ người đóng góp: torch và campfire đếm giờ cháy

Dù vậy, Cody nói việc có skill này trong repo là rất tốt, vì khi người khác tạo pull request để thêm tính năng hay thay đổi game, họ thường quên thêm screenshot, nhất là khi đổi user interface hay đổi gameplay. Anh nói thẳng: nếu thành thật thì anh sẽ không checkout code của bạn, sẽ không chạy nó ở local, vì việc đó tốn quá nhiều thời gian (theo Cody, video đăng ngày 07/10/2026).

Anh cho xem một ví dụ từ một người đóng góp: người này thêm tính năng cho torch và campfire hiển thị còn cháy được bao lâu. Kéo xuống sẽ thấy: khi bạn hover lên các vật có lửa như torch hay campfire, game cho biết còn lại bao nhiêu thời gian (theo video đăng ngày 07/10/2026).

Pull request #199 Torches and campfires show how long they have left to burn, mục Screenshots với ảnh Before và After cho torch, campfire và trường hợp không cầm búa
Pull request #199, "Torches and campfires show how long they have left to burn", đã merge (theo video đăng ngày 07/10/2026). Mục Screenshots có ba cặp ảnh Before/After: nhìn vào torch khi cầm búa (sau chỉnh sửa hiện "Burns 5:51"), nhìn vào campfire khi cầm búa, và khi không cầm búa thì không đổi.

Anh nói nếu không có những screenshot này, có lẽ anh đã không merge pull request đó nhanh như vậy. Nhưng vì người đóng góp đã clone repo và bảo Opus thêm tính năng này, skill tự động kích hoạt. Pull request có sẵn screenshot cho những thay đổi trên HUD, và anh có thể merge luôn (theo video đăng ngày 07/10/2026).

16. Hai điều mang về: ideation và screenshot trong mọi PR

Cody mong đây là một mẹo hữu ích nếu bạn chưa từng làm theo cách này. Anh tóm lại hai điều đã dạy trong video. Thứ nhất là ideation, thứ anh cho rằng bạn nên tận dụng mọi lúc: bảo Claude Code dựng năm hay mười ví dụ khác nhau về cách một thứ nên hoạt động, rồi quay lại chọn phương án tốt nhất (theo Cody, video đăng ngày 07/10/2026). Thứ hai là một skill bạn nên có cho mọi pull request, để đảm bảo nó luôn sinh ra screenshot.

Theo anh (video đăng ngày 07/10/2026), đây là một trong những thứ quan trọng nhất khi dựng ít nhất là game này, nhưng cũng đúng cho web application và user interface nói chung: những chiến lược mà bạn và team của bạn nên luôn thiết lập sẵn. Anh chúc mọi người một ngày tốt lành và "happy coding".

Nguồn và liên kết 8 nguồn

  1. Tên gốc: This Is How You Should Build User Interfaces with AI
  2. Sự kiện: YouTube
  3. Video gốc: https://www.youtube.com/watch?v=OrwrQkw28vU youtube.com
  4. Kênh YouTube Web Dev Cody (Cody Seibert): youtube.com/channel/UCsrVDPJBYeXItETFHG0qzyw youtube.com
  5. Trang cá nhân của Cody Seibert: webdevcody.com webdevcody.com
  6. Survive the Night, game của Cody: survivethenightgame.com survivethenightgame.com
  7. Repo của game trên GitHub, nơi có các issue và pull request trong video (đọc ngày 23/10/2026): github.com/webdevcody/survive-the-night-fps github.com
  8. File SKILL.md của skill create-pr trong repo; bản đọc ngày 23/10/2026 có thêm một luật so với bản trên màn hình trong video: .claude/skills/create-pr/SKILL.md github.com