This project demonstrates end-to-end AI-assisted development using spec-kit: starting from a blank directory, a fully implemented .NET CLI tool was built entirely through structured agents in GitHub Copilot Chat. The steps below document exactly what was done — you can follow the same process to build your own project.
- uv — Python package manager used to install spec-kit
- VS Code with the GitHub Copilot extension
uv tool install specify-cli --from git+https://github.com/github/spec-kit.gitThis was run in the project directory:
specify init . --ai copilotThis scaffolded the spec-kit structure and installed the Copilot custom agents.
code .All spec-kit agents are available in the Copilot Chat Agent mode. Open Copilot Chat, click the Agent dropdown (top-left of the chat input), and select the agent you want to invoke.
The agents available are:
| Agent | Purpose |
|---|---|
speckit.constitution |
Define project-wide principles and governance |
speckit.specify |
Generate a feature specification from a description |
speckit.clarify |
Ask targeted questions to tighten an existing spec |
speckit.plan |
Produce a technical design and implementation plan |
speckit.analyze |
Check consistency across spec, plan, and tasks |
speckit.tasks |
Generate a dependency-ordered task list |
speckit.checklist |
Produce a custom quality checklist |
speckit.implement |
Execute tasks from tasks.md |
speckit.taskstoissues |
Convert tasks into GitHub Issues |
The speckit.constitution agent was invoked with:
Create principles focused on code quality, testing standards, user experience
consistency, and performance requirements. Include governance for how these
principles should guide technical decisions and implementation choices.
This created .specify/memory/constitution.md, which all subsequent agents respected.
The speckit.specify agent was invoked with:
Create a command utility that I can use to determine the current date and time
for a given location using the timezone, the name of the location, a zip code
if in the US or whatever else would work to make it easy to use. Add anything
that would be relevant to be able to schedule meetings across timezones easily.
This created specs/<feature>/spec.md.
Optional:
speckit.clarifycan be run after this step to ask up to 5 targeted questions and encode the answers back into the spec before moving on.
The speckit.plan agent was invoked with:
Use .NET core for a single binary deployment and make sure we can generate it
for various OS-es and architectures
This created specs/<feature>/plan.md with a technical design tailored to the spec and the constitution.
The speckit.tasks agent was invoked with:
Execute
This created specs/<feature>/tasks.md with a dependency-ordered list of implementation tasks.
Optional:
speckit.analyzecan be run after this step to validate consistency acrossspec.md,plan.md, andtasks.mdbefore writing any code.
Optional:
speckit.checklistcan be run to generate a custom quality checklist tailored to the feature.
The speckit.implement agent was invoked with:
Execute
Large features are not always fully delivered in a single pass. For this project, three passes were needed:
Pass 1 — speckit.implement was run with Execute. The agent completed the majority of tasks.
Pass 2 — speckit.implement was run again with Execute. The agent picked up the remaining incomplete tasks.
Pass 3 — speckit.implement was run a final time with Execute. All tasks were complete.
The number of passes will vary per project depending on scope and complexity.
The fully implemented Timezone Utility CLI — a .NET single-binary tool with timezone conversion, meeting scheduling, location resolution, and profile management — built from a one-sentence description in three implementation passes.
