Lê Duy Khương (Daniel)

Chuỗi: Codex Power 10 · Phần 2

Năng suất & công cụ dev

Prompt contract: Goal, Context, Constraints, Done-when

Một khuôn prompt bốn phần giúp Codex hiểu mục tiêu, đọc đúng ngữ cảnh, giữ phạm vi và biết khi nào dừng.

2026-06-2910 phút đọcVI

Phần 2 của 1020% hoàn thành

English title: Prompt Contract: Goal, Context, Constraints, Done-when

Cập nhật: 29/06/2026. Đây là bài 2 trong chuỗi Codex Power 10 - 10 bài hướng dẫn dùng các năng lực mạnh của Codex theo cách có kiểm soát.

Bạn sẽ có một mẫu giao việc dùng lại được cho hầu hết nhiệm vụ với Codex, từ sửa bug đến viết bài.

Infographic bài 2: Hợp đồng prompt bốn phần
Một prompt tốt không dài hơn. Nó chỉ khóa đúng bốn biến quan trọng.

Bảng Nhớ Nhanh

Khi cầnDùng cái gìLệnh hoặc thao tác
Nói kết quảGoalHành vi hoặc tác động cần đạt
Chỉ nguồn đọcContextFile, log, ảnh, tài liệu
Giữ biênConstraintsĐiều không được đổi
Định nghĩa xongDone-whenTest, build, ảnh chụp, diff
Giảm đoánRestateYêu cầu Codex nói lại hiểu biết

Dùng bài này khi: task dễ bị hiểu nhầm, có nhiều file liên quan hoặc bạn muốn Codex tự kiểm chứng đầu ra.

Không dùng bài này khi: bạn chỉ cần hỏi nhanh một khái niệm không đụng file, không cần cổng nghiệm thu.

Xong bài khi: prompt có đủ Goal, Context, Constraints và Done-when, rồi Codex có thể lặp lại đúng ý bạn.

Ghi nhớ: Bài thực hành này không cố làm bạn nhớ hết tính năng. Nó giúp bạn dựng một vòng làm việc có mục tiêu, có biên và có bằng chứng.

Trước Khi Bắt Đầu

  • Có một yêu cầu thật đủ nhỏ để làm trong một phiên.
  • Biết ít nhất một file, màn hình, log hoặc lỗi liên quan.
  • Biết thay đổi nào tuyệt đối không muốn Codex chạm vào.

Cẩn trọng: Nếu môi trường hoặc quyền đang mơ hồ, hãy dừng một nhịp để kiểm tra. Agent chạy nhanh trong bối cảnh sai sẽ tạo ra diff rất thuyết phục nhưng khó dùng.

Ý Tưởng Trong 3 Phút

Prompt yếu thường chỉ có mong muốn: 'làm giúp bạn trang này đẹp hơn'. Prompt mạnh giống một hợp đồng ngắn: mục tiêu là gì, ngữ cảnh nằm đâu, giới hạn nào không được vượt, và tiêu chí xong việc là gì.

Mỗi prompt tốt nên giảm khoảng đoán của agent. Không cần dài, nhưng phải khóa bốn điểm: đích đến, vật liệu, rào chắn và cổng nghiệm thu.

  • Goal nói rõ kết quả kinh doanh hoặc kỹ thuật, không chỉ thao tác. 'Sửa lỗi đăng nhập' yếu hơn 'người dùng nhập email có khoảng trắng vẫn đăng nhập được'.
  • Context chỉ ra nơi cần đọc: file, thư mục, log, ảnh hoặc tài liệu. Codex càng ít phải đoán, kết quả càng ổn định.
  • Constraints giúp bảo vệ hệ thống: không đổi schema, không refactor ngoài phạm vi, không thêm dependency khi chưa có lý do.
  • Done-when biến kỳ vọng thành cổng kiểm tra: test nào chạy, ảnh nào cần chụp, file nào phải được cập nhật.

Screenshot minh họa bài 2: Prompt contract: Goal, Context, Constraints, Done-when
Màn hình minh họa quy trình thực hành trong bài 2.

Công Thức 1: Chạy Quy Trình Chính

Khi dùng: task dễ bị hiểu nhầm, có nhiều file liên quan hoặc bạn muốn Codex tự kiểm chứng đầu ra.

  1. Viết một câu Goal theo ngôn ngữ kết quả, không phải ngôn ngữ thao tác.
  2. Liệt kê Context bằng đường dẫn hoặc bằng chứng cụ thể.
  3. Nêu Constraints theo dạng điều Codex phải giữ, ví dụ 'không đổi API public'.
  4. Định nghĩa Done-when bằng kiểm chứng có thể chạy hoặc có thể quan sát.

Công Thức 2: Đóng Cổng Kiểm Chứng

CổngCách kiểm
GoalMột câu mô tả kết quả, không chỉ thao tác.
ContextĐường dẫn hoặc bằng chứng cụ thể.
ConstraintsRanh giới đọc/ghi, API, dependency, style.
Done-whenKiểm chứng có thể chạy hoặc quan sát.

Một phiên tốt không cần lúc nào cũng dài. Điều cần giữ là nhịp: giao việc rõ, để Codex đọc đúng, cho nó thực hiện trong phạm vi nhỏ, rồi bắt nó tự chứng minh kết quả.

Prompt Mẫu

Goal: Sửa lỗi trang bài viết bị tràn ảnh trên mobile.
Context: Đọc components/content/Figure.tsx và một bài MDX có ảnh rộng.
Constraints: Không đổi bố cục toàn site, không thêm gói phụ thuộc, giữ ảnh có border radius 8px.
Done-when: Build pass, ảnh không tràn ở viewport 390px và 1440px, tóm tắt file đã sửa.

Ví Dụ Tối Thiểu: Prompt contract bốn dòng

Goal: Sửa lỗi trang bài viết bị tràn ảnh trên mobile.
Context: Đọc components/content/Figure.tsx và một bài MDX có ảnh rộng.
Constraints: Không đổi bố cục toàn site, không thêm gói phụ thuộc, giữ ảnh có border radius 8px.
Done-when: Build pass, ảnh không tràn ở viewport 390px và 1440px, tóm tắt file đã sửa.

Khi Có Lỗi

Triệu chứngNguyên nhân hay gặpCách sửa
Codex làm khác ýGoal viết theo thao tác, không theo kết quảViết lại Goal bằng hành vi cần đạt.
Agent đoán saiContext thiếu đường dẫn/bằng chứngThêm file, log, ảnh hoặc lỗi cụ thể.
Phiên không biết dừngDone-when mơ hồĐưa test/build/screenshot làm cổng nghiệm thu.

Nếu gặp một trong các lỗi trên, cách sửa thường không phải là viết prompt dài hơn. Cách sửa là thêm đúng mảnh còn thiếu: một đường dẫn ngữ cảnh, một ràng buộc phạm vi, hoặc một tiêu chí nghiệm thu.

Quy Trình Trong Đội

Đội kỹ thuật có thể đưa khuôn này vào mẫu issue hoặc pull request. Người không chuyên code cũng dùng được nếu thay file path bằng ảnh chụp, mô tả lỗi và tiêu chí nghiệm thu.

Với đội mới bắt đầu, đừng đưa Codex vào khâu rủi ro nhất ngay. Hãy bắt đầu ở nơi có phản hồi nhanh: viết test, tạo bản nháp, rà link, chuẩn hóa tài liệu, tạo ảnh minh họa, hoặc chuẩn bị diff nhỏ để con người rà soát.

Bài Tập 30 Phút

  1. Chọn một repo, bài viết hoặc màn hình thật để thực hành.
  2. Viết một câu mục tiêu cho bài 2, tránh yêu cầu chung chung.
  3. Liệt kê đúng ba nguồn context mà Codex nên đọc trước.
  4. Ghi hai ràng buộc không được vượt.
  5. Viết Done-when bằng bằng chứng có thể kiểm tra.
  6. Chạy prompt trong Codex CLI hoặc Codex App.
  7. Dừng sau plan đầu tiên và xem Codex có hiểu đúng không.
  8. Cho Codex làm phần nhỏ nhất có thể.
  9. Đóng gate: Goal, Context, Constraints, Done-when.
  10. Ghi lại một điều nên đưa vào prompt hoặc AGENTS.md cho lần sau.

10 Điều Cần Nhớ

  1. Prompt tốt là hợp đồng ngắn, không phải văn dài.
  2. Goal phải nói kết quả, không chỉ thao tác.
  3. Context nên là file, log, ảnh hoặc nguồn có thể kiểm.
  4. Constraints bảo vệ phạm vi và quyết định kiến trúc.
  5. Done-when biến kỳ vọng thành cổng nghiệm thu.
  6. Nếu Codex đoán nhiều, prompt đang thiếu vật liệu.
  7. Nếu Codex sửa lan, prompt đang thiếu ranh giới.
  8. Nếu không biết xong chưa, prompt đang thiếu gate.
  9. Yêu cầu Codex nói lại hiểu biết khi task mơ hồ.
  10. Một prompt dùng lại được đáng giá hơn mười prompt ngẫu hứng.

Nguồn tham khảo chính: OpenAI Codex documentation. Bài tiếp: AGENTS.md: biến chuẩn làm việc thành trí nhớ bền.

LDK

Le Duy Khuong

AI Transformation & Digital Strategy. Writing about agentic systems, engineering leadership, and building in public.