Files
2026-10-28 17:12:14 +08:00

126 lines
6.2 KiB
Markdown

# Project Plan
## Metadata
| Key | Value |
| --- | --- |
| ID | PP-001 |
| CrossReference | [BC-001], [SA-001], [MIL-001], [MIL-002], [MIL-003], [MIL-004], [MIL-005], [MIL-006] |
| Language | en |
| Domain | it |
## Version History
| Date | Status | Author | Reviewer | Change | Commit |
| --- | --- | --- | --- | --- | --- |
| 2026-10-28 | Deprecated | Jens Tirsvad Nielsen | AI as stand-in for S01 | Initial version (reviewed in RC-003) | [96a9a78] |
| 2026-10-28 | Accepted | Jens Tirsvad Nielsen | AI as stand-in for S01 | Added MIL-006 purchase strategy improvement after the user asked for it in chat (reviewed in RC-015) | [638730d] |
---
## Purpose
This plan schedules the six phases that deliver the Cookie Clicker bot inside the one-week limit of [BC-001].
## Planning Assumptions
- Week 1 starts 2026-10-28; the plan ends by 2026-11-04, per the Business Case constraint.
- Phase length: one to three days, one branch and one pull request per phase.
- S01 owns every phase; the AI acts as stand-in reviewer for S01 in autonomous mode, recorded in each review.
- The communication cadence of [SA-001] is one pull request per phase and a final summary.
## Gateway Schedule
| Gateway | Document | Window | Decision date | Owner | Stories | Main deliverable | Milestone |
| --- | --- | --- | --- | --- | --- | --- | --- |
| Project setup and tooling | [MIL-001] | 2026-10-28 to 2026-10-29 | 2026-10-29 | S01 | none (technical tasks) | pyproject, skeleton, .gitignore, Doxyfile, repository metadata | |
| Bot core | [MIL-002] | 2026-10-29 to 2026-10-30 | 2026-10-30 | S01 | none (technical tasks) | open_game, click_cookie, get_cookie_count with tests | |
| Upgrades and run | [MIL-003] | 2026-10-30 to 2026-10-31 | 2026-10-31 | S01 | none (technical tasks) | strategy, run_bot, main | |
| Screenshots and README | [MIL-004] | 2026-10-31 to 2026-11-02 | 2026-11-02 | S01 | none (technical tasks) | Docker run, screenshots, README | |
| Wiki and release | [MIL-005] | 2026-11-02 to 2026-11-04 | 2026-11-04 | S01 | none (technical tasks) | Wiki en, da, ms and final checks | |
| Purchase strategy improvement | [MIL-006] | 2026-10-28 to 2026-11-03 | 2026-11-03 | S01 | none (technical tasks) | Reliable store visits, upgrades bought, a higher CPS in Docker, README and wiki updated | |
```plantuml
@startgantt
Project starts 2026-10-28
[Project setup] starts 2026-10-28 and ends 2026-10-29
[Bot core] starts 2026-10-29 and ends 2026-10-30
[Upgrades and run] starts 2026-10-30 and ends 2026-10-31
[Screenshots and README] starts 2026-10-31 and ends 2026-11-02
[Wiki and release] starts 2026-11-02 and ends 2026-11-04
[MIL-001 Go/No-Go] happens 2026-10-29
[MIL-002 Go/No-Go] happens 2026-10-30
[MIL-003 Go/No-Go] happens 2026-10-31
[MIL-004 Go/No-Go] happens 2026-11-02
[Purchase strategy] starts 2026-10-28 and ends 2026-11-03
[MIL-005 Go/No-Go] happens 2026-11-04
[MIL-006 Go/No-Go] happens 2026-11-03
@endgantt
```
## Scope Coverage
| Business Case scope item | Gateway |
| --- | --- |
| Bot for the lecture steps | MIL-002, MIL-003 |
| pyproject, .gitignore, .venv instructions, Doxyfile, constants.py | MIL-001, MIL-004 |
| pytest tests with a fake game | MIL-002, MIL-003 |
| Headless Docker run and screenshots | MIL-004 |
| README | MIL-004 |
| Wiki in en, da and ms | MIL-005 |
| Description and topics on the git host | MIL-001 |
| Higher CPS by a more reliable purchase strategy (objective O1) | MIL-006 |
## Dependencies
```
MIL-001 → MIL-002 → MIL-003 → MIL-004 → MIL-005 → MIL-006
```
MIL-006 was added after the first release; it runs beside the end of the window and must finish by 2026-11-03, one day before the end date.
A No-Go on a phase returns it to its owner for rework and moves every later gateway by the rework time; the end date 2026-11-04 moves only if S01 decides so and records the reason in Planning Assumptions. S01 is owner, reviewer and the only escalation point.
## Plan Risks
| Risk | Impact | Mitigation |
| --- | --- | --- |
| The live game changes or is unreachable during MIL-004 | Screenshots and the CPS run slip | Run the capture early in MIL-004; stop and report if it stays unreachable |
| Translation takes longer than planned | MIL-005 slips | Danish and Bahasa Malaysia follow the English page by page, with a short page set |
| Repository name differs from the one in the request | Metadata set on the wrong repository | Use the repository `origin` points to; reported in the plan summary |
| Token handling (Business Case risk: a token leaks) | Secret exposure | Tokens only read from `.env` by scripts outside the project, never printed |
| Live game changes (Business Case risk: page structure changes) | Bot breaks | Ids in `constants.py`; run the capture early in MIL-004 |
| The new strategy does not raise the CPS | MIL-006 returns No-Go | Measure after each change; keep the first release as the fallback |
## Open Issues
- The request names `https://git.tirsystem.com/Tirsvad-Udemy-100_days_of_code` (underscores); `origin` is `Tirsvad-Udemy-100-days-of-code/048-the-coockie-factory`. The plan applies description and topics to the `origin` repository.
- The Product Owner's earlier solution targeted the old Orteil page and used the extra package `continuous_threading`; this project reimplements it for the current game with one loop and no extra dependency.
## Traceability Analysis
### Business Goal Alignment
| Stakeholder | Concern | Business Case objective |
| --- | --- | --- |
| S01 | CN-001, CN-002, CN-007 | O1, O4 |
| S02 | CN-003, CN-004 | O2, O3, O4 |
| S03 | CN-005, CN-006 | O4, O5 |
## Sign-Off
| Stakeholder | Decision | Date |
| --- | --- | --- |
| S01 | Pending acceptance of this plan in chat | |
---
[BC-001]: ./business-case.md
[SA-001]: ./stakeholder-analysis.md
[MIL-001]: ./milestones/mil-001-project-setup.md
[MIL-002]: ./milestones/mil-002-bot-core-open-and-click.md
[MIL-003]: ./milestones/mil-003-upgrades-and-five-minute-run.md
[MIL-004]: ./milestones/mil-004-screenshots-and-readme.md
[MIL-005]: ./milestones/mil-005-wiki-and-release.md
[MIL-006]: ./milestones/mil-006-purchase-strategy.md
[96a9a78]: https://git.tirsystem.com/Tirsvad-Udemy-100-days-of-code/048-the-coockie-factory/commit/96a9a78f010ce8ae3fce8d84602317d8b5808a13
[638730d]: https://git.tirsystem.com/Tirsvad-Udemy-100-days-of-code/048-the-coockie-factory/commit/638730d95ba24ba77c6448730d7999aa3e90d863