diff --git a/scripts/seed-repo-template.sh b/scripts/seed-repo-template.sh index 9f092aa6e..4266b164d 100755 --- a/scripts/seed-repo-template.sh +++ b/scripts/seed-repo-template.sh @@ -556,7 +556,6 @@ that run._ | `DESCRIPTION` — one sentence, what the repo is | `Beehive telemetry dashboard and alerting service` | `README.md`, `copilot-instructions.md`, repo description | | `STACK` — one of `frontend`, `backend-go`, `backend-python`, `backend-rust`, `fullstack`, `infra-terraform`, `none` | `backend-python` | `dependabot.yml`, `ci.yml`, `copilot-setup-steps.yml`, `.gitignore` L2, `.github/instructions/` | | `PROJECT_CONTEXT` — 3 to 5 sentences: product, target users, competitive landscape | see `feature-ideation.yml` header | `feature-ideation.yml` (`project_context`) | -| `BMAD` — `yes` for product repos (org default), `no` for data/tooling repos | `yes` | step 8 | Rules for an agent: @@ -878,7 +877,7 @@ esac --- -## 8. Remove template-only files; install BMAD if a product repo +## 8. Remove template-only files Every template Bats file other than `tests/ci-*.bats` (the `*-stub.bats` guards, `gitignore-baseline.bats`, `pr-quality-ruleset.bats`, @@ -903,14 +902,11 @@ git rm tests/ci-*.bats Remove only the Bats files, not the `tests/` directory: your own test suite (`tests/test_*.py`, `tests/*.test.ts`, …) may already live there or will. -If `BMAD=yes`, install the BMAD Method (org standard for product repos: -spec-driven development, planning artifacts in `_bmad-output/`): - -```bash -npx bmad-method install -``` - -`_bmad/` is already allowlisted in `.gitleaks.toml`. Commit the generated files. +Do **not** install agent frameworks here. BMAD and the other frameworks are +**vendored** into a repo as `git subtree` from `combsmith/.github-private` (or +`software-factory`) when a project needs them; never run `npx bmad-method +install`, and never ask the maintainer whether to. `_bmad/` stays allowlisted +in `.gitleaks.toml` for the vendored case. --- diff --git a/tests/fixtures/seed-repo-template/repo-template-BOOTSTRAP.md b/tests/fixtures/seed-repo-template/repo-template-BOOTSTRAP.md index 9afcd8869..18f424066 100644 --- a/tests/fixtures/seed-repo-template/repo-template-BOOTSTRAP.md +++ b/tests/fixtures/seed-repo-template/repo-template-BOOTSTRAP.md @@ -28,7 +28,6 @@ that run._ | `DESCRIPTION` — one sentence, what the repo is | `Beehive telemetry dashboard and alerting service` | `README.md`, `copilot-instructions.md`, repo description | | `STACK` — one of `frontend`, `backend-go`, `backend-python`, `backend-rust`, `fullstack`, `infra-terraform`, `none` | `backend-python` | `dependabot.yml`, `ci.yml`, `copilot-setup-steps.yml`, `.gitignore` L2, `.github/instructions/` | | `PROJECT_CONTEXT` — 3 to 5 sentences: product, target users, competitive landscape | see `feature-ideation.yml` header | `feature-ideation.yml` (`project_context`) | -| `BMAD` — `yes` for product repos (org default), `no` for data/tooling repos | `yes` | step 8 | Rules for an agent: @@ -350,7 +349,7 @@ esac --- -## 8. Remove template-only files; install BMAD if a product repo +## 8. Remove template-only files Every template Bats file other than `tests/ci-*.bats` (the `*-stub.bats` guards, `gitignore-baseline.bats`, `pr-quality-ruleset.bats`, @@ -375,14 +374,11 @@ git rm tests/ci-*.bats Remove only the Bats files, not the `tests/` directory: your own test suite (`tests/test_*.py`, `tests/*.test.ts`, …) may already live there or will. -If `BMAD=yes`, install the BMAD Method (org standard for product repos: -spec-driven development, planning artifacts in `_bmad-output/`): - -```bash -npx bmad-method install -``` - -`_bmad/` is already allowlisted in `.gitleaks.toml`. Commit the generated files. +Do **not** install agent frameworks here. BMAD and the other frameworks are +**vendored** into a repo as `git subtree` from `combsmith/.github-private` (or +`software-factory`) when a project needs them; never run `npx bmad-method +install`, and never ask the maintainer whether to. `_bmad/` stays allowlisted +in `.gitleaks.toml` for the vendored case. --- diff --git a/tests/test_seed_repo_template.bats b/tests/test_seed_repo_template.bats index 9787aefb4..4ee21dce1 100644 --- a/tests/test_seed_repo_template.bats +++ b/tests/test_seed_repo_template.bats @@ -905,12 +905,12 @@ GHEOF # ── #2233: commercial-support sections + one open seed PR per repo ───────────── # Fixtures: standards/commercial-support-standard.md at standards/v1.2.0, and -# README.md / BOOTSTRAP.md / AGENTS.md from combsmith/repo-template main at e0f994b0 (#258). +# README.md / BOOTSTRAP.md / AGENTS.md from combsmith/repo-template main at 3e073f87 (#259). SEED_FIXTURES="$SCRIPT_DIR/tests/fixtures/seed-repo-template" # Git blob SHAs of those two repo-template files (guards the fixtures themselves # against an editor/hook adding a trailing newline). REPO_TEMPLATE_README_BLOB=a6b17a8c32f6181248e55a17f9254bb0480f0f3d -REPO_TEMPLATE_BOOTSTRAP_BLOB=9afcd88693581dde1c2027970ae5174c4945a6eb +REPO_TEMPLATE_BOOTSTRAP_BLOB=18f42406609dcb019362fc012c2ffc70b5c8de43 REPO_TEMPLATE_AGENTS_BLOB=1c5e6cb3b131037b7a103ebf33c243fac9facd0c _fixture_commercial_standard() { @@ -928,7 +928,7 @@ _standard_readme_block() { # # newlines and _put_file encodes it with printf '%s'. _seeded_blob() { printf '%s' "$1" | git hash-object --stdin; } -@test "#2233: BOOTSTRAP.md emission is blob-identical to repo-template main (e0f994b0)" { +@test "#2233: BOOTSTRAP.md emission is blob-identical to repo-template main (3e073f87)" { [ "$(git hash-object "$SEED_FIXTURES/repo-template-BOOTSTRAP.md")" = "$REPO_TEMPLATE_BOOTSTRAP_BLOB" ] run bash "$SEED" --emit-baseline BOOTSTRAP.md [ "$status" -eq 0 ] @@ -936,7 +936,7 @@ _seeded_blob() { printf '%s' "$1" | git hash-object --stdin; } [ "$(_seeded_blob "$output")" = "$REPO_TEMPLATE_BOOTSTRAP_BLOB" ] } -@test "repo-template#253: AGENTS.md emission is blob-identical to repo-template main (e0f994b0)" { +@test "repo-template#253: AGENTS.md emission is blob-identical to repo-template main (3e073f87)" { [ "$(git hash-object "$SEED_FIXTURES/repo-template-AGENTS.md")" = "$REPO_TEMPLATE_AGENTS_BLOB" ] run bash "$SEED" --emit-baseline AGENTS.md [ "$status" -eq 0 ]