Tóm tắt nhanh:
ak-loopđẩy một con số đo được lên hoặc xuống: coverage, kích thước bundle, số lỗi lint. Mỗi vòng nó làm một thay đổi nhỏ, commit, đo lại, giữ nếu tốt hơn và revert nếu không, rồi kết thúc bằng báo cáo cuối. Nó không làm mục tiêu chủ quan: việc đó đểak-cook.
Công khai: mình là maintainer của AgentKit và có quan hệ affiliate: link AgentKit trong bài là link affiliate, mua qua link này bạn được giảm 30%.
Tóm tắt
Dùng khi bạn có một lệnh in ra đúng một con số và muốn nó tốt lên qua nhiều vòng, như tăng coverage, giảm bundle, dọn lỗi lint hay giảm độ trễ. Không cần khi mục tiêu không đo được bằng con số như "làm code gọn hơn" (dùng ak-cook), hoặc bug đã biết nguyên nhân (dùng ak-fix hay ak-debug). Nó chỉ chạy khi bạn yêu cầu rõ.
flowchart LR
A["Có số đo cụ thể"] --> B["ak-loop"]
X["Mục tiêu chủ quan"] --> Y["ak-cook"]
B --> C["Các commit được giữ"]
B --> D["loop-results.tsv"]
B --> E["Báo cáo cuối"]
E --> F["Dừng: hết vòng, kẹt, hoặc bạn dừng"]Có 4 điều cần nắm:
| Khái niệm | Câu hỏi | Ví dụ |
|---|---|---|
| Verify: một con số | Lấy gì để biết vòng này tốt hơn hay tệ hơn? | Lệnh in ra đúng 82.4 (phần trăm dòng được test phủ), kèm Direction: higher |
| Scope và Guard | Nó được sửa file nào, và không được làm hỏng gì? | Scope: src/utils/**/*.ts, Guard: npx tsc --noEmit && npm test |
| Một vòng, một thay đổi | Mỗi vòng nó làm bao nhiêu việc? | "Thêm test cho chuỗi rỗng trong parseDate". Nếu câu mô tả cần chữ "và" thì phải tách làm hai vòng. |
| Khi nào dừng | Vòng lặp chạy tới bao giờ? | Mặc định 10 vòng (Iterations). Bỏ 5 vòng liền thì đổi hướng, bỏ 10 vòng liền thì dừng và báo bạn. |
Nó commit trước rồi mới đo, và vòng bị bỏ được git revert chứ không xoá, nên lịch sử ghi lại cả cái đã thử. File mà Guard kiểm tra là chỉ đọc, và test bị nới lỏng được tính là lùi.
Prompt mẫu cho việc tăng coverage:
/ak-loop
Goal: Tăng coverage của src/<module> từ khoảng 60% lên 80%
Scope: src/<module>/**/*.ts, tests/<module>/**/*.test.ts
Verify: npx jest tests/<module> --coverage --coverageReporters=json-summary 2>/dev/null >/dev/null; node -e "console.log(require('./coverage/coverage-summary.json').total.lines.pct)"
Guard: npx tsc --noEmit
Iterations: 15
Direction: higherSkill này không có cờ.
Phần dưới đây là bản chi tiết: luồng chạy, 5 tình huống kèm prompt, cách truyền tuỳ chọn khi skill không có cờ, lịch sử thay đổi theo bản ak và các lỗi hay vấp. Bản chi tiết và trang trực quan dành cho subscriber. Agent của bạn cũng tìm được trong đó qua MCP của portal.
Mở khi tài khoản có quyền subscriber
Bài này dành cho subscriber
Khi tài khoản có quyền, toàn bộ bài, bản visual tương tác và lệnh gọi từ agent đều mở.
- Đăng nhập hoặc tạo tài khoản modernEngineerQuyền đọc gắn với email tài khoản.
- Chọn gói trên trang Bảng giáGói 1, 3 hoặc 12 tháng, trả bằng chuyển khoản VietQR. Quyền đọc mở khoảng một phút sau khi tiền về.
- Hoặc nhập mã Facebook subscriberNgười ủng hộ trang qua Facebook nhận mã kích hoạt qua tin nhắn mỗi tháng.
Đã là subscriber? Đăng nhập để đọc.
Dùng bài này trong agent của bạn
Lấy API keyChép đoạn dưới, dán vào Claude Code, Codex hay agent bạn đang dùng. Agent đọc bài rồi đối chiếu với repo đang mở.
Đọc bài "ak-loop: lặp sửa và đo tới khi con số tốt lên" trên modernEngineer rồi áp dụng vào repo này.
1. Gọi tool content_get của MCP server modernengineer với locale "vi", slug "ak-loop". Nếu chưa nối MCP server modernengineer, dừng lại và hướng dẫn tôi nối theo https://modernengineer.dev/vi/mcp.
2. Tóm tắt các bước chính của bài, chỉ ra bước nào áp dụng được cho repo này.
3. Đề xuất thay đổi cụ thể và hỏi tôi trước khi sửa file.Nối MCP cho Claude Code (một lần)
claude mcp add --transport http modernengineer \
https://api.modernengineer.dev/mcp \
--header "Authorization: Bearer <API key>"Đọc trọn bài qua MCP cần API key của tài khoản subscriber hoặc đã mua guide này. Không có quyền, agent sẽ chỉ đọc được phần mở đầu.
- Phiên bản
- v1.0.0
- Cập nhật
- 22/10/2026
- Giấy phép
- Bảo lưu mọi quyền
- Slug
- ak-loop


