Skip to content
GitHub Copilot Train-the-Trainer
Overview

Session M5-02: Spec Kit: Specification-driven development

Module: Specification-Driven Frameworks

Difficulty: Advanced

Prerequisites: Sessions M1-01 to M1-03, M2-01 to M2-04, M3-01 to M3-05 Duration: 3 hours 30 minutes (1 hour trainer content, 2 hours 30 minutes lab)

Overview

Use Spec Kit to turn one feature request into tested code. You initialize an existing Python project and create the Spec Kit artifacts. Then you implement an archive operation and run convergence review. A later restore requirement prompts you to update the living specification and repeat the workflow.

The lab uses Spec Kit's real project model:

  • .specify/memory/constitution.md stores project principles.
  • specs/<feature>/spec.md stores requirements and user stories.
  • plan.md, supporting design files, and tasks.md drive implementation.
  • /speckit-analyze checks artifact consistency.
  • /speckit-converge compares the implementation with the accepted artifacts.
  • /speckit-taskstoissues converts the generated task list into GitHub Issues.

Spec Kit generates its Copilot skills during specify init.

Learning outcomes

  • Initialize Spec Kit in an existing repository and inspect the generated files.
  • Write testable requirements before choosing an implementation.
  • Turn the accepted specification into a plan and dependency-ordered tasks.
  • Convert generated tasks into GitHub Issues.
  • Implement the change in stages and use convergence to find missing work.
  • Evolve a living specification and update the plan, tasks, and code to match.
  • Explain which files come from Spec Kit and which records belong to the team.

Required access

Learners need a GitHub training repository with issue permissions, Python 3.10 or later, Git, GitHub Copilot in the selected coding environment, and an approved Spec Kit source and version. For disconnected environments, prepare the official air-gapped package before the session.

Approved installation pattern

export SPECKIT_TAG='<approved-release-tag>'
uv tool install specify-cli --force \
  --from "git+https://github.com/github/spec-kit.git@${SPECKIT_TAG}"
specify version

Use the approved internal package source when policy requires it. Before installation, record the source, tag, and approval.

Materials

Resource Location
Trainer guide trainer-content/
Slides slides.md
Lab lab/
Starter project lab/starter/archive-task/
Reference result lab/solution/archive-task/