ตรวจสอบเวิร์กโฟลว์ 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 รองรับการพัฒนาแบบวนซ้ําผ่านการเชื่อมโยงคําสั่ง หลังจากสร้างข้อมูลจําเพาะเบื้องต้นแล้ว คุณสามารถปรับแต่งได้ทีละน้อย:
- สร้างข้อมูลจําเพาะเริ่มต้น:
/speckit.specify. - ระบุช่องว่าง:
/speckit.clarify. - อัปเดตข้อมูลจําเพาะตามคําตอบ
- สร้างแผนการดําเนินงาน:
/speckit.plan. - ตรวจสอบความสอดคล้อง:
/speckit.analyze. - สร้างงาน:
/speckit.tasks. - ดําเนินการทีละน้อย:
/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 คุณสามารถมั่นใจได้ถึงความสอดคล้องระหว่างข้อกําหนดและโค้ด รักษาความสามารถในการตรวจสอบย้อนกลับของการตัดสินใจ และปรับปรุงการทํางานร่วมกันระหว่างทีมพัฒนา