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.mdstores project principles.specs/<feature>/spec.mdstores requirements and user stories.plan.md, supporting design files, andtasks.mddrive implementation./speckit-analyzechecks artifact consistency./speckit-convergecompares the implementation with the accepted artifacts./speckit-taskstoissuesconverts 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/ |