Files
Tirsvad 9ec3fd9970
TirSystem/git-workflows: Publish wiki / publish-wiki (push) Skipped
TirSystem/git-workflows: Validate / validate (pull_request) Successful in 36s
TirSystem/git-workflows: Release / release (pull_request) Successful in 23s
TirSystem/git-workflows: OpenGrep / opengrep (pull_request) Successful in 4m5s
TirSystem/git-workflows: Sync GitHub mirror metadata / sync-metadata (push) Successful in 14s
TirSystem/git-workflows: Validate / validate (push) Successful in 40s
TirSystem/git-workflows: Publish accepted milestones / publish (push) Successful in 44s
TirSystem/git-workflows: OpenGrep / opengrep (push) Successful in 4m25s
Resolve pending commit links
2026-11-06 12:18:21 +08:00

80 lines
4.1 KiB
Markdown

# MIL-001 Project foundation
## Metadata
| Key | Value |
| --- | --- |
| ID | MIL-001 |
| CrossReference | [BC-001], [ADR-0001] |
| Language | en |
| Domain | it |
## Version History
| Date | Status | Author | Reviewer | Change | Commit |
| --- | --- | --- | --- | --- | --- |
| 2026-11-06 | Deprecated | Jens Tirsvad Nielsen | S01 | Initial version | [73a5a95] |
| 2026-11-06 | Accepted | Jens Tirsvad Nielsen | S01 | Paths follow the layered layout of ADR-0001 | [0f4e36b] |
---
## Purpose
Decide whether the project skeleton (configuration, tooling, documentation baseline and repository metadata) is ready for the lecture code.
## Deliverable
A repository with `pyproject.toml`, `.gitignore`, `constants.py` files in the `domain` and `infrastructure` layers of `src/flask_day_54/`, a Doxyfile, a README with `.venv` instructions, the repository description and topics, and a passing (empty-but-collecting) pytest run.
## Go / No-Go Criteria
| # | Criterion (objectively checkable) | Go | No-Go |
| --- | --- | --- | --- |
| 1 | `python -m pytest` runs and exits 0 on a fresh `.venv` | Met | Not met |
| 2 | `pyproject.toml` declares Python 3.13 or newer, the optional extras `web` and `dev`, and no mandatory runtime dependency | Met | Not met |
| 3 | `.gitignore` excludes `.venv/` and `.env` | Met | Not met |
| 4 | `doxygen Doxyfile` finishes without errors | Met | Not met |
| 5 | The repository has a description and at least 5 topics on the git host | Met | Not met |
| 6 | README follows the framework template and passes `check-readme.sh` | Met | Not met |
## Dependencies
| Depends on | Reason |
| --- | --- |
| None | First gateway after the accepted baseline (BC-001, SA-001, PP-001) |
## Traceability
| Business Case objective / KPI / user story | Reference |
| --- | --- |
| Objective 3 and 5; constraints on tooling | BC-001 |
| CN-004, CN-005, CN-006 | SA-001 |
## Ownership
| Role | Stakeholder ID (SA) |
| --- | --- |
| Owner | S01 |
| Approving reviewer | S01 |
## Target Date
2026-11-06 - same day as the plan; fits the Business Case effort estimate.
## Tasks
| # | Task | Summary | Needs its own Use Case/User Story? | Reference |
| --- | --- | --- | --- | --- |
| 1 | Add pyproject.toml | Configure the project with requires-python >=3.13, the optional extras `web` (Flask) and `dev` (pytest), and pytest settings so tests import modules from `src/`. Keeps the pure-Python lectures free of runtime dependencies (SA-001 CN-006). | No | |
| 2 | Add Python .gitignore | Ignore virtual environments, caches, build output, Doxygen output and the personal `.env` file so no token can be committed. | No | |
| 3 | Add constants.py and package layout | Create `constants.py` files in the `domain` and `infrastructure` layers of `src/flask_day_54/` for all constants (greeting, host, port, command names) and the empty `tests/` folder, as the constraints require constants in one place. | No | |
| 4 | Add Doxyfile | Generate a Doxyfile that reads `src/` (the `flask_day_54` package), writes to `docs/doxygen/` (ignored by git) and extracts documentation from Doxygen comments. | No | |
| 5 | Write README from the framework template | Use the framework README template; describe creating and activating a local `.venv`, running `python -m pip install --upgrade pip`, installing extras, running the app and running pytest. | No | |
| 6 | Set repository description and topics | Use the Gitea REST API with the token from the author's environment (never stored in the repository) to set a description and topics so visitors (S03) can find and understand the repository. | No | |
| 7 | Record the AI prompt log | Add `docs/ai-prompts/session-001/` as `framework/process/ai-prompt-log.md` requires. | No | |
---
[BC-001]: ../business-case.md
[ADR-0001]: ../adr/adr-0001-layered-package-layout.md
[73a5a95]: https://git.tirsystem.com/Tirsvad-Udemy-100-days-of-code/054-flask/commit/73a5a95d28db041e4f27342cc552e18f7d386410
[0f4e36b]: https://git.tirsystem.com/Tirsvad-Udemy-100-days-of-code/054-flask/commit/0f4e36b68282be23a71aa6684af01ca85a1e9473