hermes-review-loop là kỹ năng CLI cục bộ tối ưu hóa tài liệu Markdown qua nhiều vòng lặp. Kết hợp nhiều AI Reviewer chuyên biệt (Rõ ràng, Thực tiễn, Đầy đủ, Kỹ thuật) cùng cơ chế Early-Stop, Resume checkpoint và hỗ trợ cả AI Writer tự động lẫn ChatGPT Fix thủ công.
./scripts/review_loop.sh --output Output.md --rounds 3 --target-score 8
Trực quan hóa bảng báo cáo thống kê qua 3 round review thực tế khi chạy lệnh ./scripts/review_loop.sh với chế độ ChatGPT Fix handoff.
Vì không có round nào đạt 4/4 reviewer ≥ 8/10 đồng thời, hệ thống không Early Stop mà chuyển prompt sang ChatGPT để người dùng can thiệp sửa đổi.
Sử dụng kết hợp DeepSeek-v4 và OpenRouter Free tier, xử lý 16 file ngữ cảnh mã nguồn (~40KB) mà chỉ tiêu tốn 4% hạn mức context window.
Mô phỏng chu trình chấm điểm thực tế của 4 reviewer AI, tính toán Early Stop và kiểm tra phân nhánh sửa đổi.
Đánh giá tính mạch lạc, cấu trúc câu và diễn đạt súc tích.
Khả năng áp dụng thực tế, ví dụ code có thể chạy được.
Độ bao phủ các ca biên (edge cases), hướng dẫn chi tiết.
Độ chính xác đối chiếu source context (file-tree, ctags).
Vui lòng bấm nút chạy để xem hệ thống ra quyết định dừng sớm (Early Stop) hay phân nhánh sang sửa đổi.
Nếu số reviewer chấm điểm ≥ TARGET_SCORE đạt đủ MIN_TARGET_SCORE_REVIEWS trên cùng một bản output, script sẽ dừng sớm ngay lập tức mà không tốn thêm token cho Writer/ChatGPT.
Mỗi vòng lặp (round) tuân thủ chặt chẽ nguyên tắc an toàn dữ liệu, tính toàn vẹn markdown và khả năng resume khi bị gián đoạn.
Xác thực file Markdown đầu vào, kiểm tra awk, cksum và load shell config tin cậy.
Chạy tuần tự các AI reviewer độc lập theo danh sách cấu hình REVIEWER_NAMES.
Trích xuất dòng `Score: x/10` từ review markdown và so khớp ngưỡng pass.
Nếu chưa đạt điểm, phân nhánh tùy thuộc vào cấu hình USE_WRITER_MODEL.
Kiểm tra hợp lệ văn bản mới, backup bản cũ rồi mới ghi đè file đầu ra.
Khi dùng flag --source /path/to/project, script sẽ phân tích toàn bộ cấu trúc dự án. Nếu bật Compact Mode:
LLMLINGUA2_MIN_SAVINGS sẽ dùng bản hybrid; nếu không giữ nguyên raw.
Tùy theo nhu cầu tự động hóa toàn phần hay muốn can thiệp kiểm duyệt thủ công chất lượng cao qua ChatGPT UI bên ngoài.
AI Writer model đọc prompt tổng hợp từ reviewer batch, tự sinh văn bản sửa đổi và thay thế file gốc ngay trong cùng phiên chạy CLI.
Script tổng hợp toàn bộ nhận xét vào file combined-fix prompt, lưu trạng thái waiting_for_chatgpt_fix và dừng lại để bạn đưa sang ChatGPT bên ngoài.
./scripts/chatgpt_helper.sh copy để copy combined-fix prompt vào clipboard hệ thống (pbcopy/wl-copy/xclip).
./scripts/chatgpt_helper.sh paste. Script ghi file tạm, kiểm tra dòng bắt đầu bằng # rồi áp dụng.
Tùy chỉnh các tham số vòng lặp và nhận ngay câu lệnh Bash cũng như file cấu hình sẵn sàng thực thi.
#!/usr/bin/env bash
# config.sh - Cấu hình đáng tin cậy cho Hermes Review Loop
TARGET_SCORE=8
MAX_ROUNDS=3
MIN_TARGET_SCORE_REVIEWS=3
COMPACT=true
USE_WRITER_MODEL=false
REVIEWER_NAMES=("clarity" "practicality" "completeness" "technical")
Tra cứu nhanh nguyên nhân và hướng dẫn xử lý cho các thông báo lỗi thường gặp khi chạy Review Loop.
| Lỗi / Dấu hiệu nhận biết | Nguyên nhân gốc | Cách khắc phục đề xuất |
|---|---|---|
| hermes: command not found | Hermes CLI chưa cài đặt hoặc chưa được đưa vào biến môi trường PATH. | Cài đặt Hermes CLI hoặc gán biến: HERMES_BIN=/path/to/hermes |
| ctags: command not found | Thiếu Universal Ctags để trích xuất cấu trúc mã nguồn trong Compact Mode. | Cài qua Homebrew: brew install universal-ctags hoặc dùng cờ --no-compact |
| macOS BSD ctags collision | Hệ thống macOS sử dụng mặc định BSD ctags có sẵn thay vì Universal Ctags. | Đảm bảo đường dẫn Homebrew ctags đứng trước trong PATH: export PATH="/opt/homebrew/bin:$PATH" |
| LLMLingua2 is unavailable | Module llmlingua2 không tìm thấy trong shell hiện tại. | Đây chỉ là tính năng tùy chọn. Script vẫn chạy bình thường với raw README.md. Cài đặt Python package nếu muốn nén hybrid. |
| Đang chờ ChatGPT Fix (waiting) | USE_WRITER_MODEL=false đang chờ người dùng cung cấp bản sửa thủ công. | Chạy chatgpt_helper.sh copy, dán sang ChatGPT, copy kết quả rồi chạy chatgpt_helper.sh paste. |
| Output mới bị reject | File Markdown đầu ra không vượt qua script kiểm tra validate_markdown.sh (rỗng, thiếu tiêu đề #). |
Chạy trực tiếp ./scripts/validate_markdown.sh file.md để xem chi tiết vi phạm cụ thể. |
| Review quá tốn token / chậm | Source context quá lớn hoặc số round / số reviewer cấu hình quá nhiều. | Dùng --measure-context trước, giảm bớt reviewer, dùng --rounds 1 hoặc giảm TECH_CONTEXT_MAX_CHARS. |