/fix

Sửa các lỗi nhỏ và vấn đề một cách nhanh chóng. Lệnh này bỏ qua việc phân tích và lập kế hoạch codebase sâu rộng, đi thẳng vào việc triển khai và thử nghiệm. Hoàn hảo cho các bản sửa lỗi đơn giản khi bạn biết chính xác những gì cần phải thực hiện.

Cú Pháp

/fix:fast [mô tả lỗi]

Cách Hoạt Động

Lệnh /fix:fast tuân theo một quy trình làm việc tinh giản:

1. Phân Tích Nhanh

  • Đọc mô tả lỗi
  • Xác định vị trí có khả năng xảy ra lỗi từ mô tả
  • Quét codebase ở mức tối thiểu

2. Triển Khai Trực Tiếp

  • Triển khai bản sửa lỗi ngay lập tức
  • Không có giai đoạn lập kế hoạch chi tiết
  • Tuân theo các mẫu (patterns) hiện có

3. Thử Nghiệm

  • Chạy các bài kiểm tra liên quan
  • Xác nhận bản sửa lỗi hoạt động đúng
  • Kiểm tra các lỗi phát sinh (regressions)

4. Báo Cáo Tóm Tắt

  • Các tệp đã thay đổi
  • Trạng thái các bài kiểm tra
  • Mức độ tin cậy

Khi Nào Nên Sử Dụng

✅ Hoàn Hảo Cho

Lỗi Đánh Máy Đơn Giản

/fix:fast [lỗi đánh máy trong thông báo lỗi: "sucessful" nên "successful"]

Các Vấn Đề UI Nhỏ

/fix:fast [văn bản nút hiển thị "Submitt" thay "Submit"]

Sửa Logic Đơn Giản

/fix:fast [xác thực cho phép để trống trường email trong khi bắt buộc]

Cập Nhật Cấu Hình

/fix:fast [cập nhật giới hạn tốc độ API từ 100 lên 200 yêu cầu mỗi phút]

Các Lỗi Hiển Nhiên

/fix:fast [quên thêm từ khóa await trước truy vấn sở dữ liệu trong trình xử đăng nhập]

❌ Không Sử Dụng Cho

Các Vấn Đề Phức Tạp

 /fix:fast [người dùng thỉnh thoảng bị đăng xuất ngẫu nhiên]
 /fix:hard [người dùng thỉnh thoảng bị đăng xuất ngẫu nhiên]

Các Vấn Đề Toàn Hệ Thống

 /fix:fast [rò rỉ bộ nhớ gây ra treo ứng dụng]
 /fix:hard [rò rỉ bộ nhớ gây ra treo ứng dụng]

Chưa Biết Nguyên Nhân Gốc Rễ

 /fix:fast [có  đó bị hỏng với phần thanh toán]
 /fix:hard [xử  thanh toán thất bại với lỗi không ràng]

Nhiều Vấn Đề Liên Quan

 /fix:fast [hệ thống xác thực nhiều vấn đề]
 /fix:hard [hệ thống xác thực nhiều vấn đề]

Ví Dụ

Sửa Lỗi Đánh Máy

/fix:fast [sửa lỗi đánh máy trong thông báo chào mừng: "Welcom" nên "Welcome"]

Điều gì xảy ra:

1. Xác định vị trí thông báo chào mừng
   - Tìm thấy tại: src/components/Welcome.tsx

2. Sửa lỗi đánh máy
   - Thay đổi: "Welcom to our app"
   - Thành: "Welcome to our app"

3. Chạy các bài kiểm tra
   - Kiểm tra UI: ✓ passed
   - Kiểm tra tích hợp: ✓ passed

✓ Hoàn thành sửa lỗi (12 giây)

Sửa Lỗi Xác Thực

/fix:fast [xác thực email chấp nhận các email không hợp lệ như "test@"]

Điều gì xảy ra:

1. Xác định vị trí hàm xác thực
   - Tìm thấy tại: src/utils/validation.js

2. Cập nhật mẫu regex
   - Cũ: /^[^\\s@]+@[^\\s@]+$/
   - Mới: /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/

3. Chạy các bài kiểm tra xác thực
   - test("test@" bị từ chối): ✓ passed
   - test("test@domain.com" được chấp nhận): ✓ passed
   - Tất cả 15 bài kiểm tra đã vượt qua

✓ Hoàn thành sửa lỗi (18 giây)

Thiếu Await

/fix:fast [quên await trong hàm getUserData gây ra Promise<User> thay User]

Điều gì xảy ra:

1. Xác định vị trí hàm
   - Tìm thấy tại: src/services/user.service.ts:45

2. Thêm từ khóa await
   - const user = db.getUser(id)
   - const user = await db.getUser(id)

3. Kiểm tra kiểu TypeScript
   - Kiểu hiện đã được giải quyết chính xác thành User
   - Không còn lỗi Promise<User>

4. Chạy các bài kiểm tra
   - Tất cả các bài kiểm tra đã vượt qua

✓ Hoàn thành sửa lỗi (9 giây)

Cập Nhật Cấu Hình

/fix:fast [tăng thời gian chờ phiên làm việc từ 15 phút lên 30 phút]

Điều gì xảy ra:

1. Xác định vị trí cấu hình
   - Tìm thấy tại: config/session.ts

2. Cập nhật giá trị
   - sessionTimeout: 15 * 60 * 1000
   - sessionTimeout: 30 * 60 * 1000

3. Xác minh cấu hình
   - Cấu hình tải chính xác
   - Các bài kiểm tra vượt qua

✓ Hoàn thành sửa lỗi (7 giây)

So Sánh Tốc Độ

/fix
so với /fix

Lỗi đánh máy đơn giản:

/fix:fast:  10-20 giây
/fix:hard:  2-3 phút (không cần thiết các bước dư thừa)

Lỗi phức tạp:

/fix:fast:  Có thể tạo ra bản sửa lỗi không đầy đủ
/fix:hard:  5-10 phút (điều tra đúng quy trình)

Quy tắc chung:

  • Biết chính xác cách sửa? → /fix:fast
  • Cần điều tra? → /fix:hard

Những Gì Bị Bỏ Qua

Để tiết kiệm thời gian, /fix:fast bỏ qua:

  1. Quét Codebase Sâu Rộng

    • Không triển khai các scout agent
    • Chỉ tìm kiếm ở các vị trí hiển nhiên
  2. Giai Đoạn Lập Kế Hoạch

    • Không tạo kế hoạch chi tiết
    • Đi thẳng vào triển khai
  3. Nghiên Cứu

    • Không nghiên cứu internet
    • Không tra cứu tài liệu
    • Chỉ sử dụng kiến thức hiện có
  4. Phân Tích Nguyên Nhân Gốc Rễ

    • Sửa triệu chứng, không nhất thiết là nguyên nhân gốc rễ
    • Giả định mô tả của bạn là chính xác

Thực Hành Tốt Nhất

Cung Cấp Vị Trí Chính Xác

Có vị trí:

/fix:fast [trong tệp src/auth/login.ts dòng 45, đổi timeout từ 5000 thành 10000]

Không có vị trí:

/fix:fast [đổi một cái timeout đâu đó]

Cụ Thể Về Bản Sửa Lỗi

Cụ thể:

/fix:fast [văn bản nút "Loggin" trong LoginButton.tsx nên "Login"]

Mơ hồ:

/fix:fast [sửa văn bản nút]

Xác Minh Phạm Vi Đơn Giản

Trước khi sử dụng /fix:fast, hãy tự hỏi:

  • Tôi có biết chính xác những gì cần thay đổi không?
  • Nó nằm trong một hoặc hai tệp?
  • Bản sửa lỗi có tốn ít hơn 5 dòng mã không?
  • Tôi có tự tin rằng điều này sẽ không làm hỏng bất cứ thứ gì không?

Nếu có cho tất cả → Sử dụng /fix:fast Nếu không cho bất kỳ câu nào → Sử dụng /fix:hard

Các Trường Hợp Sử Dụng Phổ Biến

Lỗi Đánh Máy Trong Mã Nguồn

/fix:fast [tên biến "usreName" nên "userName" trong profile.service.ts]

Các Câu Lệnh Import

/fix:fast [thiếu import cho kiểu User trong auth.controller.ts]

Các Tính Toán Đơn Giản

/fix:fast [tính toán chiết khấu đang hiển thị 15% thay 20%, cập nhật trong checkout.ts]

Cập Nhật Văn Bản

/fix:fast [cập nhật năm bản quyền từ 2023 thành 2024 trong footer]

Các Câu Điều Kiện Đơn Giản

/fix:fast [đảo ngược điều kiện: if (isDisabled) nên là if (!isDisabled) trong SubmitButton]

Các Giá Trị Mặc Định

/fix:fast [thay đổi kích thước trang mặc định từ 10 thành 20 trong cấu hình phân trang]

Xử Lý Lỗi

Nếu /fix:fast không thể hoàn thành bản sửa lỗi:

⚠ Cảnh báo: Bản sửa lỗi có thể phức tạp hơn dự kiến

Các cân nhắc:
- Nhiều tệp bị ảnh hưởng
- Vị trí không rõ ràng
- Có thể yêu cầu phân tích sâu hơn

Khuyến nghị: Sử dụng /fix:hard thay thế

Vẫn tiếp tục với /fix:fast? (y/n)

Bạn có thể:

  1. Tiếp tục (Continue) - Thử sửa dù sao đi nữa
  2. Hủy (Cancel) - Chuyển sang /fix:hard

Sau Khi Sửa Lỗi

Quy trình làm việc tiêu chuẩn sau /fix:fast:

# 1. Bản sửa lỗi đã được áp dụng
/fix:fast [lỗi đánh máy văn bản nút]

# 2. Xem lại các thay đổi
git diff

# 3. Chạy toàn bộ bộ kiểm tra (tùy chọn)
/test

# 4. Commit nếu hài lòng
/git:cm

Xử Lý Sự Cố

Bản Sửa Lỗi Không Hoạt Động

Vấn đề: Vấn đề vẫn xảy ra sau khi sửa

Giải pháp:

# Vấn đề có thể phức tạp hơn
/fix:hard [mô tả lại vấn đề với nhiều chi tiết hơn]

Sai Vị Trí

Vấn đề: Đã sửa sai tệp/vị trí

Giải pháp:

# Cung cấp đường dẫn tệp chính xác
/fix:fast [trong src/correct/file.ts dòng 42, sửa vấn đề thực tế]

Các Bài Kiểm Tra Thất Bại

Vấn đề: Bản sửa lỗi làm hỏng các bài kiểm tra hiện có

Giải pháp:

# Điều tra lý do tại sao các bài kiểm tra thất bại
/debug [thất bại bài kiểm tra sau khi sửa X]

# Hoặc hoàn tác và sử dụng phương pháp kỹ lưỡng
git restore .
/fix:hard [mô tả vấn đề ban đầu]

Bản Sửa Lỗi Không Đầy Đủ

Vấn đề: Bản sửa lỗi hoạt động nhưng cảm thấy chưa đầy đủ

Giải pháp:

# Thêm các cải tiến tiếp theo
/cook [cải thiện X với tính năng Y]

Số Liệu

Hiệu suất điển hình của /fix:fast:

  • Thời gian: 5-30 giây
  • Số tệp thay đổi: 1-2
  • Độ bao phủ kiểm tra: Chỉ các bài kiểm tra hiện có
  • Tỷ lệ thành công: ~95% cho các vấn đề đơn giản

So sánh với /fix:hard:

  • Thời gian: 2-10 phút
  • Số tệp thay đổi: 1-10+
  • Độ bao phủ kiểm tra: Các bài kiểm tra mới được tạo ra
  • Tỷ lệ thành công: ~99% cho tất cả các vấn đề

Bước Tiếp Theo

Sau khi sử dụng /fix:fast:

  • /test - Chạy toàn bộ bộ kiểm tra
  • /fix
    - Cho các vấn đề phức tạp
  • /git
    - Commit bản sửa lỗi
  • /debug - Nếu vấn đề vẫn tiếp diễn

Điểm mấu chốt: /fix:fast hoàn hảo cho các bản sửa lỗi đơn giản, đã được hiểu rõ khi mà tốc độ là ưu tiên hàng đầu. Đối với bất kỳ điều gì phức tạp hoặc chưa rõ ràng, hãy sử dụng /fix:hard thay thế.