seed-repo-template.sh strips the commercial-support sections from repo-template on every run — its README and BOOTSTRAP baseline predates the commercial-support standard, and stale seed PRs pile up #2233
Copy link
Copy link
Closed
Labels
Description
Problem
scripts/seed-repo-template.sh generates README.md and BOOTSTRAP.md for petry-projects/repo-template without the commercial-support content that the repository now carries on purpose. Every seed run therefore opens a PR that deletes it.
petry-projects/repo-templatePR petry-projects — workflow failures detected 2026-05-18 #229 (merged 2026-10-05, "chore: add commercial support section and clarify contributing inheritance") added a## Commercial Support & Integrationsection toREADME.mdand a## 4. Contributing & Commercial Supportsection toBOOTSTRAP.md.petry-projects/.githubhasstandards/commercial-support-standard.md, which defines the canonical README section.- The seed script has no mention of either (
grep -ci 'commercial\|combsmith' scripts/seed-repo-template.sh→ 0).
Evidence (2026-10-10)
bash scripts/seed-repo-template.sh --emit-baseline README.md differs from repo-template main by exactly that section (13 lines removed). --emit-baseline BOOTSTRAP.md removes the four-line section 4.
Seed PRs opened since PR #229 carry the deletion:
| repo-template PR | Opened | Change |
|---|---|---|
| #233 | 2026-10-09 | README.md −13, BOOTSTRAP.md −4, auto-merge on |
| #235 | 2026-10-10 | the same, plus a stub change from a stale standards channel |
A seed PR is opened almost daily and they accumulate at review-required; six were open on 2026-10-10.
Change
- Make the seed emit the commercial-support section in
README.md, taking the text fromstandards/commercial-support-standard.mdat the standards ref the seed already resolves, not from a copy in this script. - Make the seed emit the
Contributing & Commercial Supportsection inBOOTSTRAP.mdas it stands onrepo-templatemain. - Do not open a new seed PR while an older
seed-scaffold/*PR is still open for the same repo: update or supersede it (see seed-repo-template.sh: seed PRs record no standards ref, never supersede each other, and can regress repo-template (5 stale regressing PRs found) #1925).
Acceptance criteria
-
--emit-baseline README.mdand--emit-baseline BOOTSTRAP.mdproduce files whose git blob equals the file onpetry-projects/repo-templatemain(as of commitbb43b0db), when run againststandards/v1.2.0. - The README section text is read from the standards ref, and a test fails if the standard's section and the emitted section differ.
- A seed run with an open
seed-scaffold/*PR on the target repo does not open a second one. - Covered by tests in the seed script's existing test file; every existing test passes unmodified.
Reactions are currently unavailable
Activity
github-actions commentedon Oct 10, 2026
Thanks for the detailed report and evidence, including the PR numbers and the baseline diff. This is a clear regression against the commercial-support standard. One question before we start: for the
BOOTSTRAP.mdsection 4, should the seed read the text fromrepo-templatemain, or from a source in the standards repo like the README section? There's no standards file for it today, so we need to know where the canonical text should live.don-petry commentedon Oct 11, 2026
Dev-Lead Implementation Plan
Issue: #2233 — seed-repo-template.sh strips the commercial-support sections from repo-template
Scope
Make the seed emit the commercial-support README section (read from
standards/commercial-support-standard.mdat the resolved standards ref) and the## 4. Contributing & Commercial SupportBOOTSTRAP section, and make a live seed update an already-openseed-scaffold/*PR instead of opening another.At
standards/v1.2.0, the standard's canonical block is## 💼 Commercial Support & Enterprise Services(pricing tiers etc.). The section onrepo-template@bb43b0dbis a different hand-written text (## Commercial Support & Integration). So AC #1 (README blob == repo-template main) and AC #2 / Change 1 (section read from the standard, test fails if they differ) cannot both hold. I'm following Change 1 / AC #2 and AGENTS.md ("read the standard, then copy the template"): the emitted README keeps main's preamble and---separator byte-for-byte and appends the standard's canonical block. The next seed PR will therefore replace the repo-template section with the canonical one once, not delete it, and later runs will make no change. BOOTSTRAP.md will match main's blob exactly.Implementation Checklist
scripts/seed-repo-template.sh:_commercial_support_sectionextracts the fenced ```markdown block under## Canonical README Sectionfrom the standard fetched via `_fetch_standard` (same resolved ref as everything else)README.mdgenerator: static preamble +---+ extracted section; fails loud (distinct exit code) if the section can't be read_seed_all_files: if README's standard is unavailable, warn and leave README untouched (never write a README without the section)BOOTSTRAP.mdgenerator: add## 4. Contributing & Commercial Supportverbatim from repo-template main_seed_repo(live): find an openseed-scaffold/*PR; if there is one, reuse its branch, bring each manifest file on that branch in line with the fresh emission (which also undoes stale edits there), and don't rungh pr createTests to Write (tests/test_seed_repo_template.bats; existing tests left unchanged)
seed-scaffold/<older-date>PR: nopr create, writes go to the existing branch, no new branch createdTest Command
bats tests/test_seed_repo_template.bats+bash .dev-lead/scripts/dev-lead-lint.shdon-petry commentedon Oct 11, 2026
Dev-Lead: Progress (in progress — not yet durable)
Plan Execution (intended)
README.mdgenerator appends the canonical block fromstandards/commercial-support-standard.md(the ```markdown fence under## Canonical README Section), fetched through `_fetch_standard` at the resolved standards ref. It fails loud if the standard or the block is missing.README.mdwith a warning instead of writing it without the section.BOOTSTRAP.mdgenerator gains## 4. Contributing & Commercial Support, copied verbatim from repo-template main.seed-scaffold/*PR (newest wins). If it finds one, it reuses that PR's branch instead of creating a new dated branch and PR. Each manifest file on that branch is brought in line with the fresh emission, which also undoes stale edits left by older runs.Checked against the live repos with
STANDARDS_REF=standards/v1.2.0:BOOTSTRAP.md: emitted blobb0d2f016…matches repo-templatemain@bb43b0db.README.md: everything up to the section, including the---separator, matches byte-for-byte. The section body does not match, because repo-template's## Commercial Support & Integrationtext is not the standard's canonical## 💼 Commercial Support & Enterprise Servicesblock. AC test issue from agent #1 and AC Go-live improvements for PR review agent #2 can't both hold. I followed Change 1 / AC Go-live improvements for PR review agent #2 (and AGENTS.md "copy the template"). As a result, the next seed PR will replace repo-template's section with the canonical one, once. It will not delete it. If the repo-template wording is the one you want, the fix belongs in the standard inpetry-projects/.github; the seed will then follow it with no script change.Files touched (this workspace, not yet pushed)
scripts/seed-repo-template.sh: added_commercial_support_section, changed the README/BOOTSTRAP generators, and made_seed_file,_seed_all_filesand_seed_reporeuse an open seed PR's branchtests/test_seed_repo_template.bats: 8 new#2233tests; existing tests not changedtests/fixtures/seed-repo-template/: the standard at v1.2.0, plus repo-template README/BOOTSTRAP atbb43b0db. The tests also pin the blob SHAs.Notes
don-petry commentedon Oct 11, 2026
Dev-Lead: Implementation Complete — PR #2234
The implementation for issue #2233 is durable: commits are pushed and a pull request is open. This record is backed by verifiable artifacts you can confirm in one click.
ffa8b7f7c03fdafebd01ffcec36f3b63de1eeca4main: 5 file(s), +439/-14 linesReview happens on the PR. Acceptance criteria and test results are evidenced by the PR's diff and CI checks — not asserted here. If a later stage fails, this claim is retracted in place.
feat: implement issue #2233 — seed-repo-template.sh strips the commer…
feat: seed PRs record their standards ref, supersede older seed PRs, …