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 |
|