ข้ามไปยังเนื้อหา

การใช้งานกับผู้ช่วย AI

codeknit มาพร้อมกับทักษะที่พร้อมใช้งานซึ่งสอนผู้ช่วยเขียนโค้ด AI ให้ใช้งานได้อย่างมีประสิทธิภาพ ทักษะเหล่านี้ช่วยให้ผู้ช่วยสามารถดึงโครงสร้างโค้ด ตรวจจับรายการซ้ำ และทำการวิเคราะห์โครงสร้างได้โดยไม่ต้องมีการพร้อมท์ด้วยตนเอง

codeknit มีทักษะให้สองรายการ:

  • codeknit-parse: สอนผู้ช่วยให้ดึงโครงสร้างโค้ด (ฟังก์ชัน คลาส เมธอด ตัวแปร) และความสัมพันธ์ (การเรียกใช้ การสืบทอด การบรรจุ) ไปยังไฟล์ .skt
  • codeknit-fingerprint: สอนผู้ช่วยให้ตรวจจับโค้ดที่ซ้ำและเกือบซ้ำโดยใช้ fuzzy hashing

ทักษะแต่ละรายการมีเอกสารประกอบที่ผู้ช่วยสามารถอ่านตามต้องการเพื่อทำความเข้าใจการใช้งาน แฟล็ก รูปแบบเอาต์พุต และขั้นตอนการทำงาน

ใช้ตัวช่วยติดตั้งเพื่อคัดลอกไดเรกทอรีทักษะไปยังโฟลเดอร์ทักษะของผู้ช่วยของคุณ ตัวติดตั้งจะดาวน์โหลดเฉพาะไฟล์ทักษะที่รวมมาด้วย คุณจึงไม่จำเป็นต้องโคลน repository

ติดตั้งสำหรับ Codex, Kiro, และ Claude Code:

Terminal window
curl -fsSL https://raw.githubusercontent.com/awslabs/codeknit/main/scripts/install-skills.sh | bash

ติดตั้งสำหรับผู้ช่วยหนึ่งรายการ:

Terminal window
curl -fsSL https://raw.githubusercontent.com/awslabs/codeknit/main/scripts/install-skills.sh | bash -s -- --assistant codex
curl -fsSL https://raw.githubusercontent.com/awslabs/codeknit/main/scripts/install-skills.sh | bash -s -- --assistant kiro
curl -fsSL https://raw.githubusercontent.com/awslabs/codeknit/main/scripts/install-skills.sh | bash -s -- --assistant claude

จากการเช็คเอาต์ในเครื่อง คุณสามารถใช้ตัวช่วย Makefile:

Terminal window
make skills-install-dry-run
make skills-install

ตัวติดตั้งจะข้ามไดเรกทอรีทักษะที่มีอยู่โดยค่าเริ่มต้น หากต้องการแทนที่ ให้เพิ่ม --force:

Terminal window
curl -fsSL https://raw.githubusercontent.com/awslabs/codeknit/main/scripts/install-skills.sh | bash -s -- --assistant all --force

หลังจากการติดตั้ง ผู้ช่วยจะรู้วิธีเรียกใช้คำสั่ง codeknit เลือกแฟล็กที่เหมาะสม และตีความเอาต์พุต .skt โดยอัตโนมัติ

ทักษะ codeknit-parse สอนผู้ช่วยให้:

  • รัน codeknit parse พร้อมแฟล็กที่เหมาะสมสำหรับสถานการณ์ต่าง ๆ
  • เลือกโหมดเอาต์พุตที่ถูกต้อง:
    • directory-flat (ค่าเริ่มต้น) สำหรับโปรเจ็กต์ส่วนใหญ่
    • inline สำหรับไฟล์เดียวหรืออินพุตขนาดเล็ก
    • directory-tree เพื่อสะท้อนโครงสร้างต้นทาง
  • อ่านและตีความไฟล์เอาต์พุต .skt รวมถึงส่วน [symbols], [edges] และส่วน [dict] ที่เป็นตัวเลือก
  • ใช้ข้อมูลโครงสร้างสำหรับการปรับโครงสร้าง การทำแผนที่การพึ่งพา และการตรวจสอบโค้ด
  • รัน codeknit graph analyze เพื่อให้ได้ข้อมูลเชิงลึกด้านคุณภาพโค้ดที่ลึกขึ้น (การพึ่งพาแบบวนรอบ สัญลักษณ์ศูนย์กลาง คลาส god ฯลฯ)

ทักษะ codeknit-fingerprint สอนผู้ช่วยให้:

  • ใช้ codeknit fingerprint สำหรับการตรวจจับรายการซ้ำ การตรวจสอบ DRY และการระบุการปรับโครงสร้าง
  • เลือกระดับความคล้ายคลึงที่เหมาะสม (--min-similarity, --max-similarity)
  • อ่านส่วน [duplicates] เพื่อระบุโค้ดที่เกือบซ้ำ
  • เข้าใจว่าฟิงเกอร์พรินต์วัดรูปร่างโครงสร้าง ไม่ใช่ความหมายเชิงความหมาย
  • ใช้ --rerank กับ Ollama embeddings เพื่อลดผลบวกลวงเมื่อจำเป็น
  1. ขอให้ผู้ช่วยวิเคราะห์โครงสร้างโค้ดของคุณ
  2. ผู้ช่วยจะรัน codeknit parse ./src และอ่านไฟล์ .skt ที่ได้
  3. ผู้ช่วยจะตอบคำถามเกี่ยวกับโครงสร้าง: การพึ่งพา โซ่การเรียกใช้ โค้ดที่ไม่ใช้งาน
  4. สำหรับข้อมูลเชิงลึกที่ลึกขึ้น ผู้ช่วยจะรัน codeknit graph analyze ./src และตีความรายงาน
[symbols]
## src/service.go
S1 type/struct L5-L8 AuthService {}
S2 callable/method L10-L15 Authenticate(token: string) {receiver=*AuthService}
[edges]
S1 --contains--> S2
  1. ขอให้ผู้ช่วยค้นหารหัสที่ซ้ำกัน
  2. ผู้ช่วยจะรัน codeknit fingerprint ./src
  3. ผู้ช่วยจะอ่านส่วน [duplicates] ในเอาต์พุต
  4. ผู้ช่วยจะตรวจสอบคู่ที่ถูกทำเครื่องหมายและเสนอการรวม
[duplicates]
S1, S2: 87% similarity
S3, S4: 76% similarity
  • อ่านไฟล์ .skt เสมอ ไม่ใช่ซอร์สโค้ดดิบ สำหรับคำถามเกี่ยวกับโครงสร้าง — ไฟล์เหล่านี้มีโครงสร้างที่ดึงออกมาในรูปแบบที่กระชับและเชื่อถือได้
  • ใช้ codeknit graph analyze เพื่อเปิดเผยปัญหาคุณภาพโค้ด เช่น การพึ่งพาแบบวนรอบ สัญลักษณ์ศูนย์กลาง และโซ่การสืบทอดที่ลึก
  • รัน codeknit fingerprint ก่อนการปรับโครงสร้างขนาดใหญ่เพื่อระบุโค้ดที่คัดลอกมาซึ่งควรจะถูกรวม
  • รูปแบบ .skt ได้รับการออกแบบให้ใช้โทเค็นอย่างมีประสิทธิภาพ ทำให้เหมาะสำหรับหน้าต่างบริบทของ LLM
  • ใช้ --minify เพื่อลดการใช้โทเค็นลงอีกเมื่อประมวลผลโค้ดเบสขนาดใหญ่