# 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], [MIL-008], [MIL-009], [US-001] | ## Version History | Date | Status | Author | Reviewer | Change | Commit | | --- | --- | --- | --- | --- | --- | | 2026-10-08 | Accepted | Jens Tirsvad Nielsen | S02 | Added phase MIL-008 (proposed dates 2026-12-14 to 2026-12-18): the local project has origin as its only remote | [039a28c] | | 2026-10-08 | Proposed | Jens Tirsvad Nielsen | S02 | Added phase MIL-009 (proposed dates 2026-12-21 to 2026-12-23): the framework files .claude, .agents and AGENTS.md are excluded from git | pending | --- ## Purpose Schedule the nine 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-23 (the last four phases are 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; AGPL-3.0 default only for a public GitHub project | | | Framework Checklists and Usage | [MIL-007] | 2026-12-07 to 2026-12-11 | 2026-12-11 | S01 | US-001.07 | qc fetched with the framework; global command; README usage | | | Gitea Is the Only Remote | [MIL-008] | 2026-12-14 to 2026-12-18 | 2026-12-18 | S01 | US-001.03 | The local project has `origin` only; GitHub is reached through the mirror | | | Framework Files Excluded from Git | [MIL-009] | 2026-12-21 to 2026-12-23 | 2026-12-23 | S01 | US-001.03 | `.claude`, `.agents` and `AGENTS.md` excluded from git in the new project | | ```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 [Framework Checklists and Usage] starts 2026-12-07 and ends 2026-12-11 [Framework Checklists and Usage Go/No-Go] happens 2026-12-11 [Gitea Is the Only Remote] starts 2026-12-14 and ends 2026-12-18 [Gitea Is the Only Remote Go/No-Go] happens 2026-12-18 [Framework Files Excluded from Git] starts 2026-12-21 and ends 2026-12-23 [Framework Files Excluded from Git Go/No-Go] happens 2026-12-23 @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] | | Framework's own submodules fetched | [MIL-007] | | README usage from the target folder and as a global command | [MIL-007] | | The local project has `origin` as its only remote | [MIL-008] | | `.claude`, `.agents` and `AGENTS.md` excluded from git in the new project | [MIL-009] | ## Dependencies ``` MIL-001 → MIL-002 → MIL-003 → MIL-004 → MIL-005 → MIL-006 → MIL-007 → MIL-008 → MIL-009 ``` 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 [MIL-007]: ./milestones/mil-007-framework-checklists.md [MIL-008]: ./milestones/mil-008-gitea-only-remote.md [MIL-009]: ./milestones/mil-009-exclude-framework-files.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 [039a28c]: https://git.tirsystem.com/TirSystem-BashScript/repo_foundry/commit/039a28c01b56f8cf0af73f55d1a604b43d67ba03