# Elephant-Goldfish Model của Google: lên kế hoạch kỹ rồi để Goldfish soi trước khi build

[AI LABS](https://homus.dev/speakers/ai-labs) · [AI LABS](https://homus.dev/orgs/ai-labs)

> Cài và chạy Elephant-Goldfish Model của Google trong Claude Code: bootstrap, brainstorm, draft, năm vòng review bằng sub-agent không context và drift report.

Topics: Workflow, Coding Agents, Skills, Plugins

Canonical: https://homus.dev/talks/egm-googles-new-way-to-use-claude-code-is-insane

## 1. Elephant-Goldfish Model của Google: bắt lỗi trước khi agent build

Video mở đầu bằng việc giới thiệu một cách vibe code mới đến từ Google, tên là **Elephant-Goldfish Model** (gọi tắt EGM). Theo AI LABS (video đăng ngày 25/10/2026), nó được làm ra để bắt vấn đề trước khi agent của bạn build bất cứ thứ gì. Thông thường, khi bạn bảo agent build một thứ, nó cứ thế build, và bạn chỉ phát hiện vấn đề sau đó. Với EGM, công việc của agent bị "xé ra" để soi trước tiên.

![Logo Elephant-Goldfish Model: nửa con voi màu xanh và nửa con cá vàng màu cam, phía trên có nhãn Google New](https://homus.dev/photos/xxf6D9jynFw-0003.jpg)

Màn hình mở đầu: logo Elephant-Goldfish Model ghép từ hình con voi (xanh) và con cá vàng (cam), kèm nhãn "New" có logo Google (theo video đăng ngày 25/10/2026).

Con voi (elephant) và con cá vàng (goldfish) trong cái tên là hai loại agent khác nhau, và chính cái tên đã nói rõ mỗi loại làm việc thế nào. Theo AI LABS, cách Google tách riêng hai loại agent này là điều làm EGM khác biệt: trong tất cả các workflow khác mà nhóm đã xem qua, chỉ có một workflow làm điều gì đó tương tự (nhận định trong video đăng ngày 25/10/2026).

Nhóm AI LABS đã thử EGM trên app của chính mình với một feature mới, và nó bắt được một bug thật mà cách review thông thường đã bỏ sót (demo trong video đăng ngày 25/10/2026). AI LABS tự giới thiệu: nhóm là một công ty phần mềm và đây là kênh của nhóm. Trong video, nhóm sẽ cho xem EGM là gì, nó hoạt động thế nào và cách dùng nó trên app của bạn.

## 2. EGM là gì: spec-driven development theo kiểu Google

Theo AI LABS (video đăng ngày 25/10/2026), Elephant-Goldfish Model là cách của Google để lên kế hoạch thật kỹ cho thứ bạn muốn build trước khi thực sự build nó. Đây là phiên bản của Google cho **spec-driven development**: bạn viết ra kế hoạch đầy đủ cho app trước, rồi agent build app bằng cách làm theo kế hoạch đó.

Theo AI LABS (video đăng ngày 25/10/2026), EGM do các kỹ sư ở Google phát triển, dựa trên một bài viết của Dave Rensin có tên "Elephants, Goldfish, and the New Golden Age of Software Engineering". Trên màn hình là bài viết đó trên Medium, với nhãn "Google engineers" bên cạnh tên tác giả.

![Trang Medium của bài Elephants, Goldfish and the New Golden Age of Software Engineering, tác giả Dave Rensin](https://homus.dev/photos/xxf6D9jynFw-0103.jpg)

Bài viết nền tảng của EGM trên Medium, tác giả Dave Rensin; dòng dưới tên ghi "27 min read · Apr 27, 2026", cạnh tên có nhãn "Google engineers" (theo video đăng ngày 25/10/2026).

Theo AI LABS, EGM miễn phí cho mọi người dùng, nằm trên GitHub của Google (theo video đăng ngày 25/10/2026). Nó dùng nhiều agent và skill để lên kế hoạch cho app theo cách không bỏ sót góc nào, để kế hoạch đầy đủ, không còn lỗ hổng. Nhờ vậy, khi agent thực hiện kế hoạch, nó không phải đoán gì trong lúc build, vì mọi thứ đã được ghi lại, và điều đó giúp việc build tiếp lên trên dễ hơn.

![Trang GitHub google/elephant-goldfish-model với các folder .agents, .claude-plugin, .codex-plugin, agents, docs, resources](https://homus.dev/photos/xxf6D9jynFw-0110.jpg)

Repo `google/elephant-goldfish-model` trên GitHub như trong video: phần About ghi "An open-source method and skill set created at Google for spec-driven development with LLMs", license Apache-2.0, và các folder plugin riêng cho Claude và Codex (theo video đăng ngày 25/10/2026).

Bạn cũng không chỉ nhận về một kế hoạch. Theo AI LABS (video đăng ngày 25/10/2026), EGM còn đưa ra một checklist những gì cần build và cách test để chắc mọi thứ chạy đúng như bạn muốn. Nhờ vậy bạn biết khi nào feature đã hoàn chỉnh.

## 3. Elephant: phần nhớ mọi thứ về project

Trước khi đi cài công cụ, video dừng lại để giải thích triết lý cốt lõi của mô hình này. Theo AI LABS (video đăng ngày 25/10/2026), EGM xoay quanh hai vai trò, con voi và con cá vàng, đúng như cái tên gợi ý.

Theo AI LABS (video đăng ngày 25/10/2026), **Elephant** đại diện cho phần của workflow nhớ mọi thứ về project. Nó biết toàn bộ lịch sử project của bạn, app thực sự được ghép lại thế nào, và người ta dùng app để làm gì. Đây là phần chịu trách nhiệm trao đổi ý tưởng với bạn thật sâu: nghĩ về nó từ nhiều góc khác nhau, xem nó có thể hỏng ở đâu, và viết các file kế hoạch chi tiết làm nền cho cả kế hoạch.

## 4. Goldfish: sub-agent không có context, mỗi con một góc nhìn

Phần thứ hai là **Goldfish**, phần của workflow không nhớ gì cả. Theo AI LABS (video đăng ngày 25/10/2026), đây là những sub-agent không có chút context nào. Chúng chỉ thấy kế hoạch và code của app, và không bao giờ thấy những gì bạn và agent chính đã trao đổi. Vì vậy, không điều gì bạn nói trước đó có thể ảnh hưởng tới chúng.

![Sơ đồ: Elephant và Goldfish cùng nối vào một Plan có hai dấu tích, bên phải là ba agent đang làm việc](https://homus.dev/photos/xxf6D9jynFw-0303.jpg)

Hình minh hoạ trong video: Elephant và Goldfish cùng dẫn vào một file Plan mà cả hai đều đánh dấu đồng ý, và các agent khác (bên phải) lấy Plan đó làm điểm xuất phát (theo video đăng ngày 25/10/2026).

Theo AI LABS (video đăng ngày 25/10/2026), Goldfish nhìn kế hoạch khác với các agent còn lại, qua nhiều góc nhìn:

- Một con kiểm tra xem có cách nào dễ hơn cách kế hoạch đưa ra không, hoặc app của bạn đã có sẵn thứ gì làm được việc đó chưa (theo video đăng ngày 25/10/2026).

- Một con đọc kế hoạch như một người không biết gì về app của bạn, và kiểm tra xem nó còn dễ hiểu không (theo video đăng ngày 25/10/2026).

- Một con tìm những vấn đề xuất hiện khi app tới tay rất nhiều người và tất cả cùng dùng một lúc (theo video đăng ngày 25/10/2026).

- Một con kiểm tra xem kế hoạch có đủ rõ để một model build theo mà không phải đoán gì không (theo video đăng ngày 25/10/2026).

- Vài con nữa kiểm tra cách bản thân kế hoạch được viết và sắp xếp (theo video đăng ngày 25/10/2026).

Elephant và Goldfish làm việc cùng nhau để tạo ra một kế hoạch cuối cùng mà cả hai đều đồng ý, và các agent khác dùng kế hoạch đó làm điểm xuất phát (theo AI LABS, video đăng ngày 25/10/2026).

## 5. Đã có plan mode, sao còn cần EGM?

Bạn có thể nghĩ rằng phần lớn agent đã có plan mode rồi (theo AI LABS, video đăng ngày 25/10/2026), vậy cần gì phải qua cả quy trình này? Video giải thích rằng khi bạn lên kế hoạch với model, mọi chuyện thường diễn ra thế này: bạn giải thích ý tưởng, model hỏi bạn vài câu về những chi tiết lớn mà nó không tự quyết được nếu không có ý kiến của bạn, rồi nó viết kế hoạch. Kế hoạch đó bỏ sót những chi tiết và vấn đề chỉ lộ ra về sau, và bạn lại phải sửa nó thêm lần nữa để xử lý những vấn đề ấy.

Theo AI LABS (video đăng ngày 25/10/2026), EGM cho bạn một kế hoạch hoàn chỉnh đã được phân tích từ mọi góc và không để lại lỗ hổng, để khi làm việc thì những vấn đề đó không xuất hiện, bất kể bao nhiêu người đang dùng app.

Lợi ích thứ hai đến từ Goldfish. Khi bạn dùng plan mode, phần lớn công việc diễn ra trong cùng một cuộc chat. Điều này quan trọng vì agent đã biết những gì bạn bàn về kế hoạch. Nên khi nó kiểm tra kế hoạch, về cơ bản nó chỉ đồng ý với chính mình. Theo lời AI LABS dẫn Google (video đăng ngày 25/10/2026), vấn đề chính của model là chúng bám vào những ý sai của chính mình và đồng ý với điều bạn muốn thay vì bắt lỗi. Đó là lý do Goldfish không được phép thấy cuộc chat của bạn.

Khác biệt AI LABS nêu (video đăng ngày 25/10/2026): trong plan mode, agent kiểm kế hoạch đã biết cả cuộc chat nên dễ tự đồng ý; trong EGM, Goldfish chỉ thấy kế hoạch và code.

## 6. Vai trò thứ ba là bạn, và cách review được tổ chức

Theo AI LABS (video đăng ngày 25/10/2026), tất cả các sub-agent này đưa cho bạn rất nhiều ghi chú, và đó là chỗ vai trò thứ ba xuất hiện: chính bạn. Model nghĩ ra ý tưởng và kiểm tra kế hoạch, nhưng bạn là người đưa ra quyết định cuối cùng. Theo AI LABS dẫn Google, phần review cố tình cho bạn nhiều ghi chú để bạn giữ lại cái hữu ích và bỏ qua phần còn lại.

Các sub-agent chấm kế hoạch theo một bộ quy tắc viết sẵn, đóng vai trò checklist về những gì một kế hoạch tốt phải có. Phần review này dùng một sub-agent khởi động một nhóm sub-agent khác. Theo AI LABS (video đăng ngày 25/10/2026), cách này giữ cho context của agent chính không bị phình ra vì tất cả báo cáo mà các agent kia viết; sub-agent đó gộp chúng lại thành một báo cáo duy nhất, và đó là báo cáo duy nhất bạn phải review.

Cấu trúc review như AI LABS mô tả (video đăng ngày 25/10/2026): một sub-agent điều phối khởi động các Goldfish, gộp báo cáo của chúng và chỉ trả về một báo cáo cho agent chính.

Ngay cả sau khi feature đã được build, kế hoạch vẫn giúp ích nhiều. Theo AI LABS (video đăng ngày 25/10/2026), về sau một bước kiểm tra tên là **Drift** so kế hoạch với app của bạn và chỉ ra mọi chỗ hai bên không còn khớp nhau. Rồi bạn quyết định sửa bên nào.

## 7. Cài đặt cho Claude Code, Codex và các agent khác

Theo AI LABS (video đăng ngày 25/10/2026), công cụ này có cho bất kỳ agent nào bạn dùng, dù là Claude Code, Codex hay agent khác. Repo có một lệnh cài riêng cho từng loại, và bạn copy lệnh mình cần. Bảng Install trong repo như trên màn hình:

![Bảng Install trong README của repo với các dòng Any AI agent, Antigravity, Claude Code, Codex, Claude Cowork / ChatGPT](https://homus.dev/photos/xxf6D9jynFw-0500.jpg)

Bảng Install trong README của repo: mỗi harness (Any AI agent, Antigravity, Claude Code, Codex, Claude Cowork / ChatGPT) có một lệnh cài riêng (theo video đăng ngày 25/10/2026).

Hai dòng cho Claude Code và Codex, chép từ bảng trên màn hình (đúng với README của repo, đọc ngày 25/10/2026):

```
claude plugin marketplace add google/elephant-goldfish-model && claude plugin install egm@egm

codex plugin marketplace add google/elephant-goldfish-model && codex plugin add egm@egm
```

Hoặc bạn có thể copy install prompt từ website của dự án, vốn chỉ là chữ "Install" theo sau là link tới repo, rồi dán vào agent. Khi gửi prompt đó, agent chạy mọi bước để tải repo và cài vào project của bạn (theo AI LABS, video đăng ngày 25/10/2026). Đây là prompt nhóm AI LABS dán vào Claude Code trên màn hình:

```
Install https://github.com/google/elephant-goldfish-model
```

Vì nhóm đang dùng Claude Code, nó còn viết một file `CLAUDE.md` để đặt hướng dẫn cho công cụ này vào đó (demo trong video đăng ngày 25/10/2026). Và trong file đó có một dòng bạn nên kiểm tra, video sẽ quay lại chuyện này ngay sau.

## 8. Ba folder mới trong .claude

Theo AI LABS (video đăng ngày 25/10/2026), khi cài xong, bạn sẽ thấy ba folder mới bên trong folder `.claude`:

- **agents**: chứa tất cả các agent mà phương pháp dùng. Đây chính là các Goldfish đã nói ở trên. Trên màn hình là các file như `egm-bootstrap-orchestrator.md`, `egm-codebase-details.md`, `egm-comprehension.md`, `egm-design.md`, `egm-implementation-readiness.md` (demo trong video đăng ngày 25/10/2026).

- **egm**: đơn giản là một bản copy đầy đủ của repo (theo video đăng ngày 25/10/2026).

- **skills**: chứa tất cả các skill chạy từng bước của phương pháp. Đây là phần Elephant của workflow. Trên màn hình có `egm-bootstrap`, `egm-brainstorm`, `egm-draft`, `egm-drift-report`, `egm-resolve`, `egm-review` và một skill bắt đầu bằng `egm-review` nữa (demo trong video đăng ngày 25/10/2026).

Theo AI LABS (video đăng ngày 25/10/2026), skill chính là **brainstorm**, về cơ bản nhận ý tưởng của bạn và biến nó thành một kế hoạch tấn công rõ ràng. Nó hỏi bạn rất nhiều câu và cứ tiếp tục cho tới khi vấn đề đã rõ; file SKILL.md của nó trên màn hình mô tả đây là skill "Interactive ideation and brainstorming skill for the Elephant & Goldfish Model (EGM)". Ngoài ra còn có skill **review** khởi động phần review của Goldfish; nó chứa mọi bước để review kế hoạch và gọi các sub-agent vào.

## 9. Một dòng sai trong CLAUDE.md cần kiểm tra

Như đã nói, theo AI LABS (video đăng ngày 25/10/2026), bước cài còn ghi một số hướng dẫn vào file `CLAUDE.md`. Dòng bạn cần kiểm tra nằm gần cuối file, và nó nói rằng sub-agent của Claude Code không thể tự khởi động sub-agent của riêng chúng. Trên màn hình, dòng 11 ghi: "Claude Code subagents cannot spawn their own subagents, so use direct dispatch instead of the synthesizer."

Theo AI LABS (video đăng ngày 25/10/2026), lý do là các phiên bản Claude Code cũ không làm được điều đó, nên agent viết dòng ấy theo trí nhớ. Nhưng phiên bản Claude Code mới thực sự cho phép một sub-agent khởi động các sub-agent khác, trái với điều dòng đó nói.

Khi nhóm hỏi về chuyện này, Claude trả lời rằng nó tự viết file `CLAUDE.md`, và không có bước nào trong repo bảo nó viết (demo trong video đăng ngày 25/10/2026). Trên màn hình, câu trả lời bắt đầu bằng "I added it myself. Nothing told me to.", và Claude liệt kê những dòng nó tự chọn, trong đó có dòng "Skip the merging step" vì cho rằng reviewer trong Claude Code không thể khởi động reviewer của riêng mình.

Nhóm bảo nó rằng dòng đó sai và các review sub-agent có thể khởi động sub-agent của riêng chúng. Thế là Claude chạy thử: một reviewer của EGM (`egm-style`) được yêu cầu khởi động một reviewer khác rồi báo lại. Khi thấy việc đó chạy được trong Claude Code, nó sửa dòng ấy để phương pháp chạy đúng như Google thiết kế (demo trong video đăng ngày 25/10/2026).

![Claude Code: Agent Test nested subagent spawning finished, rồi Update CLAUDE.md thay dòng 11](https://homus.dev/photos/xxf6D9jynFw-0643.jpg)

Sau khi agent "Test nested subagent spawning" chạy xong, Claude cập nhật `CLAUDE.md`: dòng cũ "Claude Code subagents cannot spawn their own subagents…" bị xoá, thay bằng "Subagents can nest, so hierarchical dispatch through `egm-synthesizer` works.", kèm câu "You were right, and I was wrong about that." (demo trong video đăng ngày 25/10/2026).

Theo AI LABS (video đăng ngày 25/10/2026), có thể bạn sẽ không gặp chuyện này vì repo được cập nhật khá thường xuyên, nhưng đó là điều đã xảy ra lúc nhóm quay, nên đáng để kiểm tra file đó. Nếu bạn thấy một dòng như vậy trong `CLAUDE.md`, hãy bảo Claude sửa luôn. Hoặc bạn chỉ cần copy lệnh cài dành riêng cho agent bạn đang dùng, và nó sẽ cài thẳng cho agent đó mà không xảy ra xung đột kiểu này.

## 10. App demo và lệnh EGM bootstrap

Nhóm AI LABS thử EGM trên một app thời trang demo đã build từ trước (demo trong video đăng ngày 25/10/2026). Trên màn hình là trang chủ của một marketplace quần áo tên Threadmark, với khẩu hiệu "Independent clothing shops, all in one bag.". Phần lớn app đã xong, và nhóm chỉ đang thêm feature mới. Feature nhóm muốn thêm là một trang cho mỗi người bán thấy size nào đang bán được, size nào đã hết hàng, và khi nào họ nên nhập thêm hàng (restock).

Workflow thực ra bắt đầu bằng brainstorm, với bốn bước brainstorm, draft, review, drift. Nhưng trước khi vào đó, cần chạy một lệnh khác: lệnh **EGM bootstrap**. Theo AI LABS (video đăng ngày 25/10/2026), lệnh này cho Elephant biết mọi thứ nó cần biết về app và cách app hoạt động, trước khi nó có thể lên kế hoạch cho bất cứ thứ gì mới bên trên. Lệnh đi qua app từng folder một và viết một file README cho mỗi folder, giải thích code trong folder đó làm gì và mọi quy tắc nó phải tuân theo.

Nhưng trước khi bắt đầu, nếu app có hơn 15 folder, nó sẽ hỏi bạn có còn muốn viết bản đồ đầy đủ hay không. Theo AI LABS (video đăng ngày 25/10/2026), nó làm vậy vì viết README cho chừng ấy folder tốn rất nhiều sub-agent, nên nó hỏi bạn trước. Trên màn hình, câu hỏi ghi: "The target directory tree contains more than 15 subdirectories. This is a large execution scope. Do you want to proceed with full-tree bootstrapping?", và câu trả lời được chọn là "Yes, proceed".

Nhóm bảo nó tiếp tục, và nó bắt tay vào việc. Nó khởi động các sub-agent, mỗi con làm một phần khác nhau của app; khi xong, chúng viết các file README. Trong trường hợp của nhóm, nó viết 28 file README mới và cập nhật file README chính đã có sẵn (demo trong video đăng ngày 25/10/2026).

![Claude Code báo đã viết 28 file README.md mới cộng một bản cập nhật cho README gốc, kèm phần Scope và What was written](https://homus.dev/photos/xxf6D9jynFw-0809.jpg)

Kết quả bootstrap: "28 new README.md files plus an update to the root README.md", không file nào được stage hay commit, không đụng vào source code; `public/` và `specs/` bị bỏ qua vì không chứa code, và ba worker chạy song song lo `app/`, `components/`, `lib/` (demo trong video đăng ngày 25/10/2026).

Theo AI LABS (video đăng ngày 25/10/2026), trong file README chính sẽ có một phần mới chưa từng có. Nó liệt kê mỗi phần của app làm gì, những quy tắc luôn phải đúng, và điều gì thay đổi khi phần đó chạy; trên màn hình, ba cột này có tên Parts, Always true và What changes. Mỗi folder có code đều có file README riêng, cho biết folder dùng để làm gì, bên trong có gì, mỗi phần làm gì và các phần nối với nhau thế nào. Folder không có code thì không có README. Ví dụ, nhóm có một folder `specs` chứa các kế hoạch đã dùng để build app, nên folder đó không có README (demo trong video đăng ngày 25/10/2026).

## 11. README viết cho người, không cho agent: ba cách sửa

Nhưng việc bootstrap viết các file dưới dạng README có một vấn đề. Theo AI LABS (video đăng ngày 25/10/2026), các file này được viết cho người đọc, không phải cho agent khác. Nên agent bình thường không đọc chúng trừ khi bạn bảo. Nghĩa là nếu lệnh này chỉ viết README, Claude Code sẽ không tự đọc chúng.

Có ba cách sửa, theo AI LABS (video đăng ngày 25/10/2026):

- Thêm một file `CLAUDE.md` cạnh mỗi file README và bảo nó kiểm tra cả file README. Nếu dùng Codex, bạn có thể dùng file `AGENTS.md` thay thế (theo video đăng ngày 25/10/2026).

- Chạy lại lệnh bootstrap và thêm một thiết lập bảo nó tạo file `CLAUDE.md` ngay từ đầu (theo video đăng ngày 25/10/2026).

- Thêm một dòng vào file `CLAUDE.md` chính, bảo Claude đọc file README trong mọi folder nó làm việc (theo video đăng ngày 25/10/2026).

![Claude Code đưa ra ba cách sửa: thêm CLAUDE.md một dòng cạnh mỗi README, chạy lại bootstrap với target_filename=CLAUDE.md, hoặc thêm một dòng vào CLAUDE.md gốc](https://homus.dev/photos/xxf6D9jynFw-0855.jpg)

Ba cách sửa như Claude trình bày trên màn hình: (1, được khuyên dùng) thêm một file `CLAUDE.md` một dòng chứa `@README.md` cạnh mỗi README; (2) chạy lại bootstrap với `target_filename=CLAUDE.md`; (3) thêm vào `CLAUDE.md` gốc một dòng như "Before editing code in a folder, read its README.md." (demo trong video đăng ngày 25/10/2026).

Trên màn hình, Claude còn ghi rằng với tình trạng lúc đó, 28 contract giúp ích cho người đọc nhưng Claude chỉ đọc tới chúng một cách tình cờ, và cách thứ ba là ít việc nhất nhưng phụ thuộc vào việc Claude có làm theo hướng dẫn mọi lần hay không, điều không được bảo đảm (demo trong video đăng ngày 25/10/2026).

Nhóm AI LABS chọn thêm một file `CLAUDE.md` cạnh mỗi README để chắc Claude làm theo chúng đúng cách. Trên màn hình, Claude báo đã thêm các file `CLAUDE.md` một dòng, mỗi file chỉ chứa `@README.md`, vào `app/`, `components/`, `lib/` và `lib/actions/` (demo trong video đăng ngày 25/10/2026). Khi các file README đã xong, bạn có thể chuyển sang bước tiếp theo.

## 12. Brainstorm: hỏi tới khi rõ, rồi sáu Goldfish review

Khi bootstrap đã xong, bước tiếp theo là thực sự bắt đầu build. Theo AI LABS (video đăng ngày 25/10/2026), mọi bước đều được liệt kê trong repo GitHub, và bạn có thể chạy từng bước một. Phần Quickstart của repo trên màn hình gồm bốn bước: Ideate & Stress-Test với `/egm-brainstorm`, Draft với `/egm-draft`, Review & Resolve với `/egm-review docs/designs/<feature>.md`, và Submit & Implement; trong Claude Code, các lệnh dùng tiền tố `/egm:`.

Bước đầu tiên là chạy lệnh **EGM brainstorm** và nói feature bạn muốn thêm. Lệnh nhóm gõ trên màn hình (demo trong video đăng ngày 25/10/2026):

```
/egm-brainstorm i want to add in seller analytics for app
```

Khi nhóm làm vậy, nó phát hiện app đã có sẵn một kế hoạch viết cho feature này (trên màn hình là `specs/features/18-seller-analytics.md`). Nó chỉ ra mọi điểm sai trong kế hoạch đó, ví dụ khoảng một nửa phụ thuộc vào những feature chưa tồn tại, và "những size đã hết hàng và hết bao lâu" chưa thể tính được vì không có gì ghi lại lúc một size về 0, rồi hỏi nhóm một loạt câu (demo trong video đăng ngày 25/10/2026). Nếu bạn chưa có kế hoạch nào như nhóm, nó sẽ hỏi bạn còn nhiều câu hơn. Bạn chỉ cần tiếp tục trả lời, và khi mọi câu đã được trả lời, nó đưa ra phỏng đoán tốt nhất của nó về cách build feature (theo AI LABS, video đăng ngày 25/10/2026).

Rồi nó cho bạn hai lựa chọn (theo AI LABS, video đăng ngày 25/10/2026). Lựa chọn thứ nhất là review bằng Goldfish: chạy sáu Goldfish, mỗi con nhìn ý tưởng theo một cách khác nhau, rồi viết ý tưởng ra một file gọi là **concept brief**. Hoặc nếu bạn thấy hướng tiếp cận của nó chưa đúng, bạn có thể giải thích thêm trong chat. Trên màn hình, hai lựa chọn này là "Review with Goldfishes" (khoá giả thuyết này, chạy review Goldfish sáu góc nhìn rồi viết `concepts_brief.md`) và "Clarify more in chat". Nhóm thấy nó đã đủ tốt, nên chọn review bằng Goldfish.

![Claude Code: egm-synthesizer chạy nền, gửi ý tưởng tới sáu reviewer song song, kèm phạm vi Core, What it needs, Success, Secondary, Deferred](https://homus.dev/photos/xxf6D9jynFw-1107.jpg)

Sau khi chọn review: agent điều phối `egm-synthesizer` gửi ý tưởng tới sáu reviewer song song (design, codebase details, simplicity/YAGNI, plain-reader comprehension, implementation readiness, structure), mỗi con bắt đầu mới, không nhớ gì về cuộc chat. Phạm vi được review là trang `/sell/insights` cho seller demo, với gợi ý restock cho size nào bán hết trong vòng 14 ngày sau khi nhập lại (demo trong video đăng ngày 25/10/2026).

Theo AI LABS (video đăng ngày 25/10/2026), nó khởi động một sub-agent, và sub-agent này khởi động thêm sáu con nữa chạy nền. Mỗi con bắt đầu mới tinh và không biết gì về cuộc chat của bạn. Khi chúng xong, nó viết file concept brief. File này nằm ở folder chính của project. Nó giải thích feature, những gì tìm thấy khi xem xét feature, điều gì đang cản đường, và mọi việc cần làm. Bạn có thể đọc nó để xem có khớp với điều mình muốn không.

## 13. Draft: viết design draft từng phần một

Bạn có thể yêu cầu sửa bao nhiêu lần cũng được, nhưng nếu đã hài lòng, bước tiếp theo là chạy lệnh **EGM draft**. Theo AI LABS (video đăng ngày 25/10/2026), lệnh này lấy file concept brief và viết phiên bản đầu tiên của kế hoạch, gọi là **design draft**. Nó giải thích feature, vấn đề feature giải quyết, những gì feature sẽ làm và không làm, để không có gì bị lạc mất.

Nó còn liệt kê những đường đi chính mà một người đi qua trong feature, gọi là **critical user journeys**, để có thể viết test dựa trên chúng (theo AI LABS, video đăng ngày 25/10/2026). Bạn cần duyệt file này, và khi bạn duyệt thì nó sửa file. Nó viết kế hoạch từng phần một và chờ bạn duyệt sau mỗi phần, để bạn lái hướng đi trước khi phần tiếp theo được xây lên trên.

![Claude Code báo đã viết phần đầu của design_draft.md: Overview, The Problem, Goals, Non-Goals, Open Questions và năm user journey](https://homus.dev/photos/xxf6D9jynFw-1136.jpg)

Phần đầu tiên của `design_draft.md`: Overview, The Problem, Goals, Non-Goals, Open Questions và năm user journey; bên dưới là những gì phần này quyết định (Success test, Edit-form behaviour, Top-up seed case) và một câu hỏi còn mở để nhóm quyết (demo trong video đăng ngày 25/10/2026).

Tiếp theo nó thêm **technical plan**, tức cách feature thực sự được build. Khi bạn duyệt, nó thêm một phần gọi là **alternatives considered**, liệt kê những cách khác có thể đã dùng để build feature, với mặt tốt và mặt xấu của từng cách và lý do chúng không được chọn (theo AI LABS, video đăng ngày 25/10/2026). Trên màn hình, ví dụ một phương án bị loại là dùng một version column thay vì so sánh số lượng gốc, vì nó cần đổi schema trên một bảng có sẵn trong khi app không có code migration; nhóm gõ "approve" để đi tiếp (demo trong video đăng ngày 25/10/2026).

Khi bạn đã đọc phần alternatives, nó chuyển sang kế hoạch build từng bước. Theo AI LABS (video đăng ngày 25/10/2026), nó liên tục cập nhật tất cả các phần này trong file design draft, và khi xong, nó lưu một file đặt tên theo feature vào folder `designs` bên trong folder `docs` (trên màn hình là `docs/designs/seller-insights.md`). Folder `designs` là nơi mọi feature bạn build theo cách này được lưu, và là thứ bạn sẽ bảo agent build theo.

## 14. Review: năm vòng Goldfish trước khi build

Nhưng toàn bộ kế hoạch này được viết bởi chính agent đã đồng ý với bạn suốt từ đầu. Vì vậy, trước khi bất cứ thứ gì được build, nó được đưa cho Goldfish. Để làm vậy, bạn chạy lệnh **EGM review** (theo AI LABS, video đăng ngày 25/10/2026). Lệnh nhóm gõ trên màn hình:

```
/egm-review docs/designs/seller-insights.md
```

Theo AI LABS (video đăng ngày 25/10/2026), nó bắt đầu với một sub-agent tên là **zoom out**. Sub-agent này kiểm tra xem có cách nào dễ hơn để build feature không, hoặc app đã có sẵn thứ gì làm được việc đó chưa, và nó không biết gì về cuộc chat của bạn. Khi xong, nó viết một báo cáo với danh sách mọi vấn đề lớn. Trên màn hình, báo cáo "Stage 5: Initial Zoom Out Review" có kết luận "Pass with changes" (demo trong video đăng ngày 25/10/2026).

![Danh sách Major problems trong báo cáo zoom out: đổi tên size luôn bị từ chối, Phase 2 nhiều code như Phase 1, cùng chi tiết xuất hiện hai lần và đã lệch nhau](https://homus.dev/photos/xxf6D9jynFw-1300.jpg)

Phần "Major problems" của báo cáo zoom out: (1) đổi tên một size, ví dụ từ "M" thành "Medium", sẽ luôn bị từ chối, một bug trong design; (2) Phase 2 nhiều code gần bằng Phase 1 mà test thành công không cần tới; (3) cùng chi tiết xuất hiện hai lần trong Technical Plan và Detailed Plan và hai bản đã lệch nhau (demo trong video đăng ngày 25/10/2026).

Theo AI LABS (video đăng ngày 25/10/2026), review diễn ra theo vòng, và trong mỗi vòng, kế hoạch được kiểm tra theo một cách, rồi sub-agent báo cáo điều nó tìm thấy. Sau mỗi vòng, bạn có thể đi tiếp sang vòng sau hoặc yêu cầu sửa. Tổng cộng có năm vòng review, và công cụ đánh số chúng từ năm tới chín. Sau mỗi vòng, nó viết một báo cáo cho vòng đó và cập nhật kế hoạch trong folder `designs` dựa trên những gì tìm được.

Bạn có thể yêu cầu sửa ở bất cứ chỗ nào cần, và khi tất cả các vòng đã xong, bạn kết thúc review. Nó sau đó đổi trạng thái của kế hoạch từ "in review" sang "proposed" và đánh dấu review đã xong (theo AI LABS, video đăng ngày 25/10/2026). Trên màn hình, dòng `Status: In Review` trong file được thay bằng `Status: Proposed`.

## 15. Build từ file design và drift report

Về cơ bản, thứ bạn có trong tay cuối cùng là một file trong folder `docs/designs` để dùng khi yêu cầu build feature. Theo AI LABS (video đăng ngày 25/10/2026), bạn có thể mở một chat mới và bảo agent build feature trong file này, và nó bắt tay vào làm. Câu nhóm gõ trên màn hình:

```
build the feature described in the docs/design/seller-insights.md
```

Theo AI LABS (video đăng ngày 25/10/2026), bằng cách này các trường hợp khó được giải quyết trước khi bất cứ thứ gì được build, và kết quả tốt hơn nhiều vì Claude có quy tắc rõ ràng để làm theo.

Nhưng khi feature đã được build, app của bạn vẫn tiếp tục thay đổi, còn các file thì không. Vì vậy EGM còn có một lệnh kiểm tra xem có phần nào của app đi ngược với các file README không. Để dùng, bạn chỉ cần chạy lệnh **EGM drift report** (trên màn hình là `/egm-drift-report`), và nó hỏi bạn muốn kiểm tra bao nhiêu phần của app (theo AI LABS, video đăng ngày 25/10/2026).

Nhóm bảo nó kiểm tra với tất cả các file README (trên màn hình, lựa chọn "All READMEs (Recommended)"), và nó khởi động hai sub-agent để xem các phần khác nhau của app. Khi cả hai quay về, nó làm một báo cáo đầy đủ cho thấy những gì đã thay đổi và chỗ app với các file README không còn khớp (demo trong video đăng ngày 25/10/2026).

Nó còn bắt được bug thật trong code (demo trong video đăng ngày 25/10/2026). Ví dụ, trong app của nhóm, chủ shop có thể xoá những sản phẩm đã bán được, dù quy tắc nói rằng sản phẩm đã có người mua chỉ được ẩn đi, không được xoá. Nó liệt kê mọi thứ tìm được, và bạn có thể bảo nó sửa các vấn đề ở từng phần của app, điều mà theo AI LABS làm app tốt hơn nhiều.

![Phần Real bugs in the code của drift report với bảy mục, trong đó mục 2 là Owners can delete products that have sales](https://homus.dev/photos/xxf6D9jynFw-1418.jpg)

Phần "Real bugs in the code" của drift report trên màn hình liệt kê bảy mục, như password hash sai định dạng vẫn chấp nhận mọi mật khẩu, chủ shop xoá được sản phẩm đã có lượt bán (chỉ nút bị ẩn, còn server action vẫn xoá), sửa tồn kho về 0 gây lỗi khi size đó đang nằm trong giỏ của ai đó, và checkout không kiểm tra lại giá (demo trong video đăng ngày 25/10/2026).

## 16. Khi nào đáng dùng EGM

Theo nhận định của AI LABS (video đăng ngày 25/10/2026), workflow này thực sự tốt nếu bạn đang lên kế hoạch cho một feature lớn mà làm sai sẽ tốn của bạn rất nhiều. Lý do nhóm đưa ra là nó đi qua các edge case và khả năng sâu hơn những cách khác nhóm đã thử. Nhưng dù tốt, điều đó không có nghĩa bạn nên dùng nó cho mọi thứ. Theo lời AI LABS dẫn Google, nó không đáng dùng cho một bản sửa nhỏ mà agent làm được trong một lượt, vì với thay đổi nhỏ, tất cả việc lên kế hoạch và review chỉ làm bạn chậm lại.

Ranh giới AI LABS đưa ra (video đăng ngày 25/10/2026, phần sau dẫn lời Google): dùng EGM cho feature lớn mà sai thì tốn kém, bỏ qua với bản sửa nhỏ agent làm một lượt là xong.

Và đây không phải cách duy nhất để lên kế hoạch với agent; còn rất nhiều cách khác. Theo AI LABS (video đăng ngày 25/10/2026), với phần lớn các cách đó, bạn có được một kế hoạch viết ra, nhưng tìm ra kế hoạch sai ở đâu mới là phần khó. Với EGM, Goldfish tìm giúp bạn, và vì chúng không bao giờ thấy cuộc chat của bạn, không điều gì bạn nói có thể thuyết phục chúng bỏ qua vấn đề.

Trong số các cách nhóm đã xem, chỉ vài cách khác làm được điều tương tự (nhận định của AI LABS trong video đăng ngày 25/10/2026). Và sau khi bạn đã build, EGM có thể quay lại soát toàn bộ app và cho bạn biết chỗ nào không còn khớp với kế hoạch, trong khi các cách khác phần lớn chỉ kiểm tra từng feature một, ngay sau khi build. Vì vậy, theo AI LABS, dù tốn thời gian hơn, với những feature quan trọng thì nó đáng dùng.

Video kết thúc bằng lời cảm ơn người xem và hẹn gặp ở video tiếp theo.

## Nguồn và liên kết

- Tên gốc: EGM: Google's New Way To Use Claude Code Is Insane
- Sự kiện: [YouTube](https://homus.dev/events/youtube)
- Video gốc: [https://www.youtube.com/watch?v=xxf6D9jynFw](https://www.youtube.com/watch?v=xxf6D9jynFw)

- Kênh YouTube AI LABS (AI LABS): [youtube.com/channel/UCelfWQr9sXVMTvBzviPGlFw](https://www.youtube.com/channel/UCelfWQr9sXVMTvBzviPGlFw)

- Repo Elephant-Goldfish Model của Google (README có bảng Install cho từng harness, Quickstart bốn bước và danh sách skill, license Apache 2.0; đọc ngày 25/10/2026): [github.com/google/elephant-goldfish-model](https://github.com/google/elephant-goldfish-model)

- Website của dự án, có nút "Copy install prompt" và phần giới thiệu ba vai Elephant, Goldfish, You (đọc ngày 25/10/2026): [egm.dev](https://egm.dev)

- Bài viết nền tảng: "Elephants, Goldfish, and the New Golden Age of Software Engineering" của Dave Rensin, đăng trên Medium (README của repo dẫn tới bài này, đọc ngày 25/10/2026).

Nguồn: https://homus.dev/talks/egm-googles-new-way-to-use-claude-code-is-insane · cập nhật 2026-10-25
