Skip to content

Latest commit

 

History

9 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Spec-Driven Development with GitHub Spec Kit

This is the repository for the LinkedIn Learning course Spec-Driven Development with GitHub Spec Kit. The full course is available from LinkedIn Learning.

lil-thumbnail-url

Course Description

AI coding agents are only as good as the instructions and context they are given. This can be a challenge when you start on a greenfield project, have to work within tight specifications, or are refactoring or updating old code to new specs.

In spec-driven development you start by defining the specifications for your project, then formulate a plan, identify tasks to be performed, and finally implement the whole thing.

Spec Kit is an open source toolkit from GitHub, which streamlines AI-powered spec-driven development. It works with GitHub Copilot, Claude Code, Gemini CLI, and other AI coding tools. Spec Kit gives you tools to define and refine your project's spec, generate plans and tasks, implement everything in code, and review the results to ensure your project stays on spec.

How to use these exercise files

This repo does not have traditional exercise files. Instead it has a baseline Codespaces and project setup for you to experiment with Spec Kit in a safe environment.

When you spin up this repo in GitHub Codespaces, UV is already installed and you can jump right to the step-by-step process.

If you are running this repo on your own computer, you need to install UV manually:

On MacOS and Linux:

curl -LsSf https://astral.sh/uv/install.sh | sh

On Windows:

powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

Step-by-step instructions for VS Code and GitHub Copilot

To start a greenfield project using Spec Kit:

Step 1: Install Spec Kit

In the current folder:

uvx --from git+https://github.com/github/spec-kit.git specify init --here

In a new folder:

uvx --from git+https://github.com/github/spec-kit.git specify init <PROJECT_NAME>

NOTE: If you install Spec Kit in the root folder, the CLI will ask you if you really want to do this and warn of potential files being affected. You can safely say yes if you want to work in the root folder. If you want to start with a clean slate, create a new folder (described above) and re-open VS Code into that folder.

Step 2: Update the Constitution

Navigate to /memory/constitution.md and update the Constitution to fit your project needs and requirements.

Note: If you use AI to build out part of or all of your Constitution, read through it from top to bottom to ensure it makes sense for your project.

Step 3: Create a spec using the /specify command

  1. Open GitHub Copilot
  2. Type in /specify to invoke the prompt template
  3. Describe your project including purpose, goals, user interactions, etc. Keep it high level, as if you're describing an idea to someone. No technical details yet.
  4. Run the prompt and allow any requests for Copilot to use chmod to change the execution context for script files (this just allows Copilot to execute the files)

Step 4: Review the spec

  1. Open /specs/[subfolder]/spec.md and review all the contents in the file.
  2. Answer any items under `### Edge Cases```
  3. Run the following command in Copilot:
Go through all [NEEDS CLARIFICATION] items one by one and let's answer them together.
  1. Prompt Copilot to go through the checklist to ensure all steps are addressed properly:
Read the review and acceptance checklist, and check off each item in the checklist if the feature spec meets the criteria. Leave it empty if it does not.

Step 5: Generate a plan using the /plan command

In Copilot, invoke the /plan template and provide more detailed instructions about your project. This can include what tools, frameworks, or other features you want to add. This is where you start adding technical details.

Step 6: Review the plan

Go to the /specs/ folder and review the files now generated, specifically plan.md, data-model.md, and research.md. Make changes as necessary and have Copilot review those changes.

Step 7: Generate tasks using the /tasks command

In copilot, invoke the /tasks template and prompt the system to generate tasks.

Step 8: Review the tasks and other related files

Go to the /specs/ folder and review tasks.md and other relevant folders.

Step 9: Implement the tasks

In Copilot, instruct the system to implement the tasks for tasks.md. Prompt the system on how you want to proceed here: Whether you want the AI to run through every task, or stop at each to ask you questions, or a combination.

Step 10: Work with Copilot to complete all tasks

Let Copilot do its job. Answer questions, perform actions, and intervene when necessary. Remember: You are using a tool, and you steer the direction the tool is going and what it does. Human-in-the-Loop is the whole point here!

Next steps: Test, review, refine, and keep working

Once the first set of tasks is complete, start working on your project to test and refine it. This is the beginning - what's next is up to you!

Relevant links

Instructor

Morten Rand-Hendriksen

Principal Staff Instructor, Speaker, Web Designer, and Software Developer

Check out my other courses on LinkedIn Learning.

About

This is a code repository for the LinkedIn Learning course Spec-Driven Development with GitHub Spec Kit

Resources

Contributing

Stars

6 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors