skills/Matcher-AI-Context/SKILL.md
# SKILL: entity-matcher ## Purpose So khớp các Entity (Class/Interface/Enum) giữa `ProcessedUMLGraph` của Đáp án và của Sinh viên để tạo ra `MappingTable`. Nhờ có dữ liệu đã tiền xử lý, Matcher sử dụng cấu trúc `ArchWeight` kết hợp với Fuzzy Text Matching để đưa ra các quyết định nối (map) chính xác nhất, ngay cả khi tên bị sai chính tả hoặc gõ tắt. ## Use When - Sau khi `Prematcher` đã sinh ra 2 cây `ProcessedUMLGraph` với `ArchWeight` đầy đủ. - Cần dóng hàng các Node trước khi đưa qua `Compa
npx skillsauth add nguyen-agn/uml_comparator skills/Matcher-AI-ContextInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
So khớp các Entity (Class/Interface/Enum) giữa ProcessedUMLGraph của Đáp án và của Sinh viên để tạo ra MappingTable. Nhờ có dữ liệu đã tiền xử lý, Matcher sử dụng cấu trúc ArchWeight kết hợp với Fuzzy Text Matching để đưa ra các quyết định nối (map) chính xác nhất, ngay cả khi tên bị sai chính tả hoặc gõ tắt.
Prematcher đã sinh ra 2 cây ProcessedUMLGraph với ArchWeight đầy đủ.Comparator chấm điểm chi tiết.solution *domain.ProcessedUMLGraph: Graph mẫu (read-only).student *domain.ProcessedUMLGraph: Graph sinh viên (read-only).domain.MappingTable: Dictionary Map từ Solution Node ID -> Student Node ID.Thuật toán dựa trên 2 trụ cột: Kiến trúc (ArchWeight) và Văn bản (FuzzyMatch).
IFuzzyMatcher).ArchWeight được bung ra thành ArchTraits. Các class được xem là "Kiến trúc tương tự" nếu giống hệt các đặc tính cấu trúc lõi (Loại class, Kế thừa, Intf, CustomType) và lệch không quá 15% số lượng (Method, Attribute, Rels, Static).FuzzyScore. Node có tên khớp nhất nhưng chung kiến trúc sẽ được chọn.matcher tuyệt đối không thay đổi data bên trong input pointers.development
# SKILL: drawio-visualizer ## Purpose Render kết quả chấm UML ra 2 loại file HTML self-contained: 1. **Grader Report** (`report_*.html`): Full side-by-side Student vs Solution, summary, deduction feedbacks — dành cho người chấm. 2. **Student Feedback** (`feedback_*.html`): Chỉ hiển thị bài làm SV với color-coded status (đúng/sai/thừa). Không lộ đáp án, không hiện deduction details — gửi cho sinh viên xem lại. ## Execution 1. Pipeline: Parse → Build → Validate → PreMatch → Match → Compare → Grad
development
Chạy test case trên các file UML draw.io để kiểm tra xem Builder + ValidateGraph có phát hiện đúng lỗi. Dùng để verify rằng pipeline xử lý UML bắt được các loại lỗi sai trong file .drawio.
development
# SKILL: batch-grader-reporter ## Purpose Cung cấp chức năng chấm điểm đồng loạt (Batch Grading) cho nhiều file bài làm UML (`.drawio`) của sinh viên đối chiếu với 1 file đáp án mẫu. Kết quả của tất cả các bài nộp được tổng hợp lại thành `BatchGradeResult` và chuyển đền interface `IReporter` để sinh report. ## Execution 1. Cấu trúc: - Load file solution `solution.drawio`. - Quét thư mục `student_dir` tìm các file `.drawio`. - Với mỗi file: Parse → Build → PreMatch → Match → Compare →
development
Skill để tái cấu trúc (refactor) một module bất kỳ theo chuẩn SOLID, áp dụng Interface-first và bổ sung Unit Test hoàn chỉnh.