Workflow Claude Code giúp thắng 5 hackathon liên tiếp
Quy trình bốn bước của Johnathan Mo để thắng hackathon: nghĩ ngược từ demo, build bằng agent với skill và MCP, giữ sức, rồi pitch cho giám khảo.
✓ Đã duyệt độc lập · cập nhật 23/10/2026 · 12 min
1. Năm hackathon, năm lần có giải
Johnathan mở đầu bằng lời giới thiệu ngắn: trong khoảng một năm trước khi đăng video (video đăng ngày 11/10/2026), anh đã đi năm hackathon mà anh gọi là thuộc hàng danh giá nhất thế giới, ở các trường đại học như Stanford, Columbia và Yale, và lần nào anh cũng mang về một giải. Theo anh, Claude Code và Codex rõ ràng đã giúp anh đi nhanh, nhưng mọi chuyện không đơn giản là dán một prompt duy nhất vào AI agent rồi đi ngủ.

Anh nói video này dành cho cả hai kiểu người: một bạn sinh viên đang muốn làm project đầu tiên, và một người đã đi hackathon nhiều lần và giờ muốn thắng. Nếu đôi lúc bạn thấy Claude "ngớ ngẩn", ví dụ giải thích mọi thứ theo cách khó hiểu nhất có thể, hay cho ra những bản thiết kế toàn AI slop, thì theo Johnathan (video đăng ngày 11/10/2026), nhiều khả năng bạn chỉ đang thiếu một phần quan trọng trong cách setup.
Trong video, anh hứa sẽ đi qua cái workflow mà anh gọi là "bí mật", thứ anh dùng để thắng hơn 1.000 đối thủ khác, và dạy quy trình bốn bước mà theo anh phần lớn thí sinh khác không biết, để lên ý tưởng và làm ra những project thật sự tốt (video đăng ngày 11/10/2026). Bốn bước hiện trên màn hình theo thứ tự: Think Backward, Agent Workflow, Stamina, Judging. Xem xong, anh nói, bạn cũng có thể đi thắng vài hackathon, hoặc đơn giản là làm ra những project thật chỉn chu mà bạn tự hào.
2. Bước 1: nghĩ ngược từ cái demo thắng cuộc
Bước đầu tiên, và theo Johnathan là bước quan trọng nhất trong cả quy trình (video đăng ngày 11/10/2026), là nghĩ ngược (think backward). Hãy tưởng tượng bạn đã thắng hackathon rồi. Có thể là thắng một track cụ thể, hoặc giải của một nhà tài trợ mà bạn rất thích. Giờ tự hỏi: bạn đã làm điều đó bằng cách nào? Giám khảo đã thấy cái demo điên rồ nào khiến họ lập tức nghĩ "đúng rồi, đây là đội thắng"?
Anh kể bốn hình ảnh như vậy của chính mình, theo lời anh trong video đăng ngày 11/10/2026. Ở TreeHacks 2025, đó là một con robot giao đồ ăn tự hành cao sáu foot. Đội anh thậm chí không nhắm vào track nào cụ thể, nhưng cả đội biết ngay rằng nếu làm xong project này, nó sẽ thắng một giải nào đó. Ở TreeHacks 2026, đó là một chiếc gương thông minh cao ba foot. Ở YHack, đó là một AI agent làm việc cùng bạn ngay trên máy tính của bạn. Và ở Columbia, đó là hình ảnh bốn AI agent chạy song song trong các máy ảo trên cloud.

3. Chọn thứ điên rồ nhất, rồi kiểm xem có làm nổi không
Mẹo Johnathan dùng (theo video đăng ngày 11/10/2026) là chọn thứ hay ho, điên rồ nhất mà bạn nghĩ ra được, rồi mới kiểm xem nó có khả thi không. Ở TreeHacks, ban đầu anh muốn scrape dữ liệu của tất cả người tham gia, tạo một bản sao deepfake cho từng người, rồi cho các bản sao đó đi hẹn hò với nhau. Nhưng anh nhận ra việc này có lẽ không làm nổi trong 24 giờ. Vì vậy lời khuyên của anh là cứ tiếp tục nghĩ cho tới khi ra được cái demo ngầu nhất mà vẫn khả thi về mặt kỹ thuật.
Cuối cùng, anh chuyển sang scrape email của mọi người để dựng lại tủ quần áo của họ, rồi dùng chiếc gương thông minh để tìm gợi ý quần áo. Trên màn hình là sơ đồ kiến trúc của chiếc gương đó (video đăng ngày 11/10/2026).

4. Biết thế giới đang có gì: Twitter và Cosmos
Johnathan nói thêm rằng nói chung cũng nên biết thế giới đang diễn ra những gì. Anh hay lướt Twitter rất nhiều cho việc này, và anh cũng tìm được nhiều cảm hứng UI rất hay trên Twitter. Ví dụ: với SecondSelf, project đoạt giải nhất hạng mục personal AI ở YHack, anh lấy ý tưởng cốt lõi từ một bài đăng trên Twitter mà anh thấy từ tháng trước đó (theo lời anh trong video đăng ngày 11/10/2026).
Để lưu những bài đăng như vậy, anh giới thiệu một công cụ tên là Cosmos. Anh tả nó "kiểu như Pinterest", nhưng anh dùng nó để gom cảm hứng hay ho từ khắp nơi trên web. (theo Johnathan, video đăng ngày 11/10/2026).

5. Bước 2: build bằng AI agent, bắt đầu từ agent harness
Biết mình sẽ build gì rồi thì phần tiếp theo là build nó thế nào. Theo Johnathan (video đăng ngày 11/10/2026), hiển nhiên là bạn cần dùng một AI agent nào đó để code. Ngày nay, tự code bằng tay không còn đủ nhanh. Muốn thắng thứ gì, anh nói, bạn phải dùng AI.
Để dùng AI agent cho tốt, anh cho rằng cần biết, hoặc ít nhất hiểu sơ sơ, các agent harness hoạt động thế nào. Agent harness ở đây là những thứ như Claude Code, Codex hay Cursor. Theo cách Johnathan giải thích (video đăng ngày 11/10/2026), harness về cơ bản là một lớp bọc quanh model bên dưới, lo phần memory, quản lý context, routing và những việc tương tự. Claude Code là một harness, Codex là một harness, và Cursor Agent cũng là một harness.

6. Agent IDE: Superset và mỗi workspace một Git worktree
Bên trên harness, theo Johnathan, bạn cần một agent IDE. Có rất nhiều lựa chọn, nhưng về bản chất chúng cho bạn quản lý nhiều agent chạy song song cùng lúc, điều anh coi là cực kỳ quan trọng để phát triển nhanh ở hackathon (video đăng ngày 11/10/2026).
Anh dùng một agent IDE tên là Superset. Trong Superset (theo mô tả của anh, video đăng ngày 11/10/2026), anh tạo được các workspace mới, và mỗi workspace sống trong Git worktree riêng của nó. Anh giải thích worktree về cơ bản giống như có nhiều bản sao của cùng một codebase, mỗi bản anh làm một feature riêng, và điều này giúp anh đi nhanh hơn rất nhiều. Trên màn hình có một slide ghi "ONE GIT REPOSITORY".
Anh thích Superset vì nó có trình duyệt tích hợp riêng, và hiện hết code diff lẫn file trong một ứng dụng, nên anh thực sự nhìn được agent đang làm gì cho từng feature riêng biệt (theo Johnathan, video đăng ngày 11/10/2026).
7. Skill /interview: hỏi cho tới khi hai bên hiểu nhau
Trên cùng của harness và agent IDE là skill và MCP, theo Johnathan là những thứ giúp rất nhiều. Anh bảo hãy nghĩ về skill như một tờ giấy ghi nhớ (cheat sheet) mà agent đọc khi cần làm một số việc nhất định, để nó làm một cách nhất quán và đáng tin cậy (video đăng ngày 11/10/2026).
Skill quan trọng nhất anh dùng tên là /interview, và đây là skill anh tự tạo. Theo mô tả của anh (video đăng ngày 11/10/2026), nó rất đơn giản: nó khuyến khích agent liên tục hỏi anh về bất cứ chỗ nào chưa rõ trong prompt, cho tới khi cả hai hiểu chính xác như nhau về việc phải làm. Sau đó nó lưu kết quả thành một tài liệu để quay lại tham khảo, tránh việc về sau project đi lệch khỏi tầm nhìn ban đầu.

/interview: "Ask before you build." Hai câu hỏi mẫu là "Who is it for?" và "What must work?", rồi mũi tên dẫn sang một tài liệu mà các khung hình kế tiếp gọi là "A clear brief" (video đăng ngày 11/10/2026).8. /better-ui và /animate: chữa thiết kế kiểu AI slop
Johnathan nói skill cũng là cách anh xử lý chuyện Claude nói năng khó hiểu và làm ra những bản thiết kế slop (theo anh, video đăng ngày 11/10/2026).
/better-ui là một skill mã nguồn mở anh tìm được. Theo anh, nó chạy một đợt UI audit trên toàn bộ app của bạn, đề xuất các cải tiến giao diện, animation, và nói chung là phần trau chuốt (video đăng ngày 11/10/2026). Repo skill của anh ghi người tạo /better-ui là Jakub Krehel (đọc ngày 23/10/2026).
/animate là một skill áp dụng các best practice về motion design và animation để thêm những animation trau chuốt vào app (theo Johnathan, video đăng ngày 11/10/2026). Repo skill của anh ghi người tạo /animate là Emil Kowalski (đọc ngày 23/10/2026). Slide minh hoạ cho skill này có dòng chữ "Give motion a purpose." với một đường cong chuyển động đi qua hai mốc "anticipate" và "settle".
Anh dùng hai skill này để thêm thật nhiều độ trau chuốt, và nói chung là cảm giác chất lượng, cho bất cứ thứ gì anh làm ở hackathon (video đăng ngày 11/10/2026).
9. /agentation: chỉ thẳng vào phần tử cần sửa
Johnathan gọi /agentation là một skill "bí mật" mà không nhiều người biết (theo anh, video đăng ngày 11/10/2026). Nó cho bạn chú thích (annotate) trực tiếp lên website, rồi đưa các bình luận đó, kèm ID của đúng phần tử mà bạn đang nói tới, ngược lại cho agent, để agent có context về thứ bạn muốn nói.

/agentation: "Point. Explain. Improve." Con trỏ chỉ vào một khối trên giao diện, kèm bình luận "Give this more space.", rồi bình luận đó được gửi cho agent cùng với phần tử được chỉ (video đăng ngày 11/10/2026).Đoạn demo trên màn hình là một dashboard mẫu chạy ở localhost:3000: các chỗ cần sửa được đánh số ngay trên trang, rồi một dòng chú thích được gõ vào ô hiện ra cạnh phần tử đã chọn. Theo số đo của Johnathan (video đăng ngày 11/10/2026), cách này làm quy trình thiết kế của anh nhanh lên ít nhất ba lần, và cũng giúp anh nói rõ, nói cụ thể hơn nhiều về ý định của mình.
Repo của skill này là của Benji Taylor, và README của repo skill của Johnathan ghi rằng /agentation dùng giấy phép riêng PolyForm Shield 1.0.0, cài thêm một package vào project và cần MCP server của nó để nhận feedback trực tiếp (đọc ngày 23/10/2026).
10. /ste: bắt Claude nói tiếng Anh kỹ thuật cho rõ
/ste là skill thứ hai Johnathan tự tạo. Theo anh (video đăng ngày 11/10/2026), nó hướng dẫn Claude tuân theo thứ gọi là standard technical English (tiếng Anh kỹ thuật chuẩn). Anh giải thích đây về cơ bản là một quy tắc ngôn ngữ, giúp giảm bớt rất nhiều thứ vô nghĩa và slop mà Claude nói ra khi cố giải thích điều gì đó cho bạn.
Anh để ý rằng Claude hay trở nên quá kỹ thuật (hyper-technical) và giải thích nhiều thứ chẳng thật sự hợp lý, dùng những từ như "levers", "knobs", "counterfactual", rất nhiều thứ đọc lên cứ như không có nghĩa gì (theo nhận xét của Johnathan, video đăng ngày 11/10/2026). Việc tuân theo standard technical English, anh nói, đã thật sự giúp anh sửa lỗi này của Claude.

README repo skill của anh ghi rằng ste là một hướng dẫn viết thực dụng, không tuyên bố tuân thủ chính thức chuẩn ASD-STE100 (đọc ngày 23/10/2026).
11. Panopticon: một bản master plan và mỗi task một sub-agent
Cá nhân Johnathan thường bắt đầu project bằng cách dùng skill /interview để viết một bản master plan về chính xác thứ anh muốn build. Với Panopticon, project thắng hackathon của Columbia, anh kể đã bỏ hai đến ba tiếng viết plan cùng bạn bè, để Claude phỏng vấn anh về nó một cách không ngừng nghỉ (theo lời anh, video đăng ngày 11/10/2026).

Sau khi viết xong một tài liệu rất lớn, anh tách công việc thành các task độc lập rồi chạy mỗi task bằng một sub-agent. Phần đó chạy trong năm đến sáu tiếng tiếp theo. Sau đó anh tự tay tinh chỉnh thêm một tiếng bằng /agentation. Rồi anh đi tổ chức tiệc sinh nhật của chính mình, đi ngủ, ngủ đủ bảy tiếng, sáng hôm sau quay lại và thắng hackathon (theo lời anh, video đăng ngày 11/10/2026).
Theo cách Johnathan tổng kết (video đăng ngày 11/10/2026), về cơ bản đội anh đã thắng một hackathon 24 giờ chỉ với tám đến chín tiếng làm việc, chỉ nhờ làm thật kỹ phần skill và quá trình lên plan.
/interview, các sub-agent chạy song song theo task, một giờ tinh chỉnh, rồi tiệc sinh nhật và một giấc ngủ bảy tiếng trước khi biết kết quả (video đăng ngày 11/10/2026).12. Hai thế mạnh, một team: /codex và một mẫu để chép
Johnathan nói có lẽ bạn cũng đã để ý rằng Claude giỏi thiết kế front-end hơn, còn Codex giỏi back-end hơn (đây là nhận xét của anh, video đăng ngày 11/10/2026). Vì anh dùng cả hai, một skill hay anh dùng là /codex: về cơ bản nó cho Claude gọi ra một sub-agent Codex khi anh muốn Codex lo một feature cụ thể, hoặc review lại việc Claude đã làm.

README repo skill của anh ghi rằng /codex nhắc tới trong video là skill trong bộ gstack của Garry Tan và phụ thuộc vào bản cài gstack lớn hơn; repo của Johnathan thay bằng một skill chuyển việc sang Codex CLI đứng độc lập (đọc ngày 23/10/2026).
Theo Johnathan (video đăng ngày 11/10/2026), agent cũng giỏi sao chép hơn nhiều so với tự nghĩ ra một thứ hoàn toàn nguyên bản. Chỉ cho agent một ví dụ thiết kế mà bạn thích sẽ giúp có được một điểm xuất phát tốt, rồi từ đó bạn lặp tiếp (iterate) với những skill vừa nói, như /agentation hoặc các skill về UI. Trên màn hình, anh lướt một thư viện mẫu giao diện gồm nhiều website thật, rồi mở vài trang landing trong đó làm ví dụ.
13. MCP: Supabase, Neon và Stripe
Nếu bạn chưa biết, Johnathan giải thích, MCP là một cách để nối AI agent với các công cụ và dịch vụ bên ngoài, cho AI thêm khả năng cho việc nó đang làm (theo cách anh mô tả, video đăng ngày 11/10/2026). Ví dụ: cho nó quản lý database của bạn, hoặc nối nó với nhà cung cấp dịch vụ thanh toán.

Cá nhân anh dùng MCP server của Supabase và Neon để Claude tự động tạo database, áp migration, hoặc tạo bảng mới cho bất cứ feature nào anh đang build (theo Johnathan, video đăng ngày 11/10/2026). Trên màn hình lần lượt là table editor của Supabase với một bảng có cột created_at và các cột sentiment, rồi bảng database trên Neon với nút "Save 2 changes". Anh cũng dùng Stripe MCP để dựng phần thanh toán cho những app anh thích làm.
Repo skill của anh có ba plugin tuỳ chọn cho Supabase, Neon và Stripe; README ghi rằng chúng chỉ chứa URL server công khai, không chứa thông tin đăng nhập, mỗi người tự xác thực bằng tài khoản của mình qua lệnh /mcp, và khuyên dùng project phát triển cùng sandbox của Stripe khi làm hackathon (đọc ngày 23/10/2026).
14. Ít skill hơn, và plugin để gom chúng lại
Dù vậy, Johnathan lưu ý rằng nói chung agent đang tiến bộ rất, rất nhanh (theo anh, video đăng ngày 11/10/2026). Vì thế đôi khi có quá nhiều skill hay MCP lại có thể giới hạn AI, vì chúng ép nó tuân theo những quy trình từng cần trong quá khứ để giữ các model kém hơn đi đúng hướng, nhưng có thể cản các model thông minh hơn phát huy hết khả năng.
Anh khuyên (video đăng ngày 11/10/2026) gõ /skills vào terminal Claude và tắt hết những skill không thật sự quan trọng. Các slide đi kèm ghi "Keep the useful tools." với một lưới công cụ (Design, Browser, Planning, Search, Review, Memory, Testing, Files, Formatting, Research, Deploy, More rules), rồi "A lighter toolkit goes further." với ba nhóm design, build, review.
Claude cũng có một hệ thống gọi là plugin, theo Johnathan về cơ bản cho phép người ta đóng gói một loạt skill và MCP thành một thứ duy nhất để cài thật nhanh (video đăng ngày 11/10/2026). Slide ghi "Package the useful parts. Skills + connections. One reusable plugin." Anh cho biết mình đang làm một plugin gom mọi thứ anh dùng vào một gói cài được bằng một dòng lệnh.
15. Bước 3: đừng ngủ
Khi đã có một ý tưởng tuyệt, một cách làm tốt và các agent đang chạy hết công suất, bước tiếp theo theo Johnathan là: đừng ngủ. Các hackathon anh đi kéo dài từ 24 đến 36 giờ, và anh nói thật lòng là nếu muốn thắng thì bạn không thể ngủ nhiều được (theo lời anh, video đăng ngày 11/10/2026).
Với hackathon 24 giờ, anh thường thức trắng một đêm. Với hackathon 36 giờ, anh thích ngủ năm tiếng trong đêm đầu, rồi không ngủ trong đêm thứ hai. Red Bull và bất cứ thứ gì có caffeine đều giúp ích cho việc này. Nhưng riêng anh thì nói thật là chẳng cần caffeine, vì vibe coding tự nó đã làm anh hưng phấn (video đăng ngày 11/10/2026).
Dù vậy, anh thừa nhận mọi thứ trở nên rất tệ vào khoảng 4 giờ sáng, nên anh khuyên ăn chút gì đó vào khoảng giờ đó, hoặc chia ca với đồng đội (video đăng ngày 11/10/2026).
16. Bước 4: pitch cho giám khảo
Bước tiếp theo và cũng là bước cuối là phần chấm giải. Tới lúc này, bạn đã nghĩ ra một ý tưởng xuất sắc và đã cày 24 đến 36 giờ cho project. Việc còn lại chỉ là pitch nó cho giám khảo, theo cách Johnathan kể trong video đăng ngày 11/10/2026.
Lúc này, theo Johnathan (video đăng ngày 11/10/2026), mục tiêu của bạn là "yap", nói càng lâu, càng nhiều càng tốt. Bạn muốn nói chuyện với giám khảo lâu nhất có thể. Anh đưa ra ba lý do: việc đó làm họ thích project của bạn hơn, cho bạn thêm thời gian giải thích mọi chi tiết kỹ thuật phức tạp và mọi thứ bạn phải cân nhắc khi build, và nó còn giữ giám khảo tránh xa các đối thủ. Anh thừa nhận nghe có vẻ hơi "cutthroat", nhưng theo anh cuộc thi là vậy.
Tới đây, theo Johnathan (video đăng ngày 11/10/2026), ý tưởng tuyệt vời và phần implement kỹ thuật đẹp đẽ của bạn lẽ ra đã đủ để làm giám khảo choáng ngợp, và bạn sẽ thấy họ hào hứng thấy rõ khi bạn demo. Phần còn lại là ở bạn: làm nổi bật tất cả những chi tiết kỹ thuật bạn đã làm và mọi thử thách bạn đã phải vượt qua. Như vậy bạn sẽ để lại ấn tượng lâu dài cho giám khảo.
Ở YHack, theo lời Johnathan trong video đăng ngày 11/10/2026, anh đã nói rất sâu về động lực build SecondSelf, project anh làm khi đó, về tình hình thế giới AI và hướng anh nghĩ nó đang đi tới, về lý do anh build project này, và dành phần lớn thời gian cho một live demo của chính sản phẩm.

Theo Johnathan (video đăng ngày 11/10/2026), live demo đặc biệt gây ấn tượng ở hackathon vì người ta hay làm giả rất nhiều thứ không kịp hoàn thành. Một live demo chạy được thật sẽ cho giám khảo thấy bạn đã bỏ bao nhiêu công sức vào project, và cho thấy project thật sự hoạt động.
17. Lễ trao giải và lời kết
Cuối cùng, Johnathan nói (video đăng ngày 11/10/2026) rằng có lẽ bạn sẽ ngủ gục đúng lúc lễ trao giải đang diễn ra, vì thiếu ngủ suốt hai ngày qua. Nhưng hy vọng là bạn sẽ tỉnh dậy và thấy tên mình trên màn hình lớn, cùng một giải thưởng kha khá trong túi. Trên màn hình là hội trường đang chiếu slide "Personal AI Agent Track", rồi một tấm séc lớn ghi "Congrats".
Anh khép lại: đó là những mẹo hàng đầu của anh để thắng một hackathon, và là đúng quy trình bốn bước (nghĩ ngược, workflow với agent, sức bền, và phần chấm giải) đã giúp anh thắng năm trên năm hackathon trong năm vừa qua, tính tới lúc đăng video ngày 11/10/2026. Anh mời người xem cho biết họ nghĩ gì và video có hữu ích không, rồi hẹn gặp lại ở video sau.
Nguồn và liên kết 13 nguồn
- Tên gốc: The Claude Code workflow that helped me win 5 Hackathons in a Row
- Sự kiện: YouTube
- Video gốc: https://www.youtube.com/watch?v=AoxK3JpxbRc youtube.com
- Kênh YouTube Johnathan Mo (Johnathan Mo): youtube.com/channel/UCyAY55mVqpUOrEPz_OoA3yA youtube.com
- Repo jmo-skills của Johnathan, gói các skill /interview, /ste, /better-ui, /animate, /agentation, /codex và ba plugin MCP tuỳ chọn, kèm hướng dẫn cài và ghi công người tạo (đọc ngày 23/10/2026): github.com/23jmo/jmo-skills github.com
- Superset, agent IDE quản lý nhiều coding agent, mỗi agent một worktree và branch (đọc ngày 23/10/2026): superset.sh superset.sh
- Cosmos, trang tự giới thiệu là "Your space for inspiration" (đọc ngày 23/10/2026): cosmos.so cosmos.so
- Skill better-ui của Jakub Krehel (đọc ngày 23/10/2026): github.com/jakubkrehel/skills github.com
- Skill animate của Emil Kowalski (đọc ngày 23/10/2026): github.com/emilkowalski/skills github.com
- Agentation của Benji Taylor (đọc ngày 23/10/2026): github.com/benjitaylor/agentation github.com
- Skill codex trong gstack của Garry Tan (đọc ngày 23/10/2026): github.com/garrytan/gstack github.com
- Tài liệu Claude Code về skill: code.claude.com/docs/en/skills và về plugin: code.claude.com/docs/en/plugins (đọc ngày 23/10/2026) code.claude.com
- Tài liệu MCP server (đọc ngày 23/10/2026) của Supabase: supabase.com/docs/guides/ai-tools/mcp, của Neon: neon.com/docs/ai/neon-mcp-server, của Stripe: docs.stripe.com/mcp supabase.com