6 điểm bởi denimcoder 2025-09-17 | 6 bình luận | Chia sẻ qua WhatsApp

Xin chào.
Có lẽ nhiều người đã thử dùng LLM cho việc review code, nhưng tôi nghĩ khi áp dụng thực tế vẫn có những điểm bất tiện.
Vì cần phải truyền cho LLM mã nguồn cần review cùng ngữ cảnh, đồng thời chỉ định chi tiết cả định dạng kết quả mong muốn.

selvage là một công cụ CLI giúp tự động hóa quá trình chuẩn bị này để nâng cao hiệu quả review code.

[Các tính năng chính]

  • Là công cụ CLI nên có thể sử dụng độc lập với IDE hoặc tiện ích mở rộng cụ thể
  • Hỗ trợ các mô hình SOTA chủ lực (GPT-5, Claude-Sonnet-4, Gemini, Qwen3-code)
  • Có thể sử dụng theo mức dùng thực tế mà không cần đăng ký gói, thông qua OpenRouter API Key
  • Tích hợp với quy trình làm việc Git
    • Hỗ trợ phân tích thay đổi trong staged, unstaged, và khác biệt giữa commit/branch cụ thể
  • Tính năng trích xuất Smart Context dựa trên AST (cây cú pháp trừu tượng)
    • Chỉ trích xuất các khối mã tối thiểu và phụ thuộc liên quan đến thay đổi
    • Chỉ truyền ngữ cảnh thật sự cần thiết để giảm lượng token sử dụng, đồng thời tối đa hóa chất lượng review
  • Tính năng Large Context Review
    • Có thể review ổn định cả những thay đổi quy mô lớn vượt quá Context Limit của mô hình (chủ yếu là PR để triển khai một tính năng cụ thể)

6 bình luận

 
denimcoder 2025-09-29

Xin chào.
Lần này chúng tôi có một bản cập nhật lớn nên muốn chia sẻ tin này.
Rất mong nhận được nhiều sự quan tâm!

Liên kết GitHub: https://github.com/selvage-lab/selvage


🚀 Nội dung cập nhật tính năng chính

🤖 Bổ sung chế độ máy chủ MCP (Model Context Protocol)NEW

Yêu cầu review code ngay trong cửa sổ chat của Cursor, Claude Code, v.v.!

Giờ đây bạn có thể đăng ký Selvage dưới dạng MCP trong Cursor, Claude Code, v.v. và yêu cầu review code bằng ngôn ngữ tự nhiên.
Kết quả review sẽ được AI assistant trực tiếp chuyển tải, sau khi kiểm tra feedback bạn cũng có thể yêu cầu cải thiện code ngay trong một lần.

Cách thiết lập:

# Tích hợp Claude Code  
# Cách 1: dùng biến môi trường (nếu đã thiết lập sẵn)  
claude mcp add selvage -- uvx selvage mcp  
  
# Cách 2: chỉ định trực tiếp  
claude mcp add selvage -e OPENROUTER_API_KEY=your_openrouter_api_key_here -- uvx selvage mcp  
# Tích hợp Cursor (~/.cursor/mcp.json)  
{  
  "mcpServers": {  
    "selvage": {  
      "command": "uvx",  
      "args": ["selvage", "mcp"],  
      "env": {"OPENROUTER_API_KEY": "your_key"} // Tùy chọn: không cần nếu đã đăng ký trong biến môi trường hệ thống  
    }  
  }  
}  

💡 Kịch bản sử dụng

Ví dụ sử dụng đơn giản

"hãy review các thay đổi hiện tại bằng selvage mcp"  
"hãy so sánh và review nhánh chính với nhánh hiện tại bằng selvage mcp với claude-sonnet-4-thinking"  
"hãy review phần công việc đã staged bằng selvage mcp với gpt-5-high và sắp xếp theo mức độ ưu tiên"  
"hãy review riêng phần công việc đã staged bằng selvage mcp với gpt-5-high và claude-sonnet-4-thinking, rồi so sánh kết quả"  

Workflow cải thiện code theo từng bước

1. hãy review các thay đổi hiện tại bằng selvage mcp với claude-sonnet-4-thinking  
2. sau khi xem xét một cách phản biện xem feedback review có hợp lệ với codebase hiện tại hay không, hãy cho tôi biết mức độ ưu tiên  
3. hãy phản ánh tuần tự các nội dung đã xem xét theo thứ tự ưu tiên  
 
jkapa0417 2025-09-22

Xin chào, tôi muốn dùng thử, nhưng có bắt buộc phải dùng Openrounter không? Hiện tôi đang có API key đang sử dụng, nên tôi muốn hỏi liệu có thể tận dụng API key đó để sử dụng hay không.

 
denimcoder 2025-09-22

Xin chào.
Bạn đang dùng API key nào vậy?
Thay vì OpenRouter KEY, bạn có thể thiết lập Provider API Key của từng model trong biến môi trường để sử dụng.

export OPENAI_API_KEY="your_openai_api_key_here"  
export ANTHROPIC_API_KEY="your_anthropic_api_key_here"  
export GEMINI_API_KEY="your_gemini_api_key_here"  

OPENAI_API_KEY hỗ trợ các model dòng GPT
ANTHROPIC_API_KEY hỗ trợ các model dòng Claude
GEMINI_API_KEY hỗ trợ các model dòng Gemini
được hỗ trợ!

 
kjows5 2025-09-18

Liệu có thể che giấu thông tin nhạy cảm ngay ở cấp độ mã nguồn trước khi đưa vào đầu vào của LLM không?

 
denimcoder 2025-09-19

Xin chào. Xin trả lời như sau.

  1. Hiện tại, khi yêu cầu review code, các tệp kiểu .env sẽ được loại trừ hoàn toàn, nhưng chưa có bước thay thế hoặc che đi các “giá trị” như API key/token/mật khẩu tồn tại trong mã nguồn.

  2. Nếu bạn muốn loại trừ thông tin nhạy cảm khi review,
    hãy đưa phần mã cần review vào trạng thái git staged, sau đó
    review bằng lệnh selvage review --staged để có thể loại trừ thông tin nhạy cảm khỏi đầu vào của LLM.

  3. Chúng tôi cũng có kế hoạch cập nhật một tính năng tương tự như nội dung bạn hỏi. Dự kiến sẽ cho phép người dùng tự thêm vào tệp yml các phần mở rộng tệp cần loại trừ khi review và các mẫu cụ thể trong mã nguồn (biểu thức chính quy), để thông tin nhạy cảm có thể được lọc phù hợp cho từng dự án.

 
namongk 2025-09-18

Ồ ồ...