# 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], [US-001] | ## Version History | Date | Status | Author | Reviewer | Change | Commit | | --- | --- | --- | --- | --- | --- | | 2026-10-06 | Accepted | Jens Tirsvad Nielsen | S02 | Added phase MIL-005 (proposed dates 2026-11-23 to 2026-11-27) | [ded26a6] | | 2026-10-06 | Proposed | Jens Tirsvad Nielsen | S02 | Added phase MIL-006 (proposed dates 2026-11-30 to 2026-12-04) | pending | --- ## Purpose Schedule the six phases that deliver RepoFoundry (`create-project.sh` and its documentation) in dependency order. The Business Case sets no deadline, so the dates below are proposals for S01 to confirm. ## Planning Assumptions - Week 1 starts 2026-10-05; the plan ends by 2026-12-04 (the last phase is proposed). - Phase length: two weeks. - S01 and S02 review each phase through a pull request, as described in [SA-001]. For now one person holds both roles. - The PO language is English, so no translated copies are kept. ## Gateway Schedule | Gateway | Document | Window | Decision date | Owner | Stories | Main deliverable | Milestone | | --- | --- | --- | --- | --- | --- | --- | --- | | Foundation | [MIL-001] | 2026-10-05 to 2026-10-16 | 2026-10-16 | S01 | US-001.01 | Safe skeleton, config parsing, prompts, tests | [Milestone 43] | | Repositories and Mirror | [MIL-002] | 2026-10-19 to 2026-10-30 | 2026-10-30 | S02 | US-001.02 | GitHub and Gitea repositories and the push mirror | [Milestone 44] | | Scaffold and Release | [MIL-003] | 2026-11-02 to 2026-11-13 | 2026-11-13 | S01 | US-001.03 | Local project, framework, README, final review | [Milestone 45] | | Configurable Details | [MIL-004] | 2026-11-16 to 2026-11-20 | 2026-11-20 | S01 | US-001.04 | Project details preset in config.env | | | Credentials | [MIL-005] | 2026-11-23 to 2026-11-27 | 2026-11-27 | S01 | US-001.05 | Missing credentials asked; project .env | | | Project License | [MIL-006] | 2026-11-30 to 2026-12-04 | 2026-12-04 | S01 | US-001.06 | PROJECT_LICENSE in config.env | | ```plantuml @startgantt Project starts 2026-10-05 [Foundation] starts 2026-10-05 and ends 2026-10-16 [Foundation Go/No-Go] happens 2026-10-16 [Repositories and Mirror] starts 2026-10-19 and ends 2026-10-30 [Repositories and Mirror Go/No-Go] happens 2026-10-30 [Scaffold and Release] starts 2026-11-02 and ends 2026-11-13 [Scaffold and Release Go/No-Go] happens 2026-11-13 [Configurable Details] starts 2026-11-16 and ends 2026-11-20 [Configurable Details Go/No-Go] happens 2026-11-20 [Credentials] starts 2026-11-23 and ends 2026-11-27 [Credentials Go/No-Go] happens 2026-11-27 [Project License] starts 2026-11-30 and ends 2026-12-04 [Project License Go/No-Go] happens 2026-12-04 @endgantt ``` ## Scope Coverage | Business Case scope item | Gateway | | --- | --- | | Safe parsing of `config.env` and `.env`, tool checks, prompts, `.gitignore` | [MIL-001] | | Project name check on GitHub | [MIL-001] | | Creation of both repositories and the push mirror | [MIL-002] | | Partial-failure reporting | [MIL-002] | | Local directory, remotes, framework submodule, skills, hooks, templates, plan gate | [MIL-003] | | README and SSH prerequisite documentation | [MIL-003] | | Project details set in `config.env` instead of asked | [MIL-004] | | Missing credentials asked; the new project's `.env` | [MIL-005] | | Project license set in `config.env` | [MIL-006] | ## Dependencies ``` MIL-001 → MIL-002 → MIL-003 → MIL-004 → MIL-005 → MIL-006 ``` A No-Go moves every later date by the time needed to rework the failed criteria. ## Plan Risks | Risk | Impact | Mitigation | | --- | --- | --- | | No disposable GitHub organization for testing | Organization-owner path untested | Agree the test owners before [MIL-002] starts | | Gitea API behaviour differs from the swagger on the live server | Mirror task takes longer | Test against `git.tirsystem.com` early in [MIL-002] | ## Open Issues - Decided: the proposed dates are accepted with this plan (S01 asked for its acceptance on 2026-10-05); a change needs a new Version History row. - Decided: `origin` uses HTTPS derived from `GITEA_URL`, unless the SSH test passed, in which case it uses SSH on port 10022. - Decided: use case [UC-001] "Create a new project" is created, with [SSD-001]; tasks that implement its steps reference it. - Decided: S01 and S02 are both held by one person for now. - Open: this plan says the script does not make the first commit; confirm before MIL-003 starts. --- [BC-001]: ./business-case.md [SA-001]: ./stakeholder-analysis.md [MIL-001]: ./milestones/mil-001-foundation.md [MIL-002]: ./milestones/mil-002-repositories-and-mirror.md [MIL-003]: ./milestones/mil-003-scaffold-and-release.md [MIL-004]: ./milestones/mil-004-configurable-details.md [MIL-005]: ./milestones/mil-005-credentials.md [MIL-006]: ./milestones/mil-006-project-license.md [US-001]: ./user-stories.md [UC-001]: ./uc-001/uc.md [SSD-001]: ./uc-001/ssd.md [Milestone 43]: https://git.tirsystem.com/TirSystem-BashScript/RepoFoundry/milestone/43 [Milestone 44]: https://git.tirsystem.com/TirSystem-BashScript/RepoFoundry/milestone/44 [Milestone 45]: https://git.tirsystem.com/TirSystem-BashScript/RepoFoundry/milestone/45 [ded26a6]: https://git.tirsystem.com/TirSystem-BashScript/repo_foundry/commit/ded26a658c666bf29d84093cb352e3635e07719b