fix(ci): retarget seed-corpus PR from main to develop#1103
Merged
Conversation
`seed-corpus.yml` opened its automated bundle PR with `--base main`. That was already broken: the head it pushes is `chore/seed-corpus-<date>-<run>`, and `validate-main-pr.yml` rejects any PR into `main` whose head is not a `vX.Y.Z` release branch. It would also hard-fail outright once the main -> release rename (PR #1027) removes the `main` branch. `develop` is the intended base: `sync-results-data-to-published.yml` triggers on pushes to `develop` under `results-data/bundles/**` and documents "a maintainer-run seed corpus refresh from `seed-corpus.yml`" as its motivating case. Correct the PR body's "Merging" section to match that flow -- it claimed the merge triggers `docs`, which only fires on pushes to the release branch. The workflow is `workflow_dispatch`-only and `release-cut` curates it out of the release tree, so no CI job covers this. Add unit tests pinning the base to `develop` and encoding why a `chore/` head can never target the release branch. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The body is built with a quoted heredoc (`<<'EOF'`), so the shell performs no expansion inside it. The `\`` escapes were therefore not protecting anything -- they rendered as literal backslashes in the PR body. Drop them and add a guard test. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
joeharris76
enabled auto-merge (squash)
July 10, 2026 13:14
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
seed-corpus.ymlopened its automated bundle PR with--base main. Two defects:chore/seed-corpus-<date>-<run>, andvalidate-main-pr.ymlrejects any PR intomainwhose head is not avX.Y.Zrelease branch. Its own error message says "Open this PR against 'develop' instead."main->release,gh pr create --base mainfails outright becausemainwill not exist.Deliberately left out of #1027, which was a textual rename; this is a behavior fix.
Why
developis the correct baseNot
release— that branch only acceptsvX.Y.Zheads.sync-results-data-to-published.ymltriggers onpush: branches: [develop]underresults-data/bundles/**, and its header names the motivating case as "a maintainer-run seed corpus refresh fromseed-corpus.yml". That is the flow this workflow was built to feed.Changes
--base main->--base develop.docsworkflow, butdocs.yml's push trigger isbranches: [main]only. With basedevelop, the merge triggerssync-results-data-to-published, which opens a draft PR ontopublished-results.<<'EOF'), so no expansion occurs inside it and the ``` escapes rendered as literal backslashes. Never observed because the PR creation has never succeeded.Testing
seed-corpus.ymlisworkflow_dispatch-only andrelease-cutcurates it out of the release tree, so no CI job covers this. Newtests/unit/workflows/test_seed_corpus_pr_base.pypins the base todevelopand encodes why by asserting the pushed head can never match the release-head regex. That regex is mirrored locally with a comment rather than parsed out ofvalidate-main-pr.yml, so the test survives the #1027 rename.Each test was mutation-checked: reverting the base to
main, and re-escaping the backticks, each fail their guard. All 58 tests intests/unit/workflows/pass.🤖 Generated with Claude Code