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

3.5 KiB

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