This repository contains a case study application used in the book Spec-driven Development with the AI Unified Process (AIUP).
The goal of this project is not to build a feature-rich task manager, but to show how specifications, code, and tests stay in sync when using a spec-driven approach with AI assistance.
This project demonstrates:
- how system behavior is defined using structured specifications
- how System Use Cases act as executable contracts
- how code and tests are derived from specs
- how AI is used to update existing code when specifications change, instead of regenerating everything
The repository is intentionally small and focused.
All specifications are located in the /docs directory.
/docs
├── vision.md
├── requirements.md
├── entity-model.md
└── use-cases
├── UC-01-create-task.md
├── UC-02-view-task-list.md
└── ...
The /docs folder is the single source of truth for system behavior.
Code and tests must always reflect what is defined there.
aiup-task-manager
├── docs # All specifications (source of truth)
├── src
│ ├── main # Application code
│ └── test # Automated tests derived from use cases
├── README.md
└── pom.xml
-
/docsContains vision, requirements, entity model, and system use cases. -
/src/mainImplementation derived from the specifications. -
/src/testTests that verify the behavior defined in the system use cases.
- Start with a short vision
- Create or update requirements using AIUP commands
- Define System Use Cases with main and alternative flows
- Generate or update code and tests from these specifications
- When specs change, synchronize code and tests instead of rewriting them
This workflow is explained step by step in the book.
- Not a production-ready task manager
- Not a framework showcase
- Not a full reference architecture
It is a didactic example designed to make spec-driven development concrete and understandable.