Files
048-the-coockie-factory/docs/milestones/mil-001-project-setup.md
2026-10-28 16:23:33 +08:00

74 lines
3.5 KiB
Markdown

# Project setup and tooling
## Metadata
| Key | Value |
| --- | --- |
| ID | MIL-001 |
| CrossReference | [BC-001] |
| Language | en |
| Domain | it |
## Version History
| Date | Status | Author | Reviewer | Change | Commit |
| --- | --- | --- | --- | --- | --- |
| 2026-10-28 | Accepted | Jens Tirsvad Nielsen | AI as stand-in for S01 | Initial version (reviewed in RC-004) | [96a9a78] |
---
## Purpose
Decide whether the repository is ready to receive code: configuration, tooling, ignore rules, API documentation setup and repository metadata exist and are reviewed.
## Deliverable
`pyproject.toml` (Python 3.13 or newer, one runtime dependency `selenium`, pytest as a dev dependency), the `src/cookie_clicker_bot/` and `tests/` skeleton with `constants.py`, a Python `.gitignore` that also ignores `.env`, a `Doxyfile`, architecture decision record architecture decision record architecture decision record ADR-0001 and the description and topics on the git host repository.
## Go / No-Go Criteria
| # | Criterion (objectively checkable) | Go | No-Go |
| --- | --- | --- | --- |
| 1 | `pip install -e .[dev]` succeeds in a fresh `.venv` and `python -m pytest` runs (no tests collected is allowed) | Met | Not met |
| 2 | `pyproject.toml` requires Python 3.13 or newer and lists `selenium` as the only runtime dependency | Met | Not met |
| 3 | `.env` is listed in `.gitignore` and is not tracked by git | Met | Not met |
| 4 | `doxygen Doxyfile` runs without errors on the skeleton | Met | Not met |
| 5 | The git host repository shows a description and at least five topics | Met | Not met |
## Dependencies
| Depends on | Reason |
| --- | --- |
| None | First milestone |
## Traceability
| Business Case objective / KPI / user story | Reference |
| --- | --- |
O2, O3, O5 in [BC-001]
## Ownership
| Role | Stakeholder ID (SA) |
| --- | --- |
| Owner | S01 |
| Approving reviewer | S01 |
## Target Date
2026-10-29 - within the one-week limit of [BC-001]
## Tasks
| # | Task | Summary | Needs its own Use Case/User Story? | Reference |
| --- | --- | --- | --- | --- |
| 1 | Write ADR-0001 for the Selenium dependency | Record the decision to keep Selenium as the single runtime dependency, against stakeholder S03's wish for none, and the alternatives (no dependency, Playwright). | No | |
| 2 | Create pyproject.toml and the package skeleton | Python 3.13 or newer, `selenium` as runtime dependency, pytest as dev dependency, a `src/cookie_clicker_bot/` package and `tests/` folder, and a `constants.py` for the game URL, element ids and timings. | No | |
| 3 | Add Python .gitignore | Standard Python ignore rules plus `.env`, `.venv/`, Doxygen output and screenshots working folders, so no token is ever tracked. | No | |
| 4 | Add Doxyfile | Generate API documentation from the Doxygen comments in `src/` into `docs/api/`; document the command in the README later. | No | |
| 5 | Install git hooks and the plan gate | Run `framework/scripts/install-git-hooks.sh --enable-plan-gate` so a commit under `src/` or `tests/` needs a `Task: MIL-NNN#N` trailer. | No | |
| 6 | Set repository description and topics | Use the git host API with the token read from `.env` (never printed, never imported by the project) to set a description and topics such as python, selenium, cookie-clicker, automation, udemy, 100-days-of-code. | No | |
---
[BC-001]: ../business-case.md
[96a9a78]: https://git.tirsystem.com/Tirsvad-Udemy-100-days-of-code/048-the-coockie-factory/commit/96a9a78f010ce8ae3fce8d84602317d8b5808a13