Files
Tirsvad 0c94e308c4
English comments / english-comments (pull_request) Successful in 28s
English comments / Comments are English (pull_request) Successful in 28s
Quality checks / quality-checks (pull_request) Successful in 26s
Quality / Quality checks (pull_request) Successful in 26s
Tests and code metrics / Run pytest with coverage (pull_request) Successful in 56s
Tests and code metrics / Code metrics badges (pull_request) Skipped
Link the five gateways to their milestones on the host
No issue closed: documentation of the synced milestones only.
2026-10-28 14:40:09 +08:00

99 lines
5.4 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] |
| Language | en |
| Domain | it |
## Version History
| Date | Status | Author | Reviewer | Change | Commit |
| --- | --- | --- | --- | --- | --- |
| 2026-10-28 | Accepted | Jens Tirsvad Nielsen | S01 (AI as stand-in, autonomous mode) | Initial version | [dcef5e6] |
---
## Purpose
Schedule the five gateways that deliver the Day 45 scraping repository. The Business Case sets no deadline, so the plan only fixes the order and a working window per gateway.
## Planning Assumptions
- Week 1 starts 2026-10-28; the plan ends by 2026-11-14 (no hard deadline in [BC-001]).
- Phase length: two to four days; each phase is one branch and one pull request.
- Communication follows [SA-001]: plan acceptance in chat, one pull request per milestone, run summary at the end.
- Autonomous mode: S01 accepts this plan once; the AI then runs every gateway and acts as stand-in reviewer, recorded in each RC record.
## Gateway Schedule
| Gateway | Document | Window | Decision date | Owner | Stories | Main deliverable | Milestone |
| --- | --- | --- | --- | --- | --- | --- | --- |
| Repository Setup | [MIL-001] | 2026-10-28 to 2026-10-30 | 2026-10-30 | S01 | none (technical tasks) | Repository metadata, configuration, README, CI | [Milestone 259](https://git.tirsystem.com/Tirsvad-Udemy-100-days-of-code/045-scrape-movies/milestone/259) (closed) |
| Parsing HTML | [MIL-002] | 2026-10-31 to 2026-11-03 | 2026-11-03 | S01 | none (technical tasks) | `soup_basics` module, tests, screenshots | [Milestone 260](https://git.tirsystem.com/Tirsvad-Udemy-100-days-of-code/045-scrape-movies/milestone/260) (closed) |
| Hacker News | [MIL-003] | 2026-11-04 to 2026-11-06 | 2026-11-06 | S01 | none (technical tasks) | `hacker_news` module, ethics note, screenshots | [Milestone 261](https://git.tirsystem.com/Tirsvad-Udemy-100-days-of-code/045-scrape-movies/milestone/261) (closed) |
| Top 100 Movies | [MIL-004] | 2026-11-07 to 2026-11-10 | 2026-11-10 | S01 | none (technical tasks) | `movies` module and `movies.txt`, screenshots | [Milestone 262](https://git.tirsystem.com/Tirsvad-Udemy-100-days-of-code/045-scrape-movies/milestone/262) (closed) |
| Wiki | [MIL-005] | 2026-11-11 to 2026-11-14 | 2026-11-14 | S01 | none (technical tasks) | Wiki in en, da, ms | [Milestone 263](https://git.tirsystem.com/Tirsvad-Udemy-100-days-of-code/045-scrape-movies/milestone/263) (closed) |
```plantuml
@startgantt
Project starts 2026-10-28
[Repository Setup] starts 2026-10-28 and ends 2026-10-30
[Parsing HTML] starts 2026-10-31 and ends 2026-11-03
[Hacker News] starts 2026-11-04 and ends 2026-11-06
[Top 100 Movies] starts 2026-11-07 and ends 2026-11-10
[Wiki] starts 2026-11-11 and ends 2026-11-14
[MIL-001 Go/No-Go] happens 2026-10-30
[MIL-002 Go/No-Go] happens 2026-11-03
[MIL-003 Go/No-Go] happens 2026-11-06
[MIL-004 Go/No-Go] happens 2026-11-10
[MIL-005 Go/No-Go] happens 2026-11-14
@endgantt
```
## Scope Coverage
| Business Case scope item | Gateway |
| --- | --- |
| `pyproject.toml`, `.gitignore`, `Doxyfile`, `constants.py`, README skeleton | [MIL-001] |
| Repository description and topics, workflows | [MIL-001] |
| Parsing HTML, finding and selecting elements | [MIL-002] |
| Hacker News scraping and the ethics note | [MIL-003] |
| 100 movies and `movies.txt` | [MIL-004] |
| Wiki in en, da, ms and screenshots per step | [MIL-005] (screenshots are taken in MIL-002 to MIL-004) |
## Dependencies
```
MIL-001 → MIL-002 → MIL-003 → MIL-004 → MIL-005
```
A No-Go on a gateway is fixed and re-reviewed; after three failed rounds the run stops and reports (AGENTS.md). Later dates move by the same amount; S01 decides a move of the end date.
## Plan Risks
| Risk | Impact | Mitigation |
| --- | --- | --- |
| Target repository name differs from the one named in the request | Metadata set on the wrong repository | Resolved: S01 chose the origin remote at plan acceptance |
| Reusable workflow path differs (`TirSystem/git-workflows` in the template, `TirSystem/github-action` named in the request) | Workflow calls fail | Verify the path on the host in MIL-001 before installing |
| Danish and Malay translation quality | Review finds errors | Keep sentences short; English is authoritative |
| Network access to Wayback during the run | Fixture cannot be saved | Retry once; alternative live Empire URL |
## Open Issues
- Target repository: S01 chose the origin remote (`Tirsvad-Udemy-100-days-of-code/045-scrape-movies`) when accepting the plan; the named `Tirsvad-Udemy-100_days_of_code` is not used.
- Wiki publication is a scoped workflow in `TirSystem/github-action` (no file needed) while the framework template `publish-wiki.yml` also exists; MIL-001 records which one applies.
- "Screenshot per lecture step" is planned as rendered terminal output and browser-pane captures, never host desktop capture.
---
[BC-001]: ./business-case.md
[SA-001]: ./stakeholder-analysis.md
[MIL-001]: ./milestones/mil-001-repository-setup.md
[MIL-002]: ./milestones/mil-002-parse-html.md
[MIL-003]: ./milestones/mil-003-hacker-news.md
[MIL-004]: ./milestones/mil-004-top-100-movies.md
[MIL-005]: ./milestones/mil-005-wiki.md
[dcef5e6]: https://git.tirsystem.com/Tirsvad-Udemy-100-days-of-code/045-scrape-movies/commit/dcef5e6e6e7ec16162817d3ec0ce1b303e0a3a63