Files
2026-10-28 14:19:51 +08:00

6.0 KiB

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, MIL-007
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 01e016e

Purpose

This plan schedules the seven milestones of the Musical Time Machine project inside the Business Case window of 2026-10-28 to 2026-11-30 (BC-001, Constraints).

Planning Assumptions

  • Week 1 starts 2026-10-28; the plan ends by 2026-11-30, per the Business Case constraint.
  • One milestone is one branch and one pull request; a milestone is as long as its tasks need, between 4 and 9 days.
  • Reviews are done by the AI as stand-in for S01 (SA-001, S01); the language criteria of QC-LANG-001 that need a person stay open until S01 confirms them.
  • Live steps 2 to 4 need S01's browser.json; the dates of MIL-004 to MIL-006 assume it exists by 2026-11-14.

Gateway Schedule

Gateway Document Window Decision date Owner Stories Main deliverable Milestone
Planning baseline MIL-001 2026-10-28 to 2026-11-02 2026-11-02 S01 none (technical tasks) Accepted BC-001 Milestone 1
Project scaffold MIL-002 2026-11-03 to 2026-11-06 2026-11-06 S01 none (technical tasks) A project skeleton with `pyproject Milestone 2
Step 1 - Scrape the Billboard Hot 100 MIL-003 2026-11-07 to 2026-11-12 2026-11-12 S01 none (technical tasks) A command that asks for a date in YYYY-MM-DD format Milestone 3
Step 2 - YouTube Music authentication MIL-004 2026-11-13 to 2026-11-17 2026-11-17 S01 none (technical tasks) A client adapter around ytmusicapi that reads `browser Milestone 4
Step 3 - Create the playlist MIL-005 2026-11-18 to 2026-11-20 2026-11-20 S01 none (technical tasks) A create_playlist use case that returns the id of an existing or new private playlist Milestone 5
Step 4 - Search and add songs MIL-006 2026-11-21 to 2026-11-25 2026-11-25 S01 none (technical tasks) An add_songs use case that searches with the song filter and adds the top result Milestone 6
Wiki and release MIL-007 2026-11-26 to 2026-11-30 2026-11-30 S01 none (technical tasks) Wiki pages in docs/wiki/ in English Milestone 7
@startgantt
Project starts 2026-10-28
[MIL-001] starts 2026-10-28 and ends 2026-11-02
[MIL-001 Go/No-Go] happens 2026-11-02
[MIL-002] starts 2026-11-03 and ends 2026-11-06
[MIL-002 Go/No-Go] happens 2026-11-06
[MIL-003] starts 2026-11-07 and ends 2026-11-12
[MIL-003 Go/No-Go] happens 2026-11-12
[MIL-004] starts 2026-11-13 and ends 2026-11-17
[MIL-004 Go/No-Go] happens 2026-11-17
[MIL-005] starts 2026-11-18 and ends 2026-11-20
[MIL-005 Go/No-Go] happens 2026-11-20
[MIL-006] starts 2026-11-21 and ends 2026-11-25
[MIL-006 Go/No-Go] happens 2026-11-25
[MIL-007] starts 2026-11-26 and ends 2026-11-30
[MIL-007 Go/No-Go] happens 2026-11-30
@endgantt

Scope Coverage

Business Case scope item Gateway
Repository description and topics MIL-001
pyproject.toml, .venv instructions, constants.py, Doxygen, README from the template, .gitignore MIL-002
Scraping of Bakeboard into a list (O1) MIL-003
YouTube Music authentication (O2) MIL-004
Playlist creation without duplicates (O3) MIL-005
Search and add songs (O4) MIL-006
Wiki in en, da, ms and the step screenshots (O5) MIL-003 to MIL-007

Dependencies

MIL-001 → MIL-002 → MIL-003 → MIL-004 → MIL-005 → MIL-006 → MIL-007

A No-Go on a gateway returns it to rework and moves every later date by the rework time; the end date 2026-11-30 moves only if S01 decides so in chat.

Plan Risks

Risk Impact Mitigation
browser.json not available by 2026-11-14 MIL-004 to MIL-006 cannot be closed The run stops and reports; tests with fakes are finished so only the live screenshots wait
Language criteria need a person Baseline stays Go-with-conditions Ask S01 to confirm criteria 3, 5 and 9 of QC-LANG-001 when accepting the plan
Bakeboard offline during the live run Step 1 screenshot delayed The stored fixture proves the code; the screenshot is taken later

Open Issues

  • The owner of the repository on the git host: the origin remote uses Tirsvad-Udemy-100-days-of-code, the request names Tirsvad-Udemy-100_days_of_code; the remote is used until S01 says otherwise.
  • Whether the live steps 2 to 4 can be run depends on browser.json from S01.