112 lines
5.4 KiB
Markdown
112 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], [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) | [d773fa9] |
|
|
|
|
---
|
|
|
|
## 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
|
|
[d773fa9]: https://git.tirsystem.com/TirSystem-BashScript/repo_foundry/commit/d773fa91df5a54090254e12e074880fb6526a9ff
|