Project Foundation
Metadata
| Key |
Value |
| ID |
MIL-001 |
| CrossReference |
BC-001 |
| Language |
en |
| Domain |
it |
Version History
| Date |
Status |
Author |
Reviewer |
Change |
Commit |
| 2026-10-14 |
Accepted |
Jens Tirsvad Nielsen |
AI as stand-in for S01 |
Initial version |
53f56ee |
Project Foundation
Purpose
Decide whether the repository has the configuration, conventions and entry documentation every later phase builds on, so that feature work starts on a runnable, testable skeleton.
Deliverable
A repository with pyproject.toml (Python 3.13 or newer, pytest as a development dependency, no runtime dependency), a Python .gitignore that excludes .env and .venv, src/password_manager/constants.py, a smoke test under tests/, a Doxyfile, a README.md built from the framework template with .venv instructions, and a repository description and topics on the git host.
Go / No-Go Criteria
| # |
Criterion (objectively checkable) |
Go |
No-Go |
| 1 |
python -m pytest passes in a fresh .venv |
0 failures |
Any failure |
| 2 |
pyproject.toml has requires-python >= 3.13 and an empty runtime dependencies list |
Both present |
Missing or non-empty |
| 3 |
.gitignore contains .env and .venv |
Both present |
Either missing |
| 4 |
bash framework/scripts/check-readme.sh exits 0 |
Exit 0 |
Any finding |
| 5 |
The git host shows a description and at least 5 topics for the repository |
Both set |
Either missing |
Dependencies
| Depends on |
Reason |
| (none) |
The baseline documents are in the repository |
Traceability
| Business Case objective / KPI / user story |
Reference |
| BC-001 O4; Success criteria 4, 5 and 7 |
BC-001 |
Ownership
| Role |
Stakeholder ID (SA) |
| Owner |
S01 |
| Approving reviewer |
S01 (AI as stand-in, autonomous mode) |
Target Date
2026-10-15 — the Business Case sets no deadline; the plan's first phase is one to two days.
Tasks
| # |
Task |
Summary |
Needs its own Use Case/User Story? |
Reference |
| 1 |
Create pyproject.toml and the package skeleton |
Add pyproject.toml with Python 3.13 or newer, the setuptools build backend, a src/password_manager package, pytest as an optional dev dependency and pytest paths. Needed so the project installs with python -m pip install -e .[dev] and tests find the package. |
No |
|
| 2 |
Add the Python .gitignore |
Add a Python .gitignore that also excludes .env, .venv and Doxygen output, so a token or an environment is never committed. |
No |
|
| 3 |
Add constants.py |
Create src/password_manager/constants.py holding the data file name, window title, padding, default e-mail and password-length values, because the requirement is that constants live in one module. |
No |
|
| 4 |
Add the Doxyfile |
Add a Doxyfile that documents src/ into docs/doxygen/ so the Doxygen comments in the source can be built into HTML. |
No |
|
| 5 |
Write the README from the framework template |
Create README.md from the framework template with requirements, the .venv creation and python -m pip install --upgrade pip commands, run and test instructions and a Security note. |
No |
|
| 6 |
Set the repository description and topics |
Use the git host API with the token from .env (never printed, never imported by the project) to set a description and topics for the repository so viewers (S03) can find it. |
No |
|
| 7 |
Add the smoke test |
Add a first pytest test that imports the package and its constants so the test command is proven from the first milestone. |
No |
|