Nếu bắt đầu Claude Code hôm nay: thói quen day 1, week 1, month 1

Novaki · Novaki

Các thói quen dùng Claude Code cho day 1, week 1, month 1: plan mode, kiểm chữ done, CLAUDE.md, permissions, chọn model, job dài, subagent, skill, MCP.

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

1. Ba chuyện thật và một task board làm ví dụ

Video do kênh Novaki làm, phần lời dẫn dùng giọng đọc AI (theo mô tả video đăng ngày 19/10/2026). Mọi ví dụ trong đó, theo mô tả, đều là thật: một app nhỏ được build ngay cho video này, một bài thử model mới, và những lỗi lấy từ các project của chính nhóm Novaki.

Video mở đầu bằng một phép so sánh. Cùng một app được giao cho hai model. Model rẻ nhất là Haiku làm xong trong 15 giây với chi phí chưa tới nửa cent. Opus ở mức cài đặt cao nhất thì làm gần chín phút, hết 1,74 đô. Cả hai đều qua đúng cùng một bộ kiểm tra (số đo của Novaki, video đăng ngày 19/10/2026).

Chuyện thứ hai đến từ một project khác của nhóm: 31 job trông như đã xong, nhưng trên cả bảy cửa hàng, không có một product ID nào được lưu lại. Chuyện thứ ba: trong một project nữa, chỉ một lệnh được chạy để chẩn đoán lỗi đã ghi đè database đang chạy thật bằng một bản cũ. Kết quả là bảy dashboard không mở được và ba tài khoản mất dữ liệu (theo lời kể trong video đăng ngày 19/10/2026). Video nhấn mạnh: tất cả đều là chuyện thật.

Từ đó video đặt câu hỏi: nếu bắt đầu lại Claude Code từ con số không hôm nay, nên làm gì ở day one, ở week one và ở month one để không gặp những chuyện này? Video hứa sẽ cho xem hết, kèm một ví dụ chạy thật xuyên suốt.

Ví dụ đó là một task board nhỏ do Claude Code build. Theo video (đăng ngày 19/10/2026), việc này mất 23 giây và app chạy được: thêm một task, đánh dấu xong, refresh trang, các task vẫn còn nguyên. Nhưng cuối câu trả lời của Claude có một dòng: nó chưa tự mở app trong browser, nên app chưa được test. Video dặn người xem nhớ dòng đó, vì đó là chỗ câu chuyện về lỗi trên điện thoại bắt đầu.

Task Board do Claude Code build: ô Add a task, nút Add và ba task, một task đã gạch
Ví dụ chạy xuyên suốt video, ghi là "a real build": một Task Board có ô thêm task, nút Add, dòng "2 of 3 remaining" và ba task mẫu, trong đó "Reply to the client" đã được đánh dấu xong (demo trong video đăng ngày 19/10/2026).

Theo video, nếu bắt đầu lại, điều đầu tiên nên học không phải là làm sao để có thứ được build ra, mà là làm sao biết thứ mình yêu cầu đã thật sự xong.

2. Day 1: cài đặt và mở đúng thư mục

Day one bắt đầu bằng việc cài đặt. Theo video (đăng ngày 19/10/2026), cách chính thức là một dòng lệnh: một lệnh curl trên macOS và Linux, một lệnh PowerShell trên Windows. Kiểm tra đã cài được chưa bằng claude --version, và nếu có gì trục trặc thì claude doctor sẽ kiểm tra lại setup.

Sau đó vào thư mục project và gõ claude. Theo video (đăng ngày 19/10/2026), để đăng nhập cần một gói Claude trả phí hoặc một tài khoản API; gói miễn phí không có Claude Code.

Một trong những luật đầu tiên của nhóm Novaki: luôn khởi động Claude trong thư mục của project đang làm. Khởi động từ thư mục cha chứa tất cả các project chỉ làm vùng làm việc của nó rộng ra mà chẳng được gì (theo video đăng ngày 19/10/2026).

Video cũng bảo nhìn xuống thanh ở dưới cùng: nó cho biết đang ở permission mode nào. Ở các phiên bản mới, theo video (đăng ngày 19/10/2026), session đầu tiên có thể khởi động luôn ở auto mode. Vì vậy đừng giao việc đầu tiên trước khi biết nó được phép làm những gì.

Trang docs Choose a permission mode bên cạnh thẻ Check the mode bar và con dấu Starts in auto?
Trang docs "Choose a permission mode" trên code.claude.com, đoạn được tô ghi rằng từ Claude Code v2.1.283 trở đi auto mode là permission mode khởi đầu cho session terminal và VS Code. Bên phải là thẻ "Check the mode bar" (shift+tab để đổi) và con dấu "Starts in auto?" (video đăng ngày 19/10/2026).

3. Hỏi trước khi giao việc: plan mode, Esc và rewind

Lệnh đầu tiên, theo video, không nên là "làm cái này". Hãy hỏi trước: trong thư mục này có gì? Nó chạy thế nào? Chỗ nào không được đụng vào? Plan mode sinh ra cho việc đó. Bật bằng Shift và Tab; khi đó, theo video (đăng ngày 19/10/2026), Claude đọc, gom lại một kế hoạch, nhưng không đụng vào file.

Video dẫn hướng dẫn chính thức gợi ý cùng một thứ tự: explore trước, rồi plan, rồi code, rồi commit. Chỉ bỏ bước plan với một thay đổi nhỏ và rõ ràng: nếu mô tả được diff trong một câu thì không cần plan (theo video đăng ngày 19/10/2026).

exploreplancodecommit bỏ plan khi diff mô tả được trong một câu (theo video đăng ngày 19/10/2026)
Hình 3.1Thứ tự explore, plan, code, commit mà video dẫn từ hướng dẫn chính thức, và ngoại lệ cho thay đổi nhỏ (video đăng ngày 19/10/2026).

Nếu thấy nó đang đi sai hướng, bấm Esc một lần là nó dừng. Nhưng theo video (đăng ngày 19/10/2026), việc đó không hoàn tác những thay đổi đã làm. Muốn hoàn tác thì bấm Esc hai lần để rewind. Có điều, những thay đổi tạo ra qua lệnh terminal thì rewind không bao được. Video nói docs ghi rõ điều này: rewind cũng không thay thế được Git.

4. Git checkpoint trước thay đổi đầu tiên

Video kể một sự cố: trong một project của nhóm Novaki, app cũ bị xoá trong lúc đang cài bản mới, mà không có bản sao lưu nào. Đường lui duy nhất là một bản lưu trữ từ một tháng trước (theo lời kể trong video đăng ngày 19/10/2026).

Vì vậy thói quen video thích nhất là một Git checkpoint trước thay đổi đầu tiên. Với task board, mỗi bước đều được commit: ba phiên bản, ba commit (demo trong video đăng ngày 19/10/2026).

commit 1commit 2commit 3 prompt 1: task boardprompt 2: due date + filterprompt 3: export mỗi bước một checkpoint để quay lại (demo trong video đăng ngày 19/10/2026)
Hình 4.1Task board trong video được build bằng ba prompt và ba commit, mỗi commit là một điểm có thể quay về (demo trong video đăng ngày 19/10/2026).

Video khuyên chọn task đầu tiên nhỏ và dễ kiểm tra.

5. Task đầu tiên: ba câu hỏi

Prompt đầu tiên cho board chỉ là một câu: make a simple task board. Theo video (đăng ngày 19/10/2026), nó chạy được vì bản thân việc đó đã nhỏ.

Ở prompt thứ hai (demo trong video đăng ngày 19/10/2026), cách làm đổi đi: prompt trả lời ba câu hỏi. Muốn gì? Thêm due date cho task và một bộ lọc. Được phép đổi gì? Chỉ file này, design giữ nguyên và các task đã lưu vẫn phải chạy. Thế nào là xong? Bốn điểm. Cuối prompt có thêm câu: hãy cho biết đã kiểm từng điểm như thế nào. Prompt còn yêu cầu Claude giải thích kế hoạch trong ba gạch đầu dòng trước khi sửa bất cứ thứ gì.

Thẻ Three questions: What do I want, What may it change, When is it done
Ba câu hỏi trên màn hình: "What do I want?" (due dates + a filter), "What may it change?" (only index.html, keep the design, keep saved tasks) và "When is it done?" (4 checks + tell me how you checked each one), video đăng ngày 19/10/2026.

Theo video (demo trong video đăng ngày 19/10/2026), khác biệt hiện ra ngay trong câu trả lời. Claude ghi lại đã kiểm từng điểm trong bốn điểm thế nào: đếm kết quả các bộ lọc với bảy task, nạp lại dữ liệu cũ đã lưu, và thử các due date. Và nó nói thẳng một điều: nó không xem được kết quả trong browser vì một lệnh chụp màn hình cần được duyệt; ngoài ra trên điện thoại màn hình hẹp, ô tiêu đề bị ngắn đi khá nhiều.

Câu trả lời của Claude liệt kê cách kiểm bốn điểm, điểm thứ tư ghi chưa kiểm phần giao diện
Câu trả lời thật của Claude, ghi "how I checked each point": due date (chỉ task hạn hôm qua bị đánh overdue), filter (với 7 task, All hiện 7, Active 5, Done 2), task đã lưu không có ngày vẫn hiện đúng trạng thái, và dòng đỏ "Not checked: what it looks like". Chú thích bên dưới ghi một Node script đã chạy code của trang, "it tests the logic, not how things look" (demo trong video đăng ngày 19/10/2026).

Người làm video tự mở ra xem, và Claude nói đúng: ở độ rộng điện thoại, ô tiêu đề hẹp đến mức gần như không gõ vừa hai chữ. Mọi bài kiểm đều qua mà lỗi vẫn còn, vì các bài kiểm nhìn vào logic chứ không nhìn vào layout (demo trong video đăng ngày 19/10/2026).

6. "Done" là một lời khẳng định, không phải bằng chứng

Video kể một phiên bản đắt hơn nhiều của chuyện này, trong một project khác của nhóm Novaki: một hệ thống nghiên cứu sản phẩm, nơi 31 job trông như đã xong, có cả kết quả. Nhưng trên bảy cửa hàng, không một Amazon product ID nào được lưu. Các lượt tìm kiếm đã chạy và kết quả đã trả về, nhưng bước lưu kết quả chỉ chạy nếu có thứ gì đó gọi nó thêm lần nữa, và chẳng có gì gọi cả (theo lời kể trong video đăng ngày 19/10/2026).

tìm kiếmđã chạy kết quảđã trả về bước lưukhông ai gọi lại 31 job trông như xong · 0 product ID được lưu · 7 cửa hàng (theo video đăng ngày 19/10/2026)
Hình 6.1Hệ thống nghiên cứu sản phẩm trong video: tìm kiếm chạy, kết quả về, nhưng bước lưu không bao giờ được gọi (theo lời kể trong video đăng ngày 19/10/2026).

Bài học video rút ra: một thông báo "done" không phải bằng chứng, nó là một lời khẳng định. Bằng chứng là một lần kiểm tra được làm ở đúng chỗ kết quả thật sự được dùng. Video kể một project khác của nhóm có đúng luật này trong file hướng dẫn: server khởi động lên không tự nó là thành công. Và theo video (đăng ngày 19/10/2026), đây cũng là mục đầu tiên trong hướng dẫn chính thức.

Hãy cho Claude một bài kiểm mà nó tự chạy được: một test, một build, một ảnh chụp màn hình. Và ở chỗ nào nó nói "tôi không kiểm được cái này", thì chính mình phải kiểm (lời khuyên trong video đăng ngày 19/10/2026).

7. Đọc diff

Một phần của việc kiểm là đọc thay đổi. Sau prompt thứ hai, người làm video xem bằng git diff: 72 dòng được thêm vào index.html, bảy dòng bị xoá (demo trong video đăng ngày 19/10/2026). Không cần đọc từng dòng, nhưng theo video, lúc nào cũng nhìn hai thứ: những chỗ mình đã dặn không được đụng, và những phần thêm vào mà mình không ngờ tới.

Storage key vẫn giữ nguyên, và theo video (demo đăng ngày 19/10/2026), đó là lý do task cũ nạp lại không gặp trục trặc gì.

Đoạn git diff của index.html cạnh Task Board có ô ngày và ba bộ lọc
Đoạn git diff thật của index.html: dòng const STORAGE_KEY = "task-board"; được tô và chú thích "unchanged → old tasks still load"; dòng thêm vào là một <input type="date"> nằm cùng form với ô tiêu đề và nút Add. Bên phải là board với ô ngày và ba bộ lọc All, Active, Done (demo trong video đăng ngày 19/10/2026).

Lý do ô tiêu đề bị ép trên điện thoại cũng nằm ngay trong diff: ô ngày được thêm vào cùng hàng với ô tiêu đề và nút Add, nên trên màn hình hẹp không còn chỗ cho tiêu đề (demo trong video đăng ngày 19/10/2026). Video tóm lại: khi một bài kiểm cho thấy vấn đề, diff thường cho thấy vì sao. Và nếu hoàn toàn không ưng thay đổi đó, quay về checkpoint gần nhất chỉ là một lệnh Git.

8. Week 1: CLAUDE.md

Theo video, file đáng giá nhất của week one là CLAUDE.md. Một session mới không nhận lại toàn bộ cuộc trò chuyện trước. Theo video (đăng ngày 19/10/2026), thứ nó nhận được là hướng dẫn của project và các ghi chú đã lưu vào auto memory. CLAUDE.md là một ghi chú project được đọc khi session bắt đầu, và lệnh /init đọc code rồi viết bản nháp đầu tiên.

Terminal chạy /init và một file CLAUDE.md mẫu cho task board
Bên trái: terminal chạy /init, Claude báo đã đọc codebase và viết một CLAUDE.md khởi đầu. Bên phải: CLAUDE.md mẫu cho task board với các mục Run, Rules và Status (video đăng ngày 19/10/2026).

Nội dung file mẫu trên màn hình:

# Task Board
## Run
Open index.html in a browser. No build step
## Rules
- Everything stays in index.html
- Never rename the localStorage key
## Status
- Done: due dates, filters, export
- Open: title box too narrow on phones
- Next: fix the phone layout

Vậy nên đưa gì vào? Theo video: cách chạy project, những file nào quan trọng, và những việc nó tuyệt đối không được làm. Video dẫn một phép thử hay từ hướng dẫn chính thức (theo video đăng ngày 19/10/2026): với mỗi dòng, hỏi "nếu xoá dòng này, Claude có mắc lỗi không?" Nếu không, xoá đi.

Nhóm Novaki thêm một thứ nữa: một bảng trạng thái hiện tại, gồm cái gì đã xong, cái gì còn mở, cái gì làm tiếp. Theo video (đăng ngày 19/10/2026), những dòng tốt nhất thường đến từ một lần có chuyện hỏng.

Một project của nhóm có một bảng các điều cấm trong file này, và mỗi luật có lý do viết ngay bên cạnh. Ví dụ: không bao giờ chạy rsync bằng tay ngoài deploy script, vì trong một lần chẩn đoán, lệnh đó đã ghi đè database đang chạy thật bằng một bản cũ. Và vì kích thước file và ngày tháng trông y hệt nhau, không ai nhìn bằng mắt mà nhận ra được (theo lời kể trong video đăng ngày 19/10/2026).

Mục Never and why trong CLAUDE.md của một project thật, ba luật kèm lý do
CLAUDE.md của một project thật, được dịch sang tiếng Anh: mục "Never and why" với ba luật kèm lý do, gồm không chạy rsync bằng tay (lý do: lần chẩn đoán đã thay database thật bằng bản cũ), không khởi động panel trên laptop (lý do: chạy cạnh server nó gửi job trùng), không sửa code trên server (lý do: laptop và server lệch nhau), video đăng ngày 19/10/2026.

Còn có một file hướng dẫn cá nhân, được đọc ở mọi project. Theo video, chỉ đặt vào đó những luật thật sự áp dụng ở mọi nơi. Muốn xem Claude đang đọc những gì thì dùng /context và /memory (theo video đăng ngày 19/10/2026).

9. Context sạch: /clear, /resume, /compact

Một thói quen xấu dễ nhiễm trong week one là làm mọi thứ trong một session: board, rồi một bug khác, rồi một câu hỏi, rồi quay lại board. Theo video (đăng ngày 19/10/2026), khi context đầy dần, Claude bắt đầu lẫn các chi tiết cũ, và docs chính thức xếp đây vào nhóm lỗi phổ biến nhất.

Cách sửa nhàm chán nhưng hiệu quả: /clear giữa các task khác nhau. Theo video (đăng ngày 19/10/2026), ghi chú project vẫn được nạp, chỉ cuộc trò chuyện bị xoá. Có thể quay lại một session cũ bằng /resume. Nếu đang giữa một job dài, /compact tóm tắt cuộc trò chuyện và giải phóng chỗ.

/cleargiữa các task khác nhau;ghi chú project vẫn nạp /resumequay lạimột session cũ /compactgiữa job dài: tóm tắtvà giải phóng chỗ theo video đăng ngày 19/10/2026
Hình 9.1Ba lệnh giữ context sạch và việc mỗi lệnh làm, theo video đăng ngày 19/10/2026.

Thêm một luật: nếu đã thử sửa cùng một bug hai lần mà không được, đừng bảo "sửa đi" lần thứ ba. Theo video (đăng ngày 19/10/2026), hãy clear rồi viết một prompt tốt hơn, vì sửa chồng lên sửa làm không rõ thay đổi nào đã làm hỏng cái gì.

10. Cho xem thay vì mô tả

Video khuyên học cách cho xem thay vì mô tả. Khi nhắc tới một file, viết tên nó với dấu @ và theo video (đăng ngày 19/10/2026), Claude đọc thẳng file đó. Đừng cố tả bằng lời một vấn đề trên màn hình: có thể kéo thả một ảnh chụp màn hình hoặc dán bằng Ctrl và V. Nếu có thông báo lỗi, đừng tóm tắt, hãy dán nguyên văn. Cách sửa thường nằm ở đúng dòng mình tưởng là không quan trọng.

Ví dụ trên màn hình (video đăng ngày 19/10/2026): một prompt ngắn chỉ vào file bằng dấu @.

The title box is too narrow on phones. See @index.html

Board có một ví dụ hoàn hảo cho chuyện này. Claude không tự xem được giao diện trên điện thoại, vì lệnh chụp màn hình cần được cấp quyền. Theo video (demo đăng ngày 19/10/2026), nếu người dùng tự chụp màn hình đó và đưa cho nó, nó sẽ thấy vấn đề thay vì đoán. Video gói lại: cho nó xem thứ nó không thấy được, và tự kiểm thứ nó không kiểm được.

11. Xin mẫu trước, và cẩn thận với chữ mơ hồ

Với việc mở, không có đáp án sẵn, theo video (đăng ngày 19/10/2026), lỗi đắt nhất là làm xong cả thứ rồi mới đem ra xem. Nếu không ưng một design đã hoàn tất, quay lại tốn hơn nhiều so với chọn một trong hai bản mẫu.

Video thử điều này trên board (demo trong video đăng ngày 19/10/2026). Trước khi đổi design, prompt xin Claude hai bản khác nhau cho một task card duy nhất:

Thẻ Prompt real: xin hai kiểu task card trong hai file card-a.html và card-b.html
Prompt thật xin hai kiểu cho một task card trước khi đổi design, video đăng ngày 19/10/2026.
Before we change the design, show me two different looks for a single task card. Make two separate files, card-a.html and card-b.html, each showing the same three example tasks (one done, one overdue). Don't change index.html.

Chưa tới một phút đã có hai file: một bản gọn với các sọc màu ở mép, bản kia dùng các dấu tròn (demo trong video đăng ngày 19/10/2026). Chọn một bản, rồi mới cho áp lên toàn bộ design. Theo video, cách này rõ ràng hơn hẳn so với nói "làm cho hiện đại hơn".

Cũng phải để ý những chữ mơ hồ. Ở bước thứ ba của board (demo trong video đăng ngày 19/10/2026), prompt viết: export các task hiện tại. Trên màn hình, prompt 3 ghi:

Goal: let me export my tasks. Scope: add one "Export JSON" button ... Done when: the file content matches the tasks on screen.

Khi đang bật một bộ lọc, "hiện tại" nghĩa là gì: những task trên màn hình hay tất cả? Theo video (demo đăng ngày 19/10/2026), Claude tự quyết, lấy tất cả, và chỉ giải thích điều đó sau khi đã làm xong. Video kết: mỗi chữ để mơ hồ là một quyết định mà agent sẽ đưa ra thay mình.

12. Permissions, deny rule và hook

Theo video, permissions nên được sắp xếp ngay trong week one. Claude Code có các mode, theo video (đăng ngày 19/10/2026): ở manual mode, nó hỏi trước khi thay đổi; ở accept edits mode, nó tự sửa file nhưng vẫn hỏi với phần lớn lệnh; ở plan mode, nó chỉ đọc và đề xuất; ở auto mode, một classifier làm việc duyệt, và docs nói nó giảm các lần hỏi quyền nhưng không đảm bảo an toàn.

Có thể đặt luật cố định trong file settings: cho phép những lệnh này, không bao giờ đọc file kia (theo video đăng ngày 19/10/2026).

Board cho thấy một mặt của chuyện này. Claude không chụp được màn hình, và cũng không chạy được git status; cả hai đều cần quyền (demo trong video đăng ngày 19/10/2026). Theo video, nếu cho phép các lệnh an toàn và hay dùng, nó có thể tự kiểm.

Mặt còn lại là luật rsync kia. Theo video (đăng ngày 19/10/2026), một luật viết trong file hướng dẫn định hướng hành vi, nhưng về kỹ thuật không chặn được lệnh. Thứ thật sự chặn nó là một bước kiểm chạy trước hành động, tức một deny rule hoặc một hook, kèm việc test xem bước kiểm đó có thật sự hoạt động không.

Bảng Rule vs. control và một dòng deny trong .claude/settings.json
Bảng "Rule vs. control": luật viết trong CLAUDE.md ("never run rsync by hand") chỉ định hướng hành vi, còn bước kiểm trước hành động (deny rule, hook) chặn hẳn lệnh. Bên dưới là ví dụ .claude/settings.json (video đăng ngày 19/10/2026).

Dòng ví dụ trong .claude/settings.json trên màn hình:

"deny": ["Bash(rsync *)"]

Tiền cũng có giới hạn. Theo video (đăng ngày 19/10/2026), nếu chạy Claude một lần từ command line, có thể đặt trần chi tiêu bằng thiết lập max budget.

13. Chọn model và effort: Haiku và Opus max cùng qua một bài kiểm

Tiếp theo là chọn model và effort. Theo video (đăng ngày 19/10/2026), đổi model bằng /model và mức suy nghĩ bằng /effort. Phản xạ đầu tiên luôn là chọn cái to nhất, cao nhất.

Novaki đo việc này riêng cho video: đưa prompt đầu tiên của board, không đổi một chữ, cho bốn setup. Theo số đo của Novaki (video đăng ngày 19/10/2026), tính theo giá API:

  • Haiku 5.5: 15 giây, chưa tới nửa cent (số đo trong video đăng ngày 19/10/2026).
  • Sonnet 5.5: cũng 15 giây, khoảng sáu cent (số đo trong video đăng ngày 19/10/2026).
  • Opus 5.5: 24 giây, 12 cent (số đo trong video đăng ngày 19/10/2026).
  • Opus 5.5 ở max effort: làm gần chín phút (màn hình ghi 8 phút 47 giây), qua 19 bước, hết 1,74 đô; video nói đó là gấp 400 lần chi phí của Haiku (số đo trong video đăng ngày 19/10/2026).
Bốn bản task board của Haiku 5.5, Sonnet 5.5, Opus 5.5 và Opus 5.5 max kèm thời gian và chi phí
Bốn kết quả từ cùng một prompt: Haiku 5.5 15 s, dưới 0,005 đô; Sonnet 5.5 15 s, khoảng 0,06 đô; Opus 5.5 24 s, 0,12 đô; Opus 5.5 max 8 phút 47 giây, 1,74 đô (số đo trong video đăng ngày 19/10/2026).

Theo video (demo đăng ngày 19/10/2026), Opus max còn thêm một nút không ai yêu cầu (màn hình ghi là nút "Clear completed") và viết một test script, nhưng rồi ngồi chờ được cấp quyền để chạy nó. Cả bốn bản được đưa qua cùng một bài kiểm: thêm task, đánh dấu xong, refresh trang, và tiêu đề trống. Cả bốn đều qua (demo trong video đăng ngày 19/10/2026).

Mô tả video (đăng ngày 19/10/2026) ghi thêm: board được Claude Code v2.1.296 build; chi phí tính bằng số token nhân giá API, còn các lượt chạy dùng gói subscription.

Video nhấn mạnh đây là một việc nhỏ. Với việc khó, khoảng cách có thể mở ra, nhưng muốn biết nó mở ra ở đâu thì đo trên chính công việc của mình trước. Lời khuyên của video (đăng ngày 19/10/2026): bắt đầu với mặc định, và chỉ nâng lên khi thật sự bị kẹt ở đâu đó. Kiểm tra mình đang tiêu bao nhiêu bằng /usage.

14. Month 1: những job không bao giờ kết thúc

Sang month one, job dài hơn. Theo video (đăng ngày 19/10/2026), nguy hiểm thật sự là những job không bao giờ kết thúc mà không ai để ý.

Trong một project của nhóm Novaki, một test process sót lại từ một verification script đã chạy trên server suốt một ngày 15 giờ, vì script không có bước tắt nó sau khi test xong. Ở một project khác, trong lúc truy một bug, hai bản của cùng một app chạy cùng lúc, một bản được khởi động riêng từ một terminal (theo lời kể trong video đăng ngày 19/10/2026).

đặt giới hạnthời gian, ngân sáchhoặc checkpoint chạy độc lậptách khỏi session,ghi tiến độ ra file khi xongkiểm xem còn gìđang chạy phía sau bài học về job dài, theo video đăng ngày 19/10/2026
Hình 14.1Ba bước cho một job dài mà video rút ra từ hai sự cố trên (video đăng ngày 19/10/2026).

Bài học, theo video (đăng ngày 19/10/2026): đặt giới hạn cho job dài ngay từ đầu, dù là thời gian, ngân sách hay một checkpoint. Khởi động job độc lập với session và cho nó ghi tiến độ ra file, để nếu session đóng thì nó tiếp tục từ chỗ đã dừng. Và khi job xong, luôn kiểm một điều: còn gì đang chạy ở phía sau?

15. Thêm agent? Subagent, worktree và cái giá của chạy song song

Thêm agent là chuyện dễ bị cám dỗ. Theo video (đăng ngày 19/10/2026), Claude Code có subagent: chúng làm những việc ồn ào như research trong một context riêng và chỉ mang về kết quả. Còn có hỗ trợ Git worktree cho các session song song, để mỗi session làm trên một branch riêng.

Nhưng chạy song song đi kèm hoá đơn. Trong một project, nhóm Novaki dựng một hệ thống nhiều agent cùng làm việc và đo log: 85 lượt chạy, hơn 2,5 triệu ký tự. Video nói 51% số ký tự đó không phải công việc thật mà là review, tranh luận, nhắn tin và bỏ phiếu. Trong một vòng có 37 lượt review cho 9 kết quả (số đo của Novaki, video đăng ngày 19/10/2026).

Hai thanh: production 48,3% và reviews, debate, messages, votes 51,2%
Màn hình ghi "our multi-agent app · 85 runs · 277 rounds · 2,590,862 characters": phần production (kết quả, task) chiếm 48,3%, phần review, tranh luận, nhắn tin và bỏ phiếu chiếm 51,2% (số đo trong video đăng ngày 19/10/2026).

Thêm vào đó, theo video (đăng ngày 19/10/2026), chỉ một dòng code đã xoá các phụ thuộc giữa những task phải chạy theo thứ tự và khởi động tất cả cùng lúc. Trên màn hình, dòng đó nằm trong orchestrator.js, ngay dưới chú thích "when a dependency could not be resolved":

// when a dependency could not be resolved:
run.tasks.filter(t => t.status === "pending").forEach(t => (t.dependsOn = []))

Ở một project khác, hai session deploy cùng lúc, để lại các file không khớp nhau, và trang admin sập khoảng nửa phút. Nhóm đã thêm một deploy lock dùng chung (theo lời kể trong video đăng ngày 19/10/2026).

Luật video đưa ra: các job tách biệt có thể chạy song song, nhưng bước cuối ghi vào output dùng chung phải đi từng cái một. Nếu tốc độ là vấn đề, tìm nút thắt trước. Theo video (đăng ngày 19/10/2026), đôi khi vấn đề không nằm ở số agent mà ở một mục tiêu mù mờ.

16. Skill và MCP

Nếu đã làm một việc bằng tay vài lần và biết từng bước, theo video, đó là lúc biến nó thành thứ dùng lại được. Trong Claude Code, công cụ chính cho việc đó là một skill: một thư mục có file SKILL.md bên trong, chứa các bước, tool và luật. Theo video (đăng ngày 19/10/2026), gọi nó bằng dấu gạch chéo, hoặc Claude đọc phần mô tả và tự mở nó.

Ví dụ: các bước deploy lần nào cũng giống nhau, gồm lấy lock, so sánh file, cài đặt, chạy health check. Video khuyên làm bằng tay trước, học các cái bẫy, rồi mới biến nó thành skill (theo video đăng ngày 19/10/2026). Thứ tự quan trọng: nếu tự động hoá một quy trình mình không hiểu, mình tự động hoá luôn cả lỗi.

lockcompareinstallhealth check by hand → learn the traps → skill
Hình 16.1Ví dụ quy trình deploy trên màn hình (lock, compare, install, health check) và thứ tự video đưa ra: làm bằng tay, học các cái bẫy, rồi mới làm skill (video đăng ngày 19/10/2026).

Với tool bên ngoài thì có MCP: theo video (đăng ngày 19/10/2026), nó nối Claude với các dịch vụ và tool khác. Ở đây cũng nên bắt đầu bằng một lần thử nhỏ. Trong một project, thay vì cắm thẳng một MCP server mã nguồn mở vào sản phẩm, nhóm Novaki chạy nó trong một bản thử riêng. Vì ngôn ngữ giao diện của browser khác, tool không nhận ra các nhãn và trả về 0 thẻ cho cả ba truy vấn. Sau khi sửa, kết quả là 50, 48 và 48 thẻ. Chỉ khi đó nó mới được nối vào sản phẩm (theo lời kể trong video đăng ngày 19/10/2026).

Video (đăng ngày 19/10/2026) dặn: chỉ nối những server mình thật sự dùng, và không bao giờ nối một server mình không tin.

17. Tổng kết và bài tập đầu tiên

Video gói lại các thói quen theo ba mốc, như trên màn hình tổng kết (video đăng ngày 19/10/2026).

Bảng tổng kết ba cột Day 1, Week 1, Month 1 cạnh nhân vật que diêm giơ ngón cái
Màn hình tổng kết: Day 1 (right folder, explore first, small checkable task, check "done" yourself), Week 1 (short CLAUDE.md, clean context, sample first, permissions by impact, biggest model ≠ default), Month 1 (limits on long jobs, check what's still running), video đăng ngày 19/10/2026.
  • Day 1: mở đúng thư mục, explore trước, một task nhỏ kiểm tra được, và tự kiểm chữ "done".
  • Week 1: CLAUDE.md ngắn, context sạch, xin mẫu trước, cấp quyền theo mức ảnh hưởng, và model lớn nhất không phải mặc định (theo video đăng ngày 19/10/2026).
  • Month 1: đặt giới hạn cho job dài, và kiểm xem còn gì đang chạy.

Cuối video, ô tiêu đề trên board vẫn còn hẹp (demo trong video đăng ngày 19/10/2026). Video biến nó thành bài tập đầu tiên: cho Claude Code sửa ô tiêu đề ở độ rộng điện thoại, rồi tự mình kiểm lại rằng việc thêm và lưu task vẫn chạy.

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

  1. Tên gốc: If I Started Claude Code Today, I'd Do This
  2. Sự kiện: YouTube
  3. Video gốc: https://www.youtube.com/watch?v=ACPoXdTi2Lc youtube.com
  4. Kênh YouTube Novaki (Novaki): youtube.com/channel/UCP-lwG4Yd2XU_Chu-9FHYvQ youtube.com
  5. Best practices for Claude Code, trang docs mà mô tả video ghi là nguồn của các lệnh và trích dẫn (đọc ngày 29/10/2026): code.claude.com/docs/en/best-practices code.claude.com
  6. Permission modes, trang docs xuất hiện trong video (đọc ngày 29/10/2026; trang ghi từ v2.1.283 auto mode là mode khởi đầu cho session terminal và VS Code): code.claude.com/docs/en/permission-modes code.claude.com
  7. Checkpointing (rewind; trang ghi thay đổi chỉ do lệnh Bash tạo ra thì không được theo dõi và checkpoint không thay cho version control, đọc ngày 29/10/2026): code.claude.com/docs/en/checkpointing code.claude.com
  8. Memory và CLAUDE.md (đọc ngày 29/10/2026): code.claude.com/docs/en/memory code.claude.com
  9. Hooks guide (đọc ngày 29/10/2026): code.claude.com/docs/en/hooks-guide code.claude.com
  10. Subagents (đọc ngày 29/10/2026): code.claude.com/docs/en/sub-agents code.claude.com
  11. Skills (đọc ngày 29/10/2026): code.claude.com/docs/en/skills code.claude.com
  12. MCP trong Claude Code (đọc ngày 29/10/2026): code.claude.com/docs/en/mcp code.claude.com