From fa3beaf1c1a5f925bf849e0aa46f67c3a70bfff9 Mon Sep 17 00:00:00 2001 From: Jens Tirsvad Nielsen Date: Mon, 5 Oct 2026 12:32:32 +0800 Subject: [PATCH] Point commit links at the pushed planning commit Co-Authored-By: Claude Sonnet 5.5 --- docs/business-case.md | 4 +- docs/milestones/mil-001-foundation.md | 4 +- .../mil-002-repositories-and-mirror.md | 4 +- .../mil-003-scaffold-and-release.md | 4 +- docs/project-plan.md | 182 +++++++++--------- docs/stakeholder-analysis.md | 146 +++++++------- docs/uc-001/ssd.md | 4 +- docs/uc-001/uc.md | 4 +- docs/user-stories.md | 4 +- 9 files changed, 178 insertions(+), 178 deletions(-) diff --git a/docs/business-case.md b/docs/business-case.md index b2ec394..8dba926 100644 --- a/docs/business-case.md +++ b/docs/business-case.md @@ -9,7 +9,7 @@ ## Version History | Date | Status | Author | Reviewer | Change | Commit | | --- | --- | --- | --- | --- | --- | -| 2026-10-05 | Proposed | Jens Tirsvad Nielsen | S02 | Initial version | [9ae0cba] | +| 2026-10-05 | Proposed | Jens Tirsvad Nielsen | S02 | Initial version | [424f14f] | --- @@ -132,4 +132,4 @@ Proceed — the procedure is small, well bounded and removes a repeated, securit --- [SA-001]: ./stakeholder-analysis.md -[9ae0cba]: https://git.tirsystem.com/TirSystem-BashScript/repo_foundry/commit/9ae0cba306577833480f692c67c0ec327ff2e24e +[424f14f]: https://git.tirsystem.com/TirSystem-BashScript/repo_foundry/commit/424f14f4f5577bb47fea41c8f3a655dca953e6d8 diff --git a/docs/milestones/mil-001-foundation.md b/docs/milestones/mil-001-foundation.md index 6747e0a..ac2aa2a 100644 --- a/docs/milestones/mil-001-foundation.md +++ b/docs/milestones/mil-001-foundation.md @@ -9,7 +9,7 @@ ## Version History | Date | Status | Author | Reviewer | Change | Commit | | --- | --- | --- | --- | --- | --- | -| 2026-10-05 | Proposed | Jens Tirsvad Nielsen | S02 | Initial version | [9ae0cba] | +| 2026-10-05 | Proposed | Jens Tirsvad Nielsen | S02 | Initial version | [424f14f] | --- @@ -71,4 +71,4 @@ Decide whether the secure base of `create-project.sh` is sound enough to build t [BC-001]: ../business-case.md [US-001]: ../user-stories.md [UC-001]: ../uc-001/uc.md -[9ae0cba]: https://git.tirsystem.com/TirSystem-BashScript/repo_foundry/commit/9ae0cba306577833480f692c67c0ec327ff2e24e +[424f14f]: https://git.tirsystem.com/TirSystem-BashScript/repo_foundry/commit/424f14f4f5577bb47fea41c8f3a655dca953e6d8 diff --git a/docs/milestones/mil-002-repositories-and-mirror.md b/docs/milestones/mil-002-repositories-and-mirror.md index a29f637..a3260e2 100644 --- a/docs/milestones/mil-002-repositories-and-mirror.md +++ b/docs/milestones/mil-002-repositories-and-mirror.md @@ -9,7 +9,7 @@ ## Version History | Date | Status | Author | Reviewer | Change | Commit | | --- | --- | --- | --- | --- | --- | -| 2026-10-05 | Proposed | Jens Tirsvad Nielsen | S02 | Initial version | [9ae0cba] | +| 2026-10-05 | Proposed | Jens Tirsvad Nielsen | S02 | Initial version | [424f14f] | --- @@ -73,4 +73,4 @@ Decide whether the script creates both remote repositories under the correct own [US-001]: ../user-stories.md [UC-001]: ../uc-001/uc.md [MIL-001]: ./mil-001-foundation.md -[9ae0cba]: https://git.tirsystem.com/TirSystem-BashScript/repo_foundry/commit/9ae0cba306577833480f692c67c0ec327ff2e24e +[424f14f]: https://git.tirsystem.com/TirSystem-BashScript/repo_foundry/commit/424f14f4f5577bb47fea41c8f3a655dca953e6d8 diff --git a/docs/milestones/mil-003-scaffold-and-release.md b/docs/milestones/mil-003-scaffold-and-release.md index ac018d9..d332f53 100644 --- a/docs/milestones/mil-003-scaffold-and-release.md +++ b/docs/milestones/mil-003-scaffold-and-release.md @@ -9,7 +9,7 @@ ## Version History | Date | Status | Author | Reviewer | Change | Commit | | --- | --- | --- | --- | --- | --- | -| 2026-10-05 | Proposed | Jens Tirsvad Nielsen | S02 | Initial version | [9ae0cba] | +| 2026-10-05 | Proposed | Jens Tirsvad Nielsen | S02 | Initial version | [424f14f] | --- @@ -74,4 +74,4 @@ Complete `create-project.sh` (local directory, credential-free remotes, framewor [US-001]: ../user-stories.md [UC-001]: ../uc-001/uc.md [MIL-002]: ./mil-002-repositories-and-mirror.md -[9ae0cba]: https://git.tirsystem.com/TirSystem-BashScript/repo_foundry/commit/9ae0cba306577833480f692c67c0ec327ff2e24e +[424f14f]: https://git.tirsystem.com/TirSystem-BashScript/repo_foundry/commit/424f14f4f5577bb47fea41c8f3a655dca953e6d8 diff --git a/docs/project-plan.md b/docs/project-plan.md index cfa468c..c159b84 100644 --- a/docs/project-plan.md +++ b/docs/project-plan.md @@ -1,91 +1,91 @@ -# Project Plan - -## Metadata -| Key | Value | -| --- | --- | -| ID | PP-001 | -| CrossReference | [BC-001], [SA-001], [MIL-001], [MIL-002], [MIL-003], [US-001] | - -## Version History -| Date | Status | Author | Reviewer | Change | Commit | -| --- | --- | --- | --- | --- | --- | -| 2026-10-05 | Proposed | Jens Tirsvad Nielsen | S02 | Initial version | [9ae0cba] | - ---- - -## Purpose - -Schedule the three 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-11-13. -- 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 | | -| Repositories and Mirror | [MIL-002] | 2026-10-19 to 2026-10-30 | 2026-10-30 | S02 | US-001.01 | GitHub and Gitea repositories and the push mirror | | -| Scaffold and Release | [MIL-003] | 2026-11-02 to 2026-11-13 | 2026-11-13 | S01 | US-001.01 | Local project, framework, README, final review | | - -```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 -@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] | - -## Dependencies - -``` -MIL-001 → MIL-002 → MIL-003 -``` - -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 - -- Confirm the proposed dates (S01). -- 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. - ---- - -[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 -[US-001]: ./user-stories.md -[UC-001]: ./uc-001/uc.md -[SSD-001]: ./uc-001/ssd.md -[9ae0cba]: https://git.tirsystem.com/TirSystem-BashScript/repo_foundry/commit/9ae0cba306577833480f692c67c0ec327ff2e24e +# Project Plan + +## Metadata +| Key | Value | +| --- | --- | +| ID | PP-001 | +| CrossReference | [BC-001], [SA-001], [MIL-001], [MIL-002], [MIL-003], [US-001] | + +## Version History +| Date | Status | Author | Reviewer | Change | Commit | +| --- | --- | --- | --- | --- | --- | +| 2026-10-05 | Proposed | Jens Tirsvad Nielsen | S02 | Initial version | [424f14f] | + +--- + +## Purpose + +Schedule the three 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-11-13. +- 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 | | +| Repositories and Mirror | [MIL-002] | 2026-10-19 to 2026-10-30 | 2026-10-30 | S02 | US-001.01 | GitHub and Gitea repositories and the push mirror | | +| Scaffold and Release | [MIL-003] | 2026-11-02 to 2026-11-13 | 2026-11-13 | S01 | US-001.01 | Local project, framework, README, final review | | + +```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 +@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] | + +## Dependencies + +``` +MIL-001 → MIL-002 → MIL-003 +``` + +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 + +- Confirm the proposed dates (S01). +- 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. + +--- + +[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 +[US-001]: ./user-stories.md +[UC-001]: ./uc-001/uc.md +[SSD-001]: ./uc-001/ssd.md +[424f14f]: https://git.tirsystem.com/TirSystem-BashScript/repo_foundry/commit/424f14f4f5577bb47fea41c8f3a655dca953e6d8 diff --git a/docs/stakeholder-analysis.md b/docs/stakeholder-analysis.md index 77f4901..bf5589c 100644 --- a/docs/stakeholder-analysis.md +++ b/docs/stakeholder-analysis.md @@ -1,73 +1,73 @@ -# Stakeholder Analysis - -## Metadata -| Key | Value | -| --- | --- | -| ID | SA-001 | -| CrossReference | [BC-001] | - -## Version History -| Date | Status | Author | Reviewer | Change | Commit | -| --- | --- | --- | --- | --- | --- | -| 2026-10-05 | Proposed | Jens Tirsvad Nielsen | S02 | Initial version | [9ae0cba] | - ---- - -## Purpose - -Identify who is affected by RepoFoundry and what each needs from it, so owners and reviewers in later artifacts can cite stable IDs. Method: power/interest grid. - -## Stakeholder Summary Table - -| ID | Name | Role/Title | Organization | Power Level | Interest Level | Quadrant | Primary Concern (Business Language) | -| --- | --- | --- | --- | --- | --- | --- | --- | -| S01 | Tirsvad | Product Owner and maintainer | Not stated | HIGH | HIGH | Manage Closely | New projects start from one repeatable, correct setup | -| S02 | Michael Kragh | DevOps, cybersecurity and maintainer | Not stated | HIGH | HIGH | Manage Closely | Credentials are never exposed and the git host integration is safe | -| S03 | GitHub readers | Readers of the published project | Not stated | LOW | MEDIUM | Keep Informed | Clear documentation they can follow and reuse | - -## Power/Interest Classification Rationale - -- **Manage Closely (S01, S02):** the two maintainers decide scope, accept the result and own the code. For now one person holds both roles, so one person both authors and reviews; this should be revisited when a second person takes S02. -- **Keep Informed (S03):** readers cannot change the project but depend on its README being accurate. - -## Primary Concerns and FURPS+ Mapping - -| ID | Concern | FURPS+ attribute | -| --- | --- | --- | -| S01 | One command creates both repositories, the mirror and the project | Functionality | -| S02 | No token in output, URLs or files; no silent overwrite | Functionality (security) | -| S02 | A failed step leaves a clear record of what exists | Reliability | -| S03 | Installation, configuration and usage are documented in clear English | Usability | - -## Communication Requirements - -| ID | Channel | Frequency | Deliverable | Phase / Milestone | -| --- | --- | --- | --- | --- | -| S01 | Pull request review | Per phase | Accepted milestone document | MIL-001, MIL-002, MIL-003 | -| S02 | Pull request review | Per phase | Security review of the changes | MIL-002, MIL-003 | -| S03 | README on GitHub | At release | README.md | MIL-003 | - -## Conflicting Interests and Mitigations - -| Conflict | Stakeholders | Mitigation | -| --- | --- | --- | -| Convenience of one-step setup against strict consent prompts for every overwrite | S01, S02 | Prompt only where something would be changed; offer `--yes` only for non-destructive steps (to be decided in MIL-001) | - -## Traceability Analysis - -### Business Goal Alignment - -| Stakeholder | Concern | Business Case objective | -| --- | --- | --- | -| S01 | One-command setup | [BC-001] objectives 1–5 | -| S02 | Credential safety, no overwrite | [BC-001] objective 6 | -| S03 | Reusable documentation | [BC-001] objective 6 and the README deliverable | - -## Sign-Off - -Pending review by S02. - ---- - -[BC-001]: ./business-case.md -[9ae0cba]: https://git.tirsystem.com/TirSystem-BashScript/repo_foundry/commit/9ae0cba306577833480f692c67c0ec327ff2e24e +# Stakeholder Analysis + +## Metadata +| Key | Value | +| --- | --- | +| ID | SA-001 | +| CrossReference | [BC-001] | + +## Version History +| Date | Status | Author | Reviewer | Change | Commit | +| --- | --- | --- | --- | --- | --- | +| 2026-10-05 | Proposed | Jens Tirsvad Nielsen | S02 | Initial version | [424f14f] | + +--- + +## Purpose + +Identify who is affected by RepoFoundry and what each needs from it, so owners and reviewers in later artifacts can cite stable IDs. Method: power/interest grid. + +## Stakeholder Summary Table + +| ID | Name | Role/Title | Organization | Power Level | Interest Level | Quadrant | Primary Concern (Business Language) | +| --- | --- | --- | --- | --- | --- | --- | --- | +| S01 | Tirsvad | Product Owner and maintainer | Not stated | HIGH | HIGH | Manage Closely | New projects start from one repeatable, correct setup | +| S02 | Michael Kragh | DevOps, cybersecurity and maintainer | Not stated | HIGH | HIGH | Manage Closely | Credentials are never exposed and the git host integration is safe | +| S03 | GitHub readers | Readers of the published project | Not stated | LOW | MEDIUM | Keep Informed | Clear documentation they can follow and reuse | + +## Power/Interest Classification Rationale + +- **Manage Closely (S01, S02):** the two maintainers decide scope, accept the result and own the code. For now one person holds both roles, so one person both authors and reviews; this should be revisited when a second person takes S02. +- **Keep Informed (S03):** readers cannot change the project but depend on its README being accurate. + +## Primary Concerns and FURPS+ Mapping + +| ID | Concern | FURPS+ attribute | +| --- | --- | --- | +| S01 | One command creates both repositories, the mirror and the project | Functionality | +| S02 | No token in output, URLs or files; no silent overwrite | Functionality (security) | +| S02 | A failed step leaves a clear record of what exists | Reliability | +| S03 | Installation, configuration and usage are documented in clear English | Usability | + +## Communication Requirements + +| ID | Channel | Frequency | Deliverable | Phase / Milestone | +| --- | --- | --- | --- | --- | +| S01 | Pull request review | Per phase | Accepted milestone document | MIL-001, MIL-002, MIL-003 | +| S02 | Pull request review | Per phase | Security review of the changes | MIL-002, MIL-003 | +| S03 | README on GitHub | At release | README.md | MIL-003 | + +## Conflicting Interests and Mitigations + +| Conflict | Stakeholders | Mitigation | +| --- | --- | --- | +| Convenience of one-step setup against strict consent prompts for every overwrite | S01, S02 | Prompt only where something would be changed; offer `--yes` only for non-destructive steps (to be decided in MIL-001) | + +## Traceability Analysis + +### Business Goal Alignment + +| Stakeholder | Concern | Business Case objective | +| --- | --- | --- | +| S01 | One-command setup | [BC-001] objectives 1–5 | +| S02 | Credential safety, no overwrite | [BC-001] objective 6 | +| S03 | Reusable documentation | [BC-001] objective 6 and the README deliverable | + +## Sign-Off + +Pending review by S02. + +--- + +[BC-001]: ./business-case.md +[424f14f]: https://git.tirsystem.com/TirSystem-BashScript/repo_foundry/commit/424f14f4f5577bb47fea41c8f3a655dca953e6d8 diff --git a/docs/uc-001/ssd.md b/docs/uc-001/ssd.md index bad3ab7..33df6d4 100644 --- a/docs/uc-001/ssd.md +++ b/docs/uc-001/ssd.md @@ -9,7 +9,7 @@ ## Version History | Date | Status | Author | Reviewer | Change | Commit | | --- | --- | --- | --- | --- | --- | -| 2026-10-05 | Proposed | Jens Tirsvad Nielsen | S02 | Initial version | [9ae0cba] | +| 2026-10-05 | Proposed | Jens Tirsvad Nielsen | S02 | Initial version | [424f14f] | --- @@ -47,4 +47,4 @@ The system is one script run. It starts with the first operation and ends after --- [UC-001]: ./uc.md -[9ae0cba]: https://git.tirsystem.com/TirSystem-BashScript/repo_foundry/commit/9ae0cba306577833480f692c67c0ec327ff2e24e +[424f14f]: https://git.tirsystem.com/TirSystem-BashScript/repo_foundry/commit/424f14f4f5577bb47fea41c8f3a655dca953e6d8 diff --git a/docs/uc-001/uc.md b/docs/uc-001/uc.md index f039024..8aebfcc 100644 --- a/docs/uc-001/uc.md +++ b/docs/uc-001/uc.md @@ -9,7 +9,7 @@ ## Version History | Date | Status | Author | Reviewer | Change | Commit | | --- | --- | --- | --- | --- | --- | -| 2026-10-05 | Proposed | Jens Tirsvad Nielsen | S02 | Initial version | [9ae0cba] | +| 2026-10-05 | Proposed | Jens Tirsvad Nielsen | S02 | Initial version | [424f14f] | --- @@ -80,4 +80,4 @@ [US-001]: ../user-stories.md [SA-001]: ../stakeholder-analysis.md -[9ae0cba]: https://git.tirsystem.com/TirSystem-BashScript/repo_foundry/commit/9ae0cba306577833480f692c67c0ec327ff2e24e +[424f14f]: https://git.tirsystem.com/TirSystem-BashScript/repo_foundry/commit/424f14f4f5577bb47fea41c8f3a655dca953e6d8 diff --git a/docs/user-stories.md b/docs/user-stories.md index bd70432..b7d3f12 100644 --- a/docs/user-stories.md +++ b/docs/user-stories.md @@ -9,7 +9,7 @@ ## Version History | Date | Status | Author | Reviewer | Change | Commit | | --- | --- | --- | --- | --- | --- | -| 2026-10-05 | Proposed | Jens Tirsvad Nielsen | S02 | Initial version | [9ae0cba] | +| 2026-10-05 | Proposed | Jens Tirsvad Nielsen | S02 | Initial version | [424f14f] | --- @@ -46,4 +46,4 @@ Independent, Negotiable, Valuable, Estimable and Testable hold. Small does not: [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 -[9ae0cba]: https://git.tirsystem.com/TirSystem-BashScript/repo_foundry/commit/9ae0cba306577833480f692c67c0ec327ff2e24e +[424f14f]: https://git.tirsystem.com/TirSystem-BashScript/repo_foundry/commit/424f14f4f5577bb47fea41c8f3a655dca953e6d8