Sử dụng với Trợ lý AI
codeknit đi kèm với các kỹ năng được tạo sẵn giúp dạy các trợ lý lập trình AI cách sử dụng hiệu quả. Những kỹ năng này cho phép trợ lý trích xuất cấu trúc mã, phát hiện trùng lặp và thực hiện phân tích cấu trúc mà không cần prompting thủ công.
Tổng quan về kỹ năng
Phần tiêu đề “Tổng quan về kỹ năng”codeknit cung cấp hai kỹ năng:
codeknit-parse: Dạy trợ lý cách trích xuất cấu trúc mã (hàm, lớp, phương thức, biến) và các mối quan hệ (lời gọi, kế thừa, chứa) vào các tệp.skt.codeknit-fingerprint: Dạy trợ lý cách phát hiện mã trùng lặp và gần trùng lặp bằng fuzzy hashing.
Mỗi kỹ năng bao gồm tài liệu mà trợ lý đọc theo yêu cầu để hiểu cách sử dụng, cờ, định dạng đầu ra và quy trình làm việc.
Cài đặt
Phần tiêu đề “Cài đặt”Sao chép các thư mục kỹ năng vào thư mục kỹ năng của trợ lý.
Đối với Kiro:
cp -r skills/codeknit-parse ~/.kiro/skills/codeknit-parsecp -r skills/codeknit-fingerprint ~/.kiro/skills/codeknit-fingerprintĐối với Claude Code:
cp -r skills/codeknit-parse ~/.claude/skills/codeknit-parsecp -r skills/codeknit-fingerprint ~/.claude/skills/codeknit-fingerprintSau khi cài đặt, trợ lý sẽ tự động biết cách gọi các lệnh codeknit, chọn các cờ phù hợp và diễn giải đầu ra .skt.
Nội dung mỗi kỹ năng dạy
Phần tiêu đề “Nội dung mỗi kỹ năng dạy”codeknit-parse
Phần tiêu đề “codeknit-parse”Kỹ năng codeknit-parse dạy trợ lý cách:
- Chạy
codeknit parsevới các cờ phù hợp cho các tình huống khác nhau - Chọn chế độ đầu ra phù hợp:
directory-flat(mặc định) cho hầu hết các dự áninlinecho các tệp đơn hoặc đầu vào nhỏdirectory-treeđể phản ánh cấu trúc nguồn
- Đọc và diễn giải các tệp đầu ra
.skt, bao gồm các phần[symbols],[edges]và[dict]tùy chọn - Sử dụng dữ liệu cấu trúc cho việc tái cấu trúc, lập bản đồ phụ thuộc và đánh giá mã
- Chạy
codeknit graph analyzeđể có cái nhìn sâu hơn về chất lượng mã (phụ thuộc vòng, các ký hiệu trung tâm, god classes, v.v.)
codeknit-fingerprint
Phần tiêu đề “codeknit-fingerprint”Kỹ năng codeknit-fingerprint dạy trợ lý cách:
- Sử dụng
codeknit fingerprintđể phát hiện trùng lặp, kiểm tra DRY và xác định các phần cần tái cấu trúc - Chọn phạm vi độ tương đồng phù hợp (
--min-similarity,--max-similarity) - Đọc phần
[duplicates]để xác định mã gần trùng lặp - Hiểu rằng fingerprints đo lường hình dạng cấu trúc, không phải ý định ngữ nghĩa
- Sử dụng
--rerankvới các embedding Ollama để giảm dương tính giả khi cần thiết
Ví dụ về quy trình làm việc
Phần tiêu đề “Ví dụ về quy trình làm việc”Phân tích cấu trúc
Phần tiêu đề “Phân tích cấu trúc”- Yêu cầu trợ lý phân tích cấu trúc codebase của bạn
- Nó chạy
codeknit parse ./srcvà đọc các tệp.sktkết quả - Nó trả lời các câu hỏi về cấu trúc: phụ thuộc, chuỗi lời gọi, dead code
- Để có cái nhìn sâu hơn, nó chạy
codeknit graph analyze ./srcvà diễn giải báo cáo
[symbols]## src/service.goS1 type/struct L5-L8 AuthService {}S2 callable/method L10-L15 Authenticate(token: string) {receiver=*AuthService}
[edges]S1 --contains--> S2Phát hiện trùng lặp
Phần tiêu đề “Phát hiện trùng lặp”- Yêu cầu trợ lý tìm mã trùng lặp
- Nó chạy
codeknit fingerprint ./src - Nó đọc phần
[duplicates]trong đầu ra - Nó điều tra các cặp được gắn cờ và đề xuất hợp nhất
[duplicates]S1, S2: 87% độ tương đồngS3, S4: 76% độ tương đồng- Luôn đọc tệp
.skt, không phải mã nguồn thô, cho các câu hỏi về cấu trúc — chúng chứa cấu trúc đã trích xuất ở định dạng nhỏ gọn và đáng tin cậy - Sử dụng
codeknit graph analyzeđể phát hiện các vấn đề về chất lượng mã như phụ thuộc vòng, các ký hiệu trung tâm và chuỗi kế thừa sâu - Chạy
codeknit fingerprinttrước khi tái cấu trúc lớn để xác định mã sao chép cần được hợp nhất - Định dạng
.sktđược thiết kế để tiết kiệm token, làm cho nó trở nên lý tưởng cho các cửa sổ ngữ cảnh LLM - Sử dụng
--minifyđể giảm thêm việc sử dụng token khi xử lý các codebase lớn