MIL-004: project details preset in config.env (with the e2e fixes and the plan) #34

Merged
Tirsvad merged 9 commits from mil-004-configurable-details into main 2026-10-05 18:28:48 +02:00
Owner

PRs 32 and 33 were merged into their stacked base branches, so their content never reached main; PR 26 was merged before the live end-to-end fixes were pushed to its branch. This PR brings all of it to main (11 commits).

1. Live end-to-end fixes and results (RC-017)

  • stdin is closed for ssh, git, curl and the framework scripts, so a real ssh no longer swallows answers meant for later prompts
  • LICENSE and LICENSE + README.md (what Gitea creates) count as content the script made, so a partly created repository can be reused
  • README documents the observed token scopes (write:user for user-owned Gitea repositories)
  • MIL-002 criterion 2 corrected (new Proposed row)
  • RC-017 records the live runs: the organization-owner run (B) and, with a write:user token, the user-owner run (A2) both pass on both hosts, with all eight MIL-004 details taken from config.env; criterion 7 is now Pass. The verdict stays Go-with-conditions: the README review (criterion 6) is the one condition left

2. The MIL-004 plan (accepted, RC-018)

  • Business Case objective 8, US-001.04, UC-001 extensions 3a and 3b, SSD, OC, SD, DM-001, DM-002, Project Plan, milestone MIL-004

3. MIL-004 implementation (RC-019, Go)

  • Eight optional keys in config.env: PROJECT_NAME, PROJECT_DESCRIPTION, PROJECT_VISIBILITY, GITEA_OWNER, USE_GITHUB, GITHUB_OWNER, PROJECT_DIRECTORY, ENABLE_PLAN_GATE
  • A key that is present counts as set (only the description may be empty); it is not asked and the summary marks it (from config.env)
  • An invalid value stops the run before any request and names the key; it never falls back to asking
  • USE_GITHUB=no skips the GitHub owner; a stray GITHUB_OWNER is ignored with a warning
  • The confirmations stay interactive and default to no
  • A value containing # must be quoted (documented and tested)
  • New keys are rejected in .env; config.env is now ignored by git; .env.example gets a section banner

Tests: full suite 923 checks, 0 failed; mutation check done.

Not closed here: #20 (end-to-end test and final security review) stays open until the README review (RC-017 criterion 6) is done.

Closes #27
Closes #28
Closes #29
Closes #30
Closes #31
Refs #20

🤖 Generated with Claude Code

PRs 32 and 33 were merged into their stacked base branches, so their content never reached `main`; PR 26 was merged before the live end-to-end fixes were pushed to its branch. This PR brings all of it to `main` (11 commits). **1. Live end-to-end fixes and results (RC-017)** - stdin is closed for `ssh`, `git`, `curl` and the framework scripts, so a real `ssh` no longer swallows answers meant for later prompts - `LICENSE` and `LICENSE` + `README.md` (what Gitea creates) count as content the script made, so a partly created repository can be reused - README documents the observed token scopes (`write:user` for user-owned Gitea repositories) - MIL-002 criterion 2 corrected (new Proposed row) - RC-017 records the live runs: the organization-owner run (B) and, with a `write:user` token, the user-owner run (A2) both pass on both hosts, with all eight MIL-004 details taken from `config.env`; criterion 7 is now Pass. The verdict stays Go-with-conditions: the README review (criterion 6) is the one condition left **2. The MIL-004 plan (accepted, RC-018)** - Business Case objective 8, US-001.04, UC-001 extensions 3a and 3b, SSD, OC, SD, DM-001, DM-002, Project Plan, milestone MIL-004 **3. MIL-004 implementation (RC-019, Go)** - Eight optional keys in `config.env`: `PROJECT_NAME`, `PROJECT_DESCRIPTION`, `PROJECT_VISIBILITY`, `GITEA_OWNER`, `USE_GITHUB`, `GITHUB_OWNER`, `PROJECT_DIRECTORY`, `ENABLE_PLAN_GATE` - A key that is present counts as set (only the description may be empty); it is not asked and the summary marks it `(from config.env)` - An invalid value stops the run before any request and names the key; it never falls back to asking - `USE_GITHUB=no` skips the GitHub owner; a stray `GITHUB_OWNER` is ignored with a warning - The confirmations stay interactive and default to no - A value containing ` #` must be quoted (documented and tested) - New keys are rejected in `.env`; `config.env` is now ignored by git; `.env.example` gets a section banner **Tests:** full suite 923 checks, 0 failed; mutation check done. Not closed here: #20 (end-to-end test and final security review) stays open until the README review (RC-017 criterion 6) is done. Closes #27 Closes #28 Closes #29 Closes #30 Closes #31 Refs #20 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Tirsvad added 9 commits 2026-10-05 18:28:02 +02:00
- Close stdin for ssh, git, curl and the framework scripts, so a real ssh
  no longer swallows answers meant for later prompts.
- Count LICENSE and LICENSE + README.md (what Gitea creates) as content
  the script made, so a partly created repository can be reused.
- Document the observed token scopes (write:user for user-owned Gitea
  repositories) and the Gitea README.md in the README.
- Correct criterion 2 of MIL-002 (new Proposed version row).
- Record the run and the final security review as RC-017.
- Tests: stdin regression, initial_only reuse, other files count as
  content, example config needs its address edited.

Task: MIL-003#6
Task: MIL-002#1
Refs #20

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Add objective 8 to the Business Case, US-001.04, extensions 3a and 3b of
UC-001 and the matching SSD, OC, SD, DM-001 and DM-002 notes. Add the phase
to the Project Plan and the milestone MIL-004 with eight Go/No-Go criteria
and five tasks (issues #27 to #31). Review recorded in RC-018.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Eight optional keys (PROJECT_NAME, PROJECT_DESCRIPTION, PROJECT_VISIBILITY,
GITEA_OWNER, USE_GITHUB, GITHUB_OWNER, PROJECT_DIRECTORY, ENABLE_PLAN_GATE)
are read and checked with the validators the prompts use. A key that is
present counts as set (only the description may be empty); it is not asked
and the summary marks it "(from config.env)". An invalid value stops the
run before any request and names the key. USE_GITHUB=no skips the GitHub
owner and warns about a stray GITHUB_OWNER. The confirmations stay
interactive. Keys and an example are documented; tests cover every key.

Task: MIL-004#1
Task: MIL-004#2
Task: MIL-004#3
Task: MIL-004#4
Task: MIL-004#5
Closes #27
Closes #28
Closes #29
Closes #30
Closes #31

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
- Say in the README and config.env.example that a value containing " #"
  must be quoted, and pin both behaviours with a test.
- Say in the script header and the README that details set in config.env
  are not asked.
- Record the review as RC-019 and link it in the traceability matrix.

Task: MIL-004#4
Task: MIL-004#5
Refs #30
Refs #31

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
The file holds the Maintainer's own addresses and project details, so it
stays out of the repository like .env.

Refs #31

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Tirsvad merged commit cf265e8f66 into main 2026-10-05 18:28:48 +02:00
Sign in to join this conversation.