Files
RepoFoundry/docs/user-stories.md
T
Tirsvad 424f14f4f5 Plan RepoFoundry: business case, stakeholders, plan, milestones, UC-001
Add the planning baseline for RepoFoundry (create-project.sh), which
creates GitHub and Gitea repositories, a Gitea -> GitHub push mirror and
a local project with the SQA-QC-Framework.

- BC-001 Business Case and SA-001 Stakeholder Analysis (S01, S02, S03)
- PP-001 Project Plan: three phases, 2026-10-05 to 2026-11-13 (proposed)
- MIL-001 Foundation, MIL-002 Repositories and Mirror,
  MIL-003 Scaffold and Release, with 18 task rows
- US-001, UC-001 "Create a new project" and SSD-001
- Registry: PO language en; PP, MIL, US, UC and SSD rows added

Decisions recorded: origin uses HTTPS from GITEA_URL unless the SSH test
on port 10022 passes; S01 and S02 are held by one person for now.

Refs: no issues synced yet (sync-project.sh dry run only)
2026-10-05 12:30:29 +08:00

2.4 KiB

User Story

Metadata

Key Value
ID US-001
CrossReference BC-001, MIL-001, MIL-002, MIL-003

Version History

Date Status Author Reviewer Change Commit
2026-10-05 Proposed Jens Tirsvad Nielsen S02 Initial version 9ae0cba

Purpose and Scope

One epic: setting up a new project on GitHub and Gitea with the SQA-QC-Framework in place. The actor is the Maintainer (S01 or S02; for now one person holds both roles). No Use Case Diagram exists yet, so the actor name is defined here and must be reused by the use case.

Story List

US-001.01 — Create a new project

As a Maintainer, I want to create a new project with empty GitHub and Gitea repositories, a Gitea to GitHub push mirror and a local project with the SQA-QC-Framework, so that every new project starts from the same secure, repeatable baseline.

Acceptance Criteria

  • Given valid configuration and credentials, when the Maintainer answers the prompts, then an empty GitHub repository and an empty Gitea repository exist under the chosen owners.
  • Given both repositories exist, when the mirror step finishes, then the Gitea repository is a push mirror to GitHub and no credential is stored in any remote URL.
  • Given the repositories exist, when the local step finishes, then the project directory has origin (Gitea) and github remotes, the framework submodule, installed skills and hooks, and the copied templates.
  • Given a step fails, when the script stops, then it reports what was created and how to continue.
  • Given a target directory or file already exists, when the script would replace it, then it asks first.
Traces to Size INVEST exceptions
UC-001, MIL-001, MIL-002, MIL-003 spans three phases; delivered by the tasks of each Small: the story is split into tasks per phase

INVEST Check

Independent, Negotiable, Valuable, Estimable and Testable hold. Small does not: this is an epic-sized story, delivered through the tasks of the three milestones, with an exception recorded above.