Point commit links at the pushed planning commit

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-05 12:32:32 +08:00
co-authored by Claude Sonnet 5.5
parent 424f14f4f5
commit fa3beaf1c1
9 changed files with 178 additions and 178 deletions
+2 -2
View File
@@ -9,7 +9,7 @@
## Version History ## Version History
| Date | Status | Author | Reviewer | Change | Commit | | 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 [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
+2 -2
View File
@@ -9,7 +9,7 @@
## Version History ## Version History
| Date | Status | Author | Reviewer | Change | Commit | | 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 [BC-001]: ../business-case.md
[US-001]: ../user-stories.md [US-001]: ../user-stories.md
[UC-001]: ../uc-001/uc.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
@@ -9,7 +9,7 @@
## Version History ## Version History
| Date | Status | Author | Reviewer | Change | Commit | | 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 [US-001]: ../user-stories.md
[UC-001]: ../uc-001/uc.md [UC-001]: ../uc-001/uc.md
[MIL-001]: ./mil-001-foundation.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
@@ -9,7 +9,7 @@
## Version History ## Version History
| Date | Status | Author | Reviewer | Change | Commit | | 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 [US-001]: ../user-stories.md
[UC-001]: ../uc-001/uc.md [UC-001]: ../uc-001/uc.md
[MIL-002]: ./mil-002-repositories-and-mirror.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
+91 -91
View File
@@ -1,91 +1,91 @@
# Project Plan # Project Plan
## Metadata ## Metadata
| Key | Value | | Key | Value |
| --- | --- | | --- | --- |
| ID | PP-001 | | ID | PP-001 |
| CrossReference | [BC-001], [SA-001], [MIL-001], [MIL-002], [MIL-003], [US-001] | | CrossReference | [BC-001], [SA-001], [MIL-001], [MIL-002], [MIL-003], [US-001] |
## Version History ## Version History
| Date | Status | Author | Reviewer | Change | Commit | | 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] |
--- ---
## Purpose ## 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. 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 ## Planning Assumptions
- Week 1 starts 2026-10-05; the plan ends by 2026-11-13. - Week 1 starts 2026-10-05; the plan ends by 2026-11-13.
- Phase length: two weeks. - 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. - 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. - The PO language is English, so no translated copies are kept.
## Gateway Schedule ## Gateway Schedule
| Gateway | Document | Window | Decision date | Owner | Stories | Main deliverable | Milestone | | 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 | | | 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 | | | 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 | | | 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 ```plantuml
@startgantt @startgantt
Project starts 2026-10-05 Project starts 2026-10-05
[Foundation] starts 2026-10-05 and ends 2026-10-16 [Foundation] starts 2026-10-05 and ends 2026-10-16
[Foundation Go/No-Go] happens 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] starts 2026-10-19 and ends 2026-10-30
[Repositories and Mirror Go/No-Go] happens 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] starts 2026-11-02 and ends 2026-11-13
[Scaffold and Release Go/No-Go] happens 2026-11-13 [Scaffold and Release Go/No-Go] happens 2026-11-13
@endgantt @endgantt
``` ```
## Scope Coverage ## Scope Coverage
| Business Case scope item | Gateway | | Business Case scope item | Gateway |
| --- | --- | | --- | --- |
| Safe parsing of `config.env` and `.env`, tool checks, prompts, `.gitignore` | [MIL-001] | | Safe parsing of `config.env` and `.env`, tool checks, prompts, `.gitignore` | [MIL-001] |
| Project name check on GitHub | [MIL-001] | | Project name check on GitHub | [MIL-001] |
| Creation of both repositories and the push mirror | [MIL-002] | | Creation of both repositories and the push mirror | [MIL-002] |
| Partial-failure reporting | [MIL-002] | | Partial-failure reporting | [MIL-002] |
| Local directory, remotes, framework submodule, skills, hooks, templates, plan gate | [MIL-003] | | Local directory, remotes, framework submodule, skills, hooks, templates, plan gate | [MIL-003] |
| README and SSH prerequisite documentation | [MIL-003] | | README and SSH prerequisite documentation | [MIL-003] |
## Dependencies ## Dependencies
``` ```
MIL-001 → MIL-002 → MIL-003 MIL-001 → MIL-002 → MIL-003
``` ```
A No-Go moves every later date by the time needed to rework the failed criteria. A No-Go moves every later date by the time needed to rework the failed criteria.
## Plan Risks ## Plan Risks
| Risk | Impact | Mitigation | | Risk | Impact | Mitigation |
| --- | --- | --- | | --- | --- | --- |
| No disposable GitHub organization for testing | Organization-owner path untested | Agree the test owners before [MIL-002] starts | | 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] | | 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 ## Open Issues
- Confirm the proposed dates (S01). - 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: `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: 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. - 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. - Open: this plan says the script does not make the first commit; confirm.
--- ---
[BC-001]: ./business-case.md [BC-001]: ./business-case.md
[SA-001]: ./stakeholder-analysis.md [SA-001]: ./stakeholder-analysis.md
[MIL-001]: ./milestones/mil-001-foundation.md [MIL-001]: ./milestones/mil-001-foundation.md
[MIL-002]: ./milestones/mil-002-repositories-and-mirror.md [MIL-002]: ./milestones/mil-002-repositories-and-mirror.md
[MIL-003]: ./milestones/mil-003-scaffold-and-release.md [MIL-003]: ./milestones/mil-003-scaffold-and-release.md
[US-001]: ./user-stories.md [US-001]: ./user-stories.md
[UC-001]: ./uc-001/uc.md [UC-001]: ./uc-001/uc.md
[SSD-001]: ./uc-001/ssd.md [SSD-001]: ./uc-001/ssd.md
[9ae0cba]: https://git.tirsystem.com/TirSystem-BashScript/repo_foundry/commit/9ae0cba306577833480f692c67c0ec327ff2e24e [424f14f]: https://git.tirsystem.com/TirSystem-BashScript/repo_foundry/commit/424f14f4f5577bb47fea41c8f3a655dca953e6d8
+73 -73
View File
@@ -1,73 +1,73 @@
# Stakeholder Analysis # Stakeholder Analysis
## Metadata ## Metadata
| Key | Value | | Key | Value |
| --- | --- | | --- | --- |
| ID | SA-001 | | ID | SA-001 |
| CrossReference | [BC-001] | | CrossReference | [BC-001] |
## Version History ## Version History
| Date | Status | Author | Reviewer | Change | Commit | | 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] |
--- ---
## Purpose ## 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. 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 ## Stakeholder Summary Table
| ID | Name | Role/Title | Organization | Power Level | Interest Level | Quadrant | Primary Concern (Business Language) | | 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 | | 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 | | 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 | | 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 ## 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. - **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. - **Keep Informed (S03):** readers cannot change the project but depend on its README being accurate.
## Primary Concerns and FURPS+ Mapping ## Primary Concerns and FURPS+ Mapping
| ID | Concern | FURPS+ attribute | | ID | Concern | FURPS+ attribute |
| --- | --- | --- | | --- | --- | --- |
| S01 | One command creates both repositories, the mirror and the project | Functionality | | 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 | No token in output, URLs or files; no silent overwrite | Functionality (security) |
| S02 | A failed step leaves a clear record of what exists | Reliability | | S02 | A failed step leaves a clear record of what exists | Reliability |
| S03 | Installation, configuration and usage are documented in clear English | Usability | | S03 | Installation, configuration and usage are documented in clear English | Usability |
## Communication Requirements ## Communication Requirements
| ID | Channel | Frequency | Deliverable | Phase / Milestone | | ID | Channel | Frequency | Deliverable | Phase / Milestone |
| --- | --- | --- | --- | --- | | --- | --- | --- | --- | --- |
| S01 | Pull request review | Per phase | Accepted milestone document | MIL-001, MIL-002, MIL-003 | | 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 | | 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 | | S03 | README on GitHub | At release | README.md | MIL-003 |
## Conflicting Interests and Mitigations ## Conflicting Interests and Mitigations
| Conflict | Stakeholders | Mitigation | | 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) | | 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 ## Traceability Analysis
### Business Goal Alignment ### Business Goal Alignment
| Stakeholder | Concern | Business Case objective | | Stakeholder | Concern | Business Case objective |
| --- | --- | --- | | --- | --- | --- |
| S01 | One-command setup | [BC-001] objectives 1–5 | | S01 | One-command setup | [BC-001] objectives 1–5 |
| S02 | Credential safety, no overwrite | [BC-001] objective 6 | | S02 | Credential safety, no overwrite | [BC-001] objective 6 |
| S03 | Reusable documentation | [BC-001] objective 6 and the README deliverable | | S03 | Reusable documentation | [BC-001] objective 6 and the README deliverable |
## Sign-Off ## Sign-Off
Pending review by S02. Pending review by S02.
--- ---
[BC-001]: ./business-case.md [BC-001]: ./business-case.md
[9ae0cba]: https://git.tirsystem.com/TirSystem-BashScript/repo_foundry/commit/9ae0cba306577833480f692c67c0ec327ff2e24e [424f14f]: https://git.tirsystem.com/TirSystem-BashScript/repo_foundry/commit/424f14f4f5577bb47fea41c8f3a655dca953e6d8
+2 -2
View File
@@ -9,7 +9,7 @@
## Version History ## Version History
| Date | Status | Author | Reviewer | Change | Commit | | 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 [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
+2 -2
View File
@@ -9,7 +9,7 @@
## Version History ## Version History
| Date | Status | Author | Reviewer | Change | Commit | | 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 [US-001]: ../user-stories.md
[SA-001]: ../stakeholder-analysis.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
+2 -2
View File
@@ -9,7 +9,7 @@
## Version History ## Version History
| Date | Status | Author | Reviewer | Change | Commit | | 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-001]: ./milestones/mil-001-foundation.md
[MIL-002]: ./milestones/mil-002-repositories-and-mirror.md [MIL-002]: ./milestones/mil-002-repositories-and-mirror.md
[MIL-003]: ./milestones/mil-003-scaffold-and-release.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