ตรวจสอบเวิร์กโฟลว์ GitHub Spec Kit และคําสั่งเสริม

เสร็จสมบูรณ์เมื่อ

GitHub Spec Kit เป็นชุดเครื่องมือโอเพ่นซอร์สที่เปิดใช้งานการพัฒนาที่ขับเคลื่อนด้วยข้อมูลจําเพาะ (SDD) โดยการรวมข้อมูลจําเพาะเข้ากับผู้ช่วยเขียนโค้ด AI ก่อนที่จะสํารวจคุณสมบัติขั้นสูง เรามาทบทวนแนวคิดพื้นฐานกันก่อน

ตรวจสอบข้อมูลเบื้องต้นของ GitHub Spec Kit

GitHub Spec Kit จัดการกับความท้าทายพื้นฐานในการพัฒนาโดยใช้ AI ช่วย: การรักษาบริบทและความสอดคล้องในการโต้ตอบที่หลากหลายกับผู้ช่วยเขียนโค้ด มีความสามารถที่สําคัญสามประการ:

  • สิ่งประดิษฐ์ถาวร: ข้อมูลจําเพาะ แผน และงานจะถูกจัดเก็บเป็นไฟล์มาร์กดาวน์ในที่เก็บของคุณ
  • เวิร์กโฟลว์ที่ได้มาตรฐาน: กระบวนการที่กําหนดไว้จะแนะนําคุณตลอดสี่ขั้นตอนของ SDD: ข้อมูลจําเพาะ การวางแผน การแบ่งงาน และการนําไปใช้
  • คําสั่งที่นํากลับมาใช้ใหม่ได้: คําสั่งเครื่องหมายทับในตัวจะห่อหุ้มรูปแบบการแจ้งแนวทางปฏิบัติที่ดีที่สุด

ส่วนประกอบหลัก

GitHub Spec Kit ใช้ส่วนประกอบหลักดังต่อไปนี้:

ส่วนประกอบ วัตถุประสงค์
specify CLI เริ่มต้นและจัดการโครงการที่ขับเคลื่อนด้วยข้อมูลจําเพาะ
ไฟล์อาร์ติแฟกต์ Markdown constitution.md, , spec.mdplan.md, tasks.md ขับเคลื่อนการพัฒนา
คำสั่งเครื่องหมายทับ /speckit.specify, , /speckit.plan/speckit.tasks, เรียกใช้/speckit.implementเวิร์กโฟลว์ GitHub Spec Kit

เอเจนต์ AI

GitHub Spec Kit รองรับเอเจนต์ AI ต่อไปนี้: GitHub Copilot, Claude Code, Cursor, Windsurf, Amazon Q Developer และอื่นๆ ตัวแทนแต่ละคนจะได้รับเทมเพลตที่จัดรูปแบบสําหรับรูปแบบพรอมต์เฉพาะในขณะที่ใช้ไฟล์สิ่งประดิษฐ์พื้นฐานเดียวกัน

ตัวแปรสภาพแวดล้อมสําหรับการติดตามคุณลักษณะ

GitHub Spec Kit ใช้ตัวแปรสภาพแวดล้อมเพื่อติดตามคุณลักษณะที่คุณกําลังพัฒนาอยู่ ตัวแปร SPECIFY_FEATURE ระบุไดเร็กทอรีคุณลักษณะที่ใช้งานอยู่

ในเวิร์กโฟลว์ที่ใช้ Git GitHub Spec Kit จะอนุมานคุณลักษณะจากชื่อสาขาของคุณ หากคุณอยู่ในสาขา feature/document-uploadGitHub Spec Kit จะทํางานร่วมกับไดเร็กทอรี features/document-upload/ โดยอัตโนมัติ

สําหรับเวิร์กโฟลว์ที่ไม่ใช่ Git หรือข้อกําหนดคุณลักษณะด้วยตนเอง ให้ตั้งค่าตัวแปรสภาพแวดล้อมอย่างชัดเจน:

$env:SPECIFY_FEATURE = "001-document-upload"

การตั้งค่านี้บอก GitHub Spec Kit ให้อ่านและเขียนสิ่งประดิษฐ์ในไดเร็ก features/001-document-upload/ ทอรีโดยไม่คํานึงถึงสาขา Git

การติดตามคุณสมบัตินี้ช่วยให้มั่นใจได้ว่าเมื่อคุณเรียกใช้ /speckit.planAI จะอ่านไฟล์ spec.md ที่ถูกต้องสําหรับคุณสมบัติปัจจุบันของคุณแทนที่จะผสมข้อมูลจําเพาะจากคุณสมบัติต่างๆ

ผสานรวม GitHub Spec Kit กับเวิร์กโฟลว์ Git

GitHub Spec Kit รวมเข้ากับแนวทางการพัฒนาที่มีอยู่ของคุณผ่านกลไกต่างๆ

การรวมการควบคุมเวอร์ชัน

สิ่งประดิษฐ์ GitHub Spec Kit ทั้งหมดเป็นไฟล์มาร์กดาวน์ธรรมดาที่จัดเก็บไว้ในที่เก็บ Git ของคุณ วิธีนี้มีข้อดีหลายประการ:

  • การติดตามการเปลี่ยนแปลง: การปรับเปลี่ยนข้อกําหนด แผน หรืองานทุกครั้งจะสร้างการคอมมิต Git คุณสามารถตรวจสอบประวัติของการเปลี่ยนแปลงข้อกําหนด ทําความเข้าใจว่าเหตุใดจึงมีการตัดสินใจ และย้อนกลับการเปลี่ยนแปลงที่เป็นปัญหา

  • การพัฒนาตามสาขา: สร้างสาขาคุณลักษณะที่มีทั้งสิ่งประดิษฐ์ข้อมูลจําเพาะและโค้ดการใช้งาน วิธีการนี้ช่วยให้ข้อกําหนดและการใช้งานซิงโครไนซ์กัน และทําให้การตรวจสอบโค้ดครอบคลุม ผู้ตรวจสอบจะเห็นทั้งสิ่งที่คุณกําลังสร้าง (ข้อมูลจําเพาะ) และวิธีที่คุณสร้าง (โค้ด)

  • เวิร์กโฟลว์คําขอดึงข้อมูล: เมื่อคุณส่งคําขอดึงข้อมูลสําหรับคุณลักษณะ ให้รวม spec.md, plan.md และ tasks.md ควบคู่ไปกับการเปลี่ยนแปลงโค้ด ผู้ตรวจสอบจะตรวจสอบว่าการใช้งานตรงกับข้อกําหนดและข้อกําหนดสอดคล้องกับเป้าหมายของโครงการ

ตัวอย่างเช่น หากคุณกําลังใช้คุณลักษณะใหม่ สาขาคุณลักษณะของคุณประกอบด้วย:

  • spec.md การกําหนดข้อกําหนดในการอัปโหลด
  • plan.md อธิบายสถาปัตยกรรมที่เก็บข้อมูล Azure Blob
  • tasks.md ขั้นตอนการใช้งานรายการ
  • ซอร์สโค้ดที่ใช้คุณลักษณะ
  • การทดสอบเพื่อตรวจสอบการปฏิบัติตามข้อกําหนด

ภาพที่สมบูรณ์นี้ช่วยให้สามารถตรวจสอบได้อย่างละเอียด หากผู้ตรวจสอบตั้งคําถามว่าเหตุใดไฟล์จึงถูกจํากัดไว้ที่ 50 MB พวกเขาสามารถอ้างอิง spec.md และดูว่าข้อกําหนดนี้มาจากการอภิปรายของผู้มีส่วนได้ส่วนเสีย

สถานการณ์การรวมผู้ช่วย AI - GitHub Copilot

GitHub Spec Kit ทํางานร่วมกับ GitHub Copilot ผ่านอินเทอร์เฟซการแชทของ Visual Studio Code หลังจากที่คุณเรียกใช้ specify init --ai copilotชุดเครื่องมือจะกําหนดค่าพื้นที่ทํางานของคุณเพื่อจดจํา /speckit.* คําสั่ง

เมื่อคุณเปิด GitHub Copilot Chat และพิมพ์ /speckit.specifyGitHub Copilot จะเข้าถึงเทมเพลตที่กําหนดไว้ล่วงหน้าจาก .github/prompts/ ไดเรกทอรี เทมเพลตเหล่านี้ช่วยจัดโครงสร้างผลลัพธ์ของ AI ให้รวมส่วนข้อมูลจําเพาะที่จําเป็นทั้งหมด: เรื่องราวของผู้ใช้ เกณฑ์การยอมรับ ข้อกําหนดด้านการทํางาน ข้อกําหนดที่ไม่ทํางาน และกรณีขอบ

การผสานรวมเป็นไปอย่างราบรื่น คุณไม่ต้องจัดการเทมเพลตด้วยตนเอง GitHub Spec Kit จัดการการโหลดเทมเพลตและการแทรกบริบทโดยอัตโนมัติ งานของคุณคือให้คําอธิบายคุณลักษณะและตอบคําถามที่ชี้แจง GitHub Copilot จัดการการจัดรูปแบบข้อมูลจําเพาะและความสมบูรณ์

อนุสัญญาโครงสร้างโครงการ

GitHub Spec Kit จัดระเบียบสิ่งประดิษฐ์โดยใช้โครงสร้างไดเรกทอรีที่สอดคล้องกัน:

my-project/
├── .github/
│   ├── agents/
│   └── prompts/
├── .specify/
│   ├── memory/
│   │   └── constitution.md
│   ├── scripts/
│   └── templates/
├── SourceCode/ 
│   └── ...
├── specs/
│   └── 001-document-upload-feature/
│       ├── plan.md
│       ├── spec.md
│       └── tasks.md

โครงสร้างนี้แยกสิ่งประดิษฐ์ข้อมูลจําเพาะออกจากโค้ดการใช้งานในขณะที่เก็บไว้ในที่เก็บเดียวกัน คุณลักษณะจะถูกกําหนดหมายเลขตามลําดับ (001, 002, 003) เพื่อติดตามลําดับการพัฒนา

สําหรับทีมที่ทํางานกับคุณสมบัติหลายอย่างพร้อมกันแต่ละคุณลักษณะจะมีไดเร็กทอรีของตัวเองที่มีข้อกําหนดแผนและงานที่สมบูรณ์ การแยกนี้ช่วยป้องกันความสับสนและช่วยให้ทํางานคู่ขนานได้โดยไม่มีข้อขัดแย้ง

การสนับสนุนเวิร์กโฟลว์อย่างต่อเนื่อง

GitHub Spec Kit รองรับการพัฒนาแบบวนซ้ําผ่านการเชื่อมโยงคําสั่ง หลังจากสร้างข้อมูลจําเพาะเบื้องต้นแล้ว คุณสามารถปรับแต่งได้ทีละน้อย:

  1. สร้างข้อมูลจําเพาะเริ่มต้น: /speckit.specify.
  2. ระบุช่องว่าง: /speckit.clarify.
  3. อัปเดตข้อมูลจําเพาะตามคําตอบ
  4. สร้างแผนการดําเนินงาน: /speckit.plan.
  5. ตรวจสอบความสอดคล้อง: /speckit.analyze.
  6. สร้างงาน: /speckit.tasks.
  7. ดําเนินการทีละน้อย: /speckit.implement.

เมื่อใดก็ได้หากข้อกําหนดเปลี่ยนแปลงคุณสามารถกลับไปยังขั้นตอนก่อนหน้าอัปเดตสิ่งประดิษฐ์และสร้างสิ่งประดิษฐ์ดาวน์สตรีมใหม่ได้ หากผู้มีส่วนได้ส่วนเสียเปลี่ยนใจเกี่ยวกับขีดจํากัดขนาดไฟล์หลังจากที่คุณสร้างงาน คุณจะอัปเดต spec.md สร้าง plan.md ใหม่เพื่อสะท้อนถึงความหมายทางสถาปัตยกรรม สร้าง tasks.md ใหม่ด้วยขั้นตอนการตรวจสอบที่อัปเดต จากนั้นอัปเดตโค้ดการใช้งาน

ความยืดหยุ่นนี้สนับสนุนการพัฒนาในโลกแห่งความเป็นจริงที่ความต้องการเปลี่ยนแปลง วิธีการที่เน้นข้อมูลจําเพาะเป็นอันดับแรกช่วยให้มั่นใจได้ว่าการเปลี่ยนแปลงจะเผยแพร่อย่างเป็นระบบแทนที่จะแพตช์ลงในโค้ดโดยไม่ต้องอัปเดตเอกสารประกอบ

ใช้ประโยชน์จากคําสั่งการเพิ่มประสิทธิภาพเสริมของ GitHub Spec Kit

นอกเหนือจากคําสั่งเวิร์กโฟลว์หลักแล้ว GitHub Spec Kit ยังมีคําสั่งเสริมที่ช่วยเพิ่มคุณภาพและความสอดคล้องของข้อมูลจําเพาะ

ใช้ /speckit.clarify สําหรับการวิเคราะห์ช่องว่าง

/speckit.clarifyคําสั่งจะวิเคราะห์ข้อมูลจําเพาะของคุณเพื่อระบุความคลุมเครือ รายละเอียดที่ขาดหายไป และกรณีขอบที่ระบุไว้น้อยเกินไป หลังจากสร้างข้อมูลจําเพาะเริ่มต้นแล้ว ให้เรียกใช้คําสั่งนี้เพื่อให้ AI ถามคําถามที่ชี้แจง

AI จะตรวจสอบข้อมูลจําเพาะของคุณและสร้างคําถามเช่น:

  • "ข้อมูลจําเพาะกล่าวถึงการอัปโหลดไฟล์ แต่ไม่ได้ระบุการอัปโหลดพร้อมกันสูงสุด ควรมีขีดจํากัดหรือไม่"
  • "ไม่ได้ระบุการจัดการข้อผิดพลาดสําหรับความล้มเหลวของเครือข่าย จะเกิดอะไรขึ้นหากขาดการเชื่อมต่อการอัปโหลด"
  • "ข้อมูลจําเพาะต้องการการตรวจสอบไฟล์ แต่ไม่ได้ระบุข้อความความล้มเหลวในการตรวจสอบความถูกต้อง ผู้ใช้ควรเห็นอะไร"

สําหรับคําถามแต่ละข้อ AI มักจะมีตัวเลือกแบบปรนัยสําหรับวิธีแก้ไขช่องว่าง คุณเลือกตัวเลือกหรือให้คําตอบแบบกําหนดเอง และ AI จะอัปเดตข้อมูลจําเพาะตามนั้น

การปรับแต่งแบบโต้ตอบนี้จะตรวจจับปัญหาก่อนเริ่มการใช้งาน มันเหมือนกับการให้นักวิเคราะห์ที่มีประสบการณ์ตรวจสอบข้อมูลจําเพาะของคุณและชี้ให้เห็นสิ่งที่คุณพลาดไป

ใช้ /speckit.analyze สําหรับการตรวจสอบความสอดคล้องกัน

คําสั่งจะ /speckit.analyze ทําการตรวจสอบความสอดคล้องของสิ่งประดิษฐ์ข้ามสิ่งประดิษฐ์ ตรวจสอบว่าแผนของคุณใช้ข้อกําหนดข้อกําหนดทั้งหมดงานครอบคลุมองค์ประกอบของแผนทั้งหมดและทุกอย่างสอดคล้องกับรัฐธรรมนูญ

เรียกใช้คําสั่งนี้หลังจากสร้าง plan.md และ tasks.md แต่ก่อนเริ่มการใช้งาน AI ระบุความไม่สอดคล้องกัน:

  • "แผนเสนอให้ใช้ PostgreSQL แต่รัฐธรรมนูญต้องใช้ฐานข้อมูล Azure SQL"
  • "ข้อมูลจําเพาะต้องมีการบันทึกการตรวจสอบ แต่แผนไม่ได้อธิบายถึงการใช้งานการบันทึก"
  • "รายการงานละเว้นสคริปต์การโยกย้ายฐานข้อมูลที่กล่าวถึงในแผน"

ความไม่สอดคล้องกันที่ระบุแต่ละรายการเป็นปัญหาที่จะปรากฏขึ้นระหว่างการใช้งานหรือการตรวจสอบโค้ด การจับพวกมันในระหว่างขั้นตอนการวิเคราะห์จะป้องกันการทํางานซ้ํา

ใช้ /speckit.checklist สําหรับการตรวจสอบคุณภาพ

คําสั่งจะ /speckit.checklist สร้างรายการตรวจสอบคุณภาพแบบกําหนดเองตามข้อมูลจําเพาะของคุณ รายการตรวจสอบเหล่านี้ช่วยตรวจสอบความสมบูรณ์ ความชัดเจน และความสอดคล้องของข้อกําหนด เช่น "การทดสอบหน่วยสําหรับร้อยแก้วภาษาอังกฤษ"

AI จะวิเคราะห์ข้อมูลจําเพาะของคุณและสร้างรายการตรวจสอบคําถามยืนยัน:

  • "เรื่องราวของผู้ใช้ทุกเรื่องมีเกณฑ์การยอมรับที่สอดคล้องกันหรือไม่"
  • "สถานการณ์ข้อผิดพลาดทั้งหมดได้รับการบันทึกด้วยข้อความแสดงข้อผิดพลาดที่เฉพาะเจาะจงหรือไม่"
  • "ข้อกําหนดที่ไม่ทํางานรวมถึงเกณฑ์ความสําเร็จที่วัดได้หรือไม่"
  • "การพึ่งพาภายนอกทั้งหมดระบุไว้อย่างชัดเจนหรือไม่"

คุณทํางานผ่านรายการตรวจสอบ ตอบคําถามแต่ละข้อ คําตอบ "ไม่" ใด ๆ บ่งบอกถึงช่องว่างของข้อมูลจําเพาะที่คุณต้องแก้ไข

กระบวนการตรวจสอบด้วยตนเองนี้ช่วยปรับปรุงคุณภาพข้อมูลจําเพาะก่อนที่จะแบ่งปันกับผู้มีส่วนได้ส่วนเสียหรือดําเนินการ

ใช้ GitHub Spec Kit กับสถานการณ์การพัฒนาที่แตกต่างกัน

GitHub Spec Kit รองรับสถานการณ์การพัฒนาที่หลากหลายนอกเหนือจากการสร้างคุณสมบัติใหม่ตั้งแต่เริ่มต้น

การพัฒนากรีนฟิลด์

สําหรับโครงการใหม่ที่เริ่มต้นจากศูนย์ GitHub Spec Kit มีความเป็นเลิศในการเปลี่ยนวิสัยทัศน์ของผลิตภัณฑ์ระดับสูงให้เป็นการนําไปใช้อย่างเป็นรูปธรรม คุณเริ่มต้นด้วย /speckit.constitution การสร้างหลักการของโครงการ จากนั้นใช้สําหรับ /speckit.specify แต่ละคุณลักษณะในขณะที่คุณสร้างแอปพลิเคชันซ้ําๆ

สถานการณ์นี้เป็นกรณีการใช้งานหลักของ GitHub Spec Kit เวิร์กโฟลว์ได้รับการออกแบบมาสําหรับการพัฒนาแบบ 0 ต่อ 1 ซึ่งคุณกําลังสร้างสิ่งที่ยังไม่มีอยู่จริง

การปรับปรุงบราวน์ฟิลด์

สําหรับแอปพลิเคชันที่มีอยู่ คุณสามารถใช้ GitHub Spec Kit เพื่อเพิ่มคุณสมบัติใหม่ในขณะที่ยังคงความสอดคล้องกับฐานรหัสที่มีอยู่ รัฐธรรมนูญของคุณจัดทําเอกสารรูปแบบและข้อจํากัดทางสถาปัตยกรรมที่มีอยู่ ข้อมูลจําเพาะของคุณสมบัติใหม่อ้างอิงถึงรูปแบบที่กําหนดไว้เหล่านี้

เมื่อคุณเพิ่มคุณลักษณะการอัปโหลดเอกสารไปยังพอร์ทัลพนักงานที่มีอยู่ ข้อมูลจําเพาะของคุณจะรับทราบส่วนหน้า React ที่มีอยู่ ส่วนหลัง .NET และโครงสร้างพื้นฐาน Azure แผนแสดงให้เห็นว่าคุณลักษณะใหม่ผสานรวมกับสถาปัตยกรรมปัจจุบันอย่างไรแทนที่จะเสนอการใช้งานแยกต่างหาก

การปรับโครงสร้างใหม่และความทันสมัย

GitHub Spec Kit สามารถเป็นแนวทางในการปรับโครงสร้างใหม่โดยถือว่าสถานะสิ้นสุดที่ต้องการเป็นข้อมูลจําเพาะ คุณจัดทําเอกสารสิ่งที่โค้ดที่ปรับโครงสร้างใหม่ควรบรรลุ (ฟังก์ชันเดียวกันกับโครงสร้างที่ได้รับการปรับปรุง) สร้างแผนสําหรับแนวทางการปรับโครงสร้างใหม่ และสร้างงานสําหรับการเปลี่ยนแปลงที่เพิ่มขึ้น

แนวทางที่มีโครงสร้างในการปรับโครงสร้างใหม่นี้ช่วยป้องกันปัญหาทั่วไปของการเริ่มต้นการปรับโครงสร้างใหม่และสูญหายระหว่างกระบวนการด้วยโค้ดที่ใช้งานได้บางส่วน

การพัฒนาเชิงสํารวจ

สําหรับสถานการณ์ที่คุณกําลังสํารวจแนวทางที่เป็นไปได้หลายวิธี ให้ใช้ GitHub Spec Kit เพื่อสร้างแผนหลายแผนจากข้อกําหนดเดียวกัน ข้อมูลจําเพาะที่เสถียรแสดงถึงสิ่งที่คุณต้องการบรรลุ ในขณะที่แผนต่างๆ จะสํารวจแนวทางทางเทคนิคที่แตกต่างกัน

คุณอาจสร้างแผนหนึ่งโดยใช้ที่เก็บข้อมูล Azure Blob และอีกแผนหนึ่งโดยใช้ไฟล์ Azure ทั้งจากข้อกําหนดการอัปโหลดเดียวกัน ใช้ทั้งสองอย่าง เปรียบเทียบผลลัพธ์ และเลือกแนวทางที่ดีกว่าตามประสบการณ์จริงมากกว่าสมมติฐาน

Summary

GitHub Spec Kit เป็นชุดเครื่องมืออันทรงพลังที่ช่วยให้สามารถพัฒนาที่ขับเคลื่อนด้วยข้อมูลจําเพาะโดยการรวมเวิร์กโฟลว์ที่มีโครงสร้าง สิ่งประดิษฐ์ถาวร และรูปแบบคําสั่ง AI ที่นํากลับมาใช้ใหม่ได้ มันเปลี่ยนวิธีการทํางานของคุณกับผู้ช่วยเขียนโค้ด AI เช่น GitHub Copilot โดยให้แนวทางที่เป็นระบบในการเปลี่ยนข้อมูลจําเพาะให้เป็นการใช้งานที่ใช้งานได้ เมื่อใช้ GitHub Spec Kit คุณสามารถมั่นใจได้ถึงความสอดคล้องระหว่างข้อกําหนดและโค้ด รักษาความสามารถในการตรวจสอบย้อนกลับของการตัดสินใจ และปรับปรุงการทํางานร่วมกันระหว่างทีมพัฒนา